Пожалуйста, скопируйте код с пробелами / табуляцией в следующий раз, чтобы он не требовал переформатирования.Кроме того, не используйте тег [tradingiew-api]
для вопросов, связанных с Pine, как указано в описании тега.
Вы использовали and
в своих условиях, что означало, что оба скрещивания должны были произойти на одном и том жебар для условия, чтобы быть правдой.Также инвертируйте ваши ema / sma calcs для второй MA.
Всегда лучше напечатать маркер на ваших условиях, чтобы быть уверенным, что они происходят, когда вы ожидаете их тоже.
//@version=3
//study(title="MA Crossover Strategy", overlay = true)
strategy("EMA Crossover Strategy", overlay=true)
src = input(close, title="Source")
price = security(tickerid, period, src)
ema1 = input(9, title="1st EMA Length")
type1 = input("EMA", "1st EMA Type", options=["SMA", "EMA"])
ema2 = input(21, title="2nd EMA Length")
type2 = input("EMA", "2nd EMA Type", options=["SMA", "EMA"])
sma3 = input(33, title="3rd MA Length")
type3 = input("SMA", "3rd SMA type", options=["SMA", "EMA"])
price1 = if (type1 == "EMA")
ema(price, ema1)
else
sma(price, ema1)
price2 = if (type2 == "EMA")
ema(price, ema2)
else
sma(price, ema2)
price3 = if (type3 == "SMA")
sma(price, sma3)
else
ema(price, sma3)
//plot(series=price, style=line, title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line, title="1st EMA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd EMA", color=yellow, linewidth=2, transp=0)
plot(series=price3, style=line, title="1st MA", color=orange, linewidth=2, transp=0)
longCondition = crossover(price1, price2) or crossover(price2, price3)
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = crossunder(price1, price2) or crossover(price2, price3)
if (shortCondition)
strategy.entry("Short", strategy.short)
plotchar(shortCondition, "shortCondition", "▼", location.abovebar, maroon, size = size.tiny)
plotchar(longCondition, "longCondition", "▲", location.belowbar, lime, size = size.tiny)