PineScript 比较先前指标数据的正确方法?

PineScript proper way of comparing previous indicator data?

我正在尝试在 pinescript 上做一个指标,我对这种语言还很陌生。这是代码:

study("Tester", overlay = true)

ma = ema(close, 50)

signal = (high[1] > ma[1] and close[1] < ma[1])? true : false

plotshape(signal, location = location.abovebar, style = shape.xcross)

我的预期结果是每次蜡烛的上影线超过 50 周期均线但收盘低于它时出现 x。我得到 Xs,但我似乎找不到触发条件的任何原因。

编辑

调整为非移动柱的代码:

study("Tester", overlay = true)

ma = ema(close, 50)

signal = (high > ma and close < ma)? true : false

plotshape(signal, location = location.abovebar, style = shape.xcross)

问题图片:

那是因为您将信号移动了 1 个柱,所以当前一个柱满足条件时,信号 X 会打印在蜡烛图上。

如果您想在满足条件的蜡烛上精确绘制 X - 不要使用历史参考运算符 ([1])。

study("Tester", overlay = true)
ma = ema(close, 50)
plot(ma)
signal = (high > ma and close < ma)? true : false
plotshape(signal, location = location.abovebar, style = shape.xcross)