我正在研究一个移动平均指标,它显示给定时间框架的MA线。由于某种原因,MA线只在最后一个ticker.id周期结束时才被移动。因此,例如,当我将指示符设置为显示每日均线时,该线只在当天结束时才更新。
(链接到图像https://i.stack.imgur.com/QjkvO.jpg)
有谁知道我的指标将如何能够包括数据之间的每日关闭,所以这条线是不断更新?
我认为这条线没有连续更新,也会导致标签,它应该是在MA线的权利被绘制在1点/美元的高度在图表上。
我最近才开始写代码,如果这是个愚蠢的问题,请原谅。我编写了这段代码,查看其他指示符,并试图将部分安装到我自己的代码中。
这是整个指示器的代码。
//@version=4
study(title="Custom Timeframe SMA", shorttitle="Custom TF MA", overlay=true)
res = input(title="MA Timeframe", type=input.resolution, defval="D",options=["60", "240", "D", "W"])
length1 = input(title="SMA Length", type=input.integer, defval=50)
Label=input(title="show Labels",defval=true)
sma1 = sma(close, length1)
sourceEmaSmooth1 = security(syminfo.tickerid, res, sma1, barmerge.gaps_on, barmerge.lookahead_on)
plot(sourceEmaSmooth1, style=plot.style_line, linewidth=2, title="25 period", color=#a21e7b)
plotchar((sourceEmaSmooth1 ? Label : barstate.islast and not barstate.isconfirmed) ? sourceEmaSmooth1 : na, location=location.absolute, text=" 50 SMA", textcolor=#a21e7b, offset=10, editable=false)
发布于 2020-04-11 16:29:28
使用barmerge.gaps_on
和security()
可以创建以图表分辨率显示为na
值的漏洞,这就是为什么您的妈妈并不总是显示的原因。这在历史条形图上并不明显,因为plot()
函数填充了从非间隙到非间隙的空间(如果您绘制的是圆圈而不是一行)。
将barmerge.lookahead_on
与security()
结合使用会在历史条上产生前瞻性偏差。如果不对获取的值进行索引,就会非常讨厌,正如本出版物中关于如何正确使用security()
:如何避免在使用security()时重新绘制的解释。
我将show_last = 1
添加到标签标绘调用中,并修正了条件。因为它现在只是标出标签的最后一次出现,所以我们不再需要担心酒吧间:
//@version=4
study(title="Custom Timeframe SMA", shorttitle="Custom TF MA", overlay=true)
res = input(title="MA Timeframe", type=input.resolution, defval="D",options=["60", "240", "D", "W"])
length1 = input(title="SMA Length", type=input.integer, defval=50)
Label=input(title="show Labels",defval=true)
sma1 = sma(close, length1)
sourceEmaSmooth1 = security(syminfo.tickerid, res, sma1)
plot(sourceEmaSmooth1, linewidth=2, title="25 period", color=#a21e7b)
plotchar(Label ? sourceEmaSmooth1 : na, location=location.absolute, text=" 50 SMA", textcolor=#a21e7b, offset=10, show_last = 1, editable=false)
https://stackoverflow.com/questions/61162664
复制相似问题