pinescript - 当 EMA 超过 SMA 而高于/低于 200 移动平均线时绘制交叉图
pinescript - plot cross when EMA crosses over SMA while above/ below 200 moving average
我对 pinescript 很陌生,我被困在这一点上......我只想在 10 EMA 超过 21 EMA 而 21 高于 50 EMA 和 50 EMA 高于 200 EMA 时绘制交叉。这是为了指示长信号。同时,当 10 EMA 超过 21 EMA 而 21 低于 50 EMA 而 50 EMA 低于 200 EMA。这是表示空头信号。
我有这么多代码,但我不知道如何继续:
//@version=3
study(title="MA Cross ATTEMPT", overlay=true)
s10ema = ema(close, 10)
s21ema = ema(close, 21)
s50ema = ema(close, 50)
s200ema = ema(close, 200)
plot(s10ema, color = red, linewidth = 1, transp=0)
plot(s21ema, color = aqua, linewidth = 1, transp=0)
plot(s50ema, color = aqua, linewidth = 2, transp=0)
plot(s200ema, color = red, linewidth = 2, transp=0)
mycond = s200ema < s50ema and s50ema < s21ema and s21ema < s10ema
EMACross = cross(s10ema, s21ema) ? s10ema : na, style = cross, linewidth = 4, color = yellow, transp=0
plot(?????)
如有任何帮助,我们将不胜感激
执行此操作的方法是使用 plotshape()
函数。还有不同的 plot
函数,但我更喜欢为此目的使用 plotshape()
。一定要检查其他 plot
函数。 Tradingview 有一个很好的 pine-script 文档。
此外,cross()
returns 1
如果两个系列相互交叉。它可以从下面或上面,没关系。但是,您想在 crossover
发生时触发您的条件。为此目的,有一个名为 crossover()
的函数(另见 crossunder()
的相反内容)。
//@version=3
study(title="MA Cross ATTEMPT", overlay=true)
s10ema = ema(close, 10)
s21ema = ema(close, 21)
s50ema = ema(close, 50)
s200ema = ema(close, 200)
plot(s10ema, title="Ema 10", color = red, linewidth = 1, transp=0)
plot(s21ema, title="Ema 21", color = aqua, linewidth = 1, transp=0)
plot(s50ema, title="Ema 50", color = orange, linewidth = 2, transp=0)
plot(s200ema, title="Ema 200", color = blue, linewidth = 2, transp=0)
longCond = crossover(s10ema, s21ema) and (s21ema > s50ema) and (s50ema > s200ema)
shortCond = crossunder(s10ema, s21ema) and (s21ema < s50ema) and (s50ema < s200ema)
plotshape(series=longCond, title="Long", style=shape.triangleup, location=location.belowbar, color=green, text="LONG", size=size.small)
plotshape(series=shortCond, title="Short", style=shape.triangledown, location=location.abovebar, color=red, text="SHORT", size=size.small)
我对 pinescript 很陌生,我被困在这一点上......我只想在 10 EMA 超过 21 EMA 而 21 高于 50 EMA 和 50 EMA 高于 200 EMA 时绘制交叉。这是为了指示长信号。同时,当 10 EMA 超过 21 EMA 而 21 低于 50 EMA 而 50 EMA 低于 200 EMA。这是表示空头信号。
我有这么多代码,但我不知道如何继续:
//@version=3
study(title="MA Cross ATTEMPT", overlay=true)
s10ema = ema(close, 10)
s21ema = ema(close, 21)
s50ema = ema(close, 50)
s200ema = ema(close, 200)
plot(s10ema, color = red, linewidth = 1, transp=0)
plot(s21ema, color = aqua, linewidth = 1, transp=0)
plot(s50ema, color = aqua, linewidth = 2, transp=0)
plot(s200ema, color = red, linewidth = 2, transp=0)
mycond = s200ema < s50ema and s50ema < s21ema and s21ema < s10ema
EMACross = cross(s10ema, s21ema) ? s10ema : na, style = cross, linewidth = 4, color = yellow, transp=0
plot(?????)
如有任何帮助,我们将不胜感激
执行此操作的方法是使用 plotshape()
函数。还有不同的 plot
函数,但我更喜欢为此目的使用 plotshape()
。一定要检查其他 plot
函数。 Tradingview 有一个很好的 pine-script 文档。
此外,cross()
returns 1
如果两个系列相互交叉。它可以从下面或上面,没关系。但是,您想在 crossover
发生时触发您的条件。为此目的,有一个名为 crossover()
的函数(另见 crossunder()
的相反内容)。
//@version=3
study(title="MA Cross ATTEMPT", overlay=true)
s10ema = ema(close, 10)
s21ema = ema(close, 21)
s50ema = ema(close, 50)
s200ema = ema(close, 200)
plot(s10ema, title="Ema 10", color = red, linewidth = 1, transp=0)
plot(s21ema, title="Ema 21", color = aqua, linewidth = 1, transp=0)
plot(s50ema, title="Ema 50", color = orange, linewidth = 2, transp=0)
plot(s200ema, title="Ema 200", color = blue, linewidth = 2, transp=0)
longCond = crossover(s10ema, s21ema) and (s21ema > s50ema) and (s50ema > s200ema)
shortCond = crossunder(s10ema, s21ema) and (s21ema < s50ema) and (s50ema < s200ema)
plotshape(series=longCond, title="Long", style=shape.triangleup, location=location.belowbar, color=green, text="LONG", size=size.small)
plotshape(series=shortCond, title="Short", style=shape.triangledown, location=location.abovebar, color=red, text="SHORT", size=size.small)