Как сделать глобальную переменную в pinescript (Tradingview) - PullRequest
1 голос
/ 20 июня 2020

Я работаю над созданием индикатора тренда в tradingview, чтобы отслеживать, в каком направлении идет тренд. В частности, мне нужна переменная, которая будет оставаться неизменной в течение нескольких дней, но при выполнении определенного условия она изменится. Кажется, что это должно быть просто сделать, но каждый раз, когда я пытаюсь, меня бросает в бесконечный l oop, и я не могу осознать это. Переменная «Тренд»


///Condition
pos = close > open
neg = close < open

pos_cond = pos and pos[1]
neg_cond = neg and neg[1]

///Variables to keep track of trend

Trend = iff(***pos_cond or neg_cond not met***, Trend[1], Trend + real_trend)

trend_change_neg = iff(pos_cond, 1, 0)
trend_change_pos = iff(neg_cond, -1, 0)

real_trend = trend_change_neg + trend_change_pos

Trend = iff(Trend > 2, 2, iff(Trend < -2, -2, Trend))

/////////plots
plotshape(Trend > 0, color = color.green, location = location.top, style = shape.square, title="TrendLong")

plotshape( Trend == 0, color = color.yellow, location = location.top, style = shape.square, title = "TrendNeutral")

plotshape( Trend < 0, color = color.red, location = location.top, style = shape.square, title = "TrendShort")

Итак, в основном то, что я хочу сделать, - это сохранить текущую сумму для Тренда, где каждый раз, когда есть 2 последовательных свечи против тренда, он переключается на нейтральный, но по мере того, как тренд продолжает двигаться в 1 направлении, он может увеличиваться до + -2 (Это было то, что мы никогда не отклоняемся более чем на 2 "отката" от нейтрального. Я ломал голову над этим уже несколько дней, но если у кого-то есть идеи, любая помощь может быть оцененным.

1 Ответ

1 голос
/ 20 июня 2020

Вам нужно использовать var. Пример:

var a = 0
a:=close>open?1:0
  

https://www.tradingview.com/pine-script-docs/en/v4/language/Expressions_declarations_and_statements.html

...