цена кроссовера pinescript с SMA, похоже, не работает

#pine-script

Вопрос:

Я хочу проверить, пересекла ли цена 200 SMA для более чем заданного количества свечей (настраивается). Если это правда, я хочу, чтобы он открывался долго (у меня есть другие условия, которые мне нужно добавить позже, но я заметил, что мой код здесь уже не работает). Он открывает длинные позиции по всему графику, даже если цена не превышает 200SMA.

это то, что у меня есть:

 SMA200  = sma(close, 200)
//PRICE OVER EMA CHECKS
TrendBarsCount = input(5, "Price closes needed above/below 200 MA", minval=1)
emaCrossOver = crossover(close, SMA200)
var emaLongCondition = false
if barssince(emaCrossOver) >= TrendBarsCount
    emaLongCondition := true
strategy.entry("Open Long", strategy.long, when = emaLongCondition)
 

похоже, ему просто наплевать на SMA, что я делаю не так?

Ответ №1:

Это сработало для меня. Проверяет, закрывается ли свеча выше 200 SMA, затем ждет 5 свечей, чтобы открыть длинную.

 SMA200  = sma(close, 200)

TrendBarsCount = input(5, "Price closes needed above/below 200 MA", minval=1)
emaCrossOver = crossover(close, SMA200)
longCondition = barssince(emaCrossOver) == TrendBarsCount

if longCondition
    strategy.entry("long", strategy.long)