首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在回测的整个过程中建立多时间帧安全功能

在回测的整个过程中建立多时间帧安全功能
EN

Stack Overflow用户
提问于 2021-04-18 18:42:54
回答 1查看 88关注 0票数 0

我了解了security函数,该函数能够从其他报价器或时间范围获取数据。我的想法是使用两个时间帧的RSI - 30m和4h,但下面的代码只绘制了更高时间帧的294条。有没有可能在整个过程中都使用这些蜡烛,这样我就可以对我的策略进行反向测试了?基本上就是让294支蜡烛的数量不受限制。有什么想法吗?

代码语言:javascript
复制
//@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)
EN

回答 1

Stack Overflow用户

发布于 2021-04-19 03:08:07

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

历史栏可用于:

  • 基本版5K
  • 专业版+10K
  • 高级版20K

请参阅Compare plans

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67147638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档