在绘图指示器中指定时间范围

时间:2020-08-22 19:06:39

标签: pine-script

我有这段代码可用于在基于秒的时间范围内绘制5分钟图表移动平均值,而在较高的时间范围内则不行:

//@version=4
study("5min MAs", overlay=true)

plot(timeframe.isseconds ? security(syminfo.tickerid, '5', ema(close[1],9),  lookahead=barmerge.lookahead_on) : ema(close,9) , title="9EMA", color=#ff6d00, linewidth=1)
plot(timeframe.isseconds ? security(syminfo.tickerid, '5', ema(close[1],20),  lookahead=barmerge.lookahead_on) : ema(close,20) , title="20EMA", color=#ffeb3b, linewidth=1)
plot(timeframe.isseconds ? security(syminfo.tickerid, '5', sma(close[1],200),  lookahead=barmerge.lookahead_on) : sma(close,200) , title="200SMA", color=#ff2fbb, linewidth=1)

我希望代码也能够在1分钟和2分钟图表上绘制基于5分钟的MA,以及秒时间范围。 我尝试使用timeframe.isintraday而不是timeframe.isseconds函数,但是基于5分钟的MA也会绘制在我不希望的5分钟以上的时间范围内(例如30min,60min等)。< / p>

有没有办法只隔离1分钟和2分钟的时间范围? 我想我需要用timeframe.period声明一个变量,但不确定如何将其集成。

谢谢, 埃里克

1 个答案:

答案 0 :(得分:0)

我设法弄清楚了

//@version=4
study("5min MAs", overlay=true)


plot(timeframe.isseconds or (timeframe.isintraday and (timeframe.multiplier <= 2)) ? security(syminfo.tickerid, '5', ema(close[1],9),  lookahead=barmerge.lookahead_on) : ema(close,9) , title="9EMA", color=#ff6d00, linewidth=1)
plot(timeframe.isseconds or (timeframe.isintraday and (timeframe.multiplier <= 2)) ? security(syminfo.tickerid, '5', ema(close[1],20),  lookahead=barmerge.lookahead_on) : ema(close,20) , title="20EMA", color=#ffeb3b, linewidth=1)
plot(timeframe.isseconds or (timeframe.isintraday and (timeframe.multiplier <= 2)) ? security(syminfo.tickerid, '5', sma(close[1],200),  lookahead=barmerge.lookahead_on) : sma(close,200) , title="200SMA", color=#ff2fbb, linewidth=1)