我无法显示 EMA 交叉点

I can't show EMAs crossings

我在 TradingView 上有一个脚本。此脚本显示五个 EMA。我希望它标记 EMA 之间的交叉点。我用另一个代码中的一些行尝试了这个,但它不起作用。我的代码如下:

EMA8 = input(8, minval=1, title="EMA8"),
EMA21 = input(21, minval=1, title="EMA21")
EMA55 = input(55, minval=1, title="EMA55"),
EMA233 = input(233, minval=1, title="EMA233"),
EMA377 = input(377, minval=1, title="EMA377"),

plot(ema(close, EMA8), color=white, linewidth=2)
plot(ema(close, EMA21), color=red, linewidth=2)
plot(ema(close, EMA55), color=blue, linewidth=2)
plot(ema(close, EMA233), color=purple, linewidth=2)
plot(ema(close, EMA377), color=green, linewidth=2)
plot(cross(EMA8, EMA21) ? EMA21 : na, color = black , style = circles, linewidth = 4)
plot(cross(EMA21, EMA55) ? EMA21 : na, color = black , style = circles, linewidth = 4)
plot(cross(EMA55, EMA233) ? EMA21 : na, color = black , style = circles, linewidth = 4)
plot(cross(EMA233, EMA377) ? EMA21 : na, color = black , style = circles, linewidth = 4)
plot(cross(EMA8, EMA21) ? EMA21 : na, color = (EMA21 - EMA8 > 0 ? red : lime) , style = circles, linewidth = 3)
plot(cross(EMA21, EMA55) ? EMA55 : na, color = (EMA55 - EMA21 > 0 ? red : lime) , style = circles, linewidth = 3)
plot(cross(EMA55, EMA233) ? EMA233 : na, color = (EMA233 - EMA55 > 0 ? red : lime) , style = circles, linewidth = 3)
plot(cross(EMA233, EMA377) ? EMA377 : na, color = (EMA377 - EMA233 > 0 ? red : lime) , style = circles, linewidth = 3) 

这是我提取最后两行的原始代码:

plot(wt1, color=green)
plot(wt2, color=red)
plot(cross(wt1, wt2) ? wt2 : na, color = black , style = circles, linewidth = 3)
plot(cross(wt1, wt2) ? wt2 : na, color = (wt2 - wt1 > 0 ? red : lime) , style = circles, linewidth = 2)

代码的语法是正确的,但它仍然没有显示 EMA 之间的交叉。有什么想法吗?

它不起作用,因为您在 cross() 比较中使用的是输入长度,而不是 EMA 本身。所以 cross(EMA8, EMA21) 等价于 cross(8, 21)。 8 和 21 永远不会交叉,所以永远不会满足你的条件。您需要为每个 EMA 分配一个变量并比较实际的 EMA,例如

EMA8len = input(8, minval=1, title="EMA8")
EMA21len = input(21, minval=1, title="EMA21")

EMA8 = ema(close, EMA8len)
EMA21 = ema(close, EMA21len)

plot(EMA8, color = white, linewidth = 2)
plot(EMA21, color = red, linewidth = 2)
plot(cross(EMA8, EMA21) ? EMA21 : na, color = black, style = circles, linewidth = 4)