Pine script 为整个回溯测试期间提供多时间帧安全功能

Pine script 为整个回溯测试期间提供多时间帧安全功能,pine-script,Pine Script,我了解了安全性功能,该功能可以从其他股票或时间帧获取数据。我的想法是从两个时间段(30米和4小时)使用RSI,但下面的代码只绘制了294个更高时间段的条形图。有没有可能在整个过程中都使用这些蜡烛,这样我就可以对我的策略进行回溯测试?基本上是为了使294支蜡烛的限制不受限制。有什么想法吗 //@version=4 study(title="RSI Multi Time Frame", shorttitle="RSI", max_lines_count = 5

我了解了
安全性
功能,该功能可以从其他股票或时间帧获取数据。我的想法是从两个时间段(30米和4小时)使用RSI,但下面的代码只绘制了294个更高时间段的条形图。有没有可能在整个过程中都使用这些蜡烛,这样我就可以对我的策略进行回溯测试?基本上是为了使294支蜡烛的限制不受限制。有什么想法吗

//@version=4
study(title="RSI Multi Time Frame", shorttitle="RSI", max_lines_count = 500, format=format.price, precision=2)
TimeframeU = input(defval = 'Auto', title ="Higher Time Frame", options = ['Auto', '1', '3', '5', '10', '15', '30', '60', '120', '180', '240', '360', '480', '720', 'D', 'W', '2W', 'M', '3M', '6M', '12M'])
len = input(14, minval=1, title="Length")
src = input(close, "Source", type = input.source)
rsi_col = input(color.blue, title = "Indicator Color", type = input.color)
rsi_width = input(defval = 2, title = "Indicator Line Width", minval = 1, maxval = 4)
rsi_h_col = input(color.green, title = "Indicator HTF Color", type = input.color)
rsi_h_width = input(defval = 2, title = "Indicator HTF Line Width", minval = 1, maxval = 4)
num_bars = input(defval = 294, title = "Number of Bars for RSI HTF", minval = 10, maxval = 495)

htf = TimeframeU == 'Auto' ? 
      timeframe.period == '1' ? '60' : 
      timeframe.period == '2' ? '60' :
      timeframe.period == '3' ? '60' : 
      timeframe.period == '5' ? '60' : 
      timeframe.period == '10' ? '120' : 
      timeframe.period == '15' ? '120' : 
      timeframe.period == '30' ? 'D' : 
      timeframe.period == '45' ? 'D' : 
      timeframe.period == '60' ? 'D' : 
      timeframe.period == '120' ? 'D' : 
      timeframe.period == '180' ? 'D' : 
      timeframe.period == '240' ? 'D' : 
      timeframe.period == 'D' ? 'W' :
      timeframe.period == 'W' ? 'M' : timeframe.period : TimeframeU

rsi = rsi(src, len)
band1 = hline(70, "Upper Band", color=#C0C0C0)
band0 = hline(30, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")
plot(rsi, color = rsi_col, linewidth = rsi_width)


// RSI HTF
var rsi_htf_lines = array.new_line(0)
var float last_rsi = na
new_htf_bar = change(time(htf)) != 0
rsi_htf = security(syminfo.tickerid, htf, rsi(src, len), lookahead = false)

var line rsi_line = na
if new_htf_bar
    last_rsi := rsi_htf[1]
    line.delete(rsi_line)
    rsi_line := line.new(x1 = bar_index , y1 = rsi_htf, x2 = bar_index - 1, y2 = last_rsi, color = rsi_h_col, width = rsi_h_width)
else
    line.set_x1(rsi_line, bar_index)
    line.set_x2(rsi_line, bar_index - 1)
    line.set_y1(rsi_line, rsi_htf)
    rsi_line
    
if new_htf_bar
    if array.size(rsi_htf_lines) >= num_bars
        line.delete(array.get(rsi_htf_lines, array.size(rsi_htf_lines) - 1))
        array.pop(rsi_htf_lines)
    array.unshift(rsi_htf_lines, line.new(x1 = bar_index - 1 , y1 = last_rsi, x2 =bar_index - 2, y2 = last_rsi[1], color = rsi_h_col, width = rsi_h_width))
else
    if array.size(rsi_htf_lines) > 0
        for x = 0 to array.size(rsi_htf_lines) - 1
            line.set_x1(array.get(rsi_htf_lines, x), line.get_x1(array.get(rsi_htf_lines, x)) + 1)
            line.set_x2(array.get(rsi_htf_lines, x), line.get_x2(array.get(rsi_htf_lines, x)) + 1)

// show value as indicator values 
plot(rsi_htf, color = rsi_h_col, show_last = 1)


可用的历史酒吧数量取决于您的订阅。
历史条形图可用于:

  • 基本5K
  • Pro/Pro+10K
  • 保险费20K

参见

我想我能做到:
rsi_htf=security(syminfo.tickerid,htf,rsi(src,len))plot(rsi_htf,color=rsi_h_col,linewidth=rsi_h_width)
。我的帐户是保险费。