Лучше изучить Pine v4, которая является текущей версией, поэтому этот код использует v4 (см. Первую строку). Ваш код изменен так, что он отслеживает два разных состояния: longCond
и shortCond
, и фон диаграммы отражает их. В состоянии longCond
, buy_pullback
может произойти. Когда в состоянии shortCond
, может произойти sell_pullback
. Я изменил low
на high
в вашем sell_pullback
состоянии. Комментарии в коде объясняют, что происходит. Не уверен, что это то, что вам нужно, но это может помочь вам в этом.
//@version=4
study(title="MA Cross ATTEMPT", overlay=true)
s20ema = ema(close, 20)
s50ema = ema(close, 50)
s80ema = ema(close, 80)
plot(s20ema, title="Ema 20", color = color.yellow, linewidth = 1, transp=0)
plot(s50ema, title="Ema 50", color = color.red, linewidth = 1, transp=0)
plot(s80ema, title="Ema 80", color = color.white, linewidth = 2, transp=0)
// ————— This switches between long and short conditions.
// The declarations with "var" allow the variable's value to be preserved throughout bars.
var longCond = false
var shortCond = false
if not longCond and crossover(s20ema, s50ema) and (s20ema > s80ema) and (s50ema > s80ema)
// These ":=" assignment operators are required because we are changing the value of previously declared variables.
// If we used "=" here, we would be declaring new variables local to each "if" block that would disappear once out of it.
longCond := true
shortCond := false
if not shortCond and crossunder(s20ema, s50ema) and (s20ema < s80ema) and (s50ema < s80ema)
shortCond := true
longCond := false
// This colors the background to show which state you are in.
bgcolor(longCond ? color.green : shortCond ? color.red : na, transp = 85)
// The entry triggers only occur when we are in the proper state.
buy_pullback = longCond and crossover(open, s20ema) and low < s20ema
sell_pullback = shortCond and crossunder(open, s20ema) and high > s20ema
// These plot when your entries occur, so that you can verify where they trigger.
plotchar(buy_pullback, "buy_pullback", "▲", location.belowbar, color.lime, size = size.tiny)
plotchar(sell_pullback, "sell_pullback", "▼", location.abovebar, color.fuchsia, size = size.tiny)
alertcondition(buy_pullback, title='Long', message='EURAUD_buy')
alertcondition(sell_pullback, title='Short', message='EURAUD_sell')
Вы найдете полезную информацию, чтобы начать обучениеСосна здесь: http://www.pinecoders.com/