我正在使用函数 plotshape()在 3 个实例中有交叉时显示一个标志,例如:
EMA8 越过 EMA113 和 WMA200
EMA24 越过 EMA113 和 WMA200
WMA50 越过 EMA113 和 WMA200
当我使用和函数时,标志仅在单个条上发生交叉时才显示当我使用或函数时,标志显示两次
我希望有 1 个标志绘制后,然后交叉的两条线发生
示例:EMA8 越过 EMA113(无标志)交叉 WMA200 标志,其中 EMA113 的前一个交叉的条件为真
希望这是有道理的,谢谢你!
EMA8_= ta.ema(close,8)
EMA24_= ta.ema(close,24)
WMA50_= ta.wma(close,50)
EMA113_= ta.ema(close,113)
WMA200_= ta.wma(close,200)
ema8=plot(ta.ema(close,8),color=color.white)
ema24=plot(ta.ema(close,24),color=color.yellow)
wma50=plot(ta.wma(close,50),color=color.red)
ema113=plot(ta.ema(close,113),color=color.aqua)
wma200=plot(ta.wma(close,200),color=color.blue)
plotshape(series = (ta.crossover(EMA8_, EMA113_)) and (ta.crossover(EMA8_, WMA200_)) , style=shape.flag, location=location.top, color=#9FE2BF, size=size.normal)
plotshape(series = (ta.crossover(EMA24_, EMA113_)) and (ta.crossover(EMA24_, WMA200_)) , style=shape.flag, location=location.top, color=#FFC000, size=size.normal)
plotshape(series = (ta.crossover(WMA50_, EMA113_)) and (ta.crossover(WMA50_, WMA200_)) , style=shape.flag, location=location.top, color=#FF5F15, size=size.normal)
AND
or
有多种方法可以做到这一点,在所有情况下,你应该考虑有一个变量,成为true
只有一个酒吧,你的条件变成真。
您应该基于此实现您的逻辑,或者您可以使用在特定事件发生时返回true
的函数。使用ta.crossover()
在这里确实是正确的。
让我们看看你的情况 1。
EMA8 越过 EMA113 和 WMA200
首先,查找 EMA8 是否越过 EMA113或WMA200。当那是true
时,检查 EMA8 是否大于它们两者。您需要在这里使用交叉功能,以便仅在发生交叉时才触发您的标志。然后通过比较实际值,您还可以检查过去是否发生了其他交叉。因为如果 EMA8 超过了 EMA113 或 MA200,则该值会大于
这是您的条件 1 的代码。您可以根据其他条件调整它。
//@version=5
indicator("My Script")
EMA8_= ta.ema(close,8)
EMA113_= ta.ema(close,113)
WMA200_= ta.wma(close,200)
bool isCond1 = (ta.crossover(EMA8_, EMA113_) or ta.crossover(EMA8_, WMA200_)) and (EMA8_ > EMA113_) and (EMA8_ > WMA200_)
plot(ta.ema(close,8),color=color.white)
plot(ta.ema(close,113),color=color.aqua)
plot(ta.wma(close,200),color=color.blue)
plotshape(series = isCond1 , style=shape.flag, location=location.top, color=#9FE2BF, size=size.normal)
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(43条)