Я хочу, чтобы пересечение сделало условие истинным до тех пор, пока другое пересечение не сделает его ложным

#pine-script

Вопрос:

Мне трудно разобраться в этом.

В принципе, у меня есть индикатор, который я пытаюсь сделать условием для бычьего против медвежьего.

Компонентами являются канал и скользящая средняя, и я хочу, чтобы пересечение(sma, нижняя граница) делало бычье условие истинным до тех пор, пока скользящая средняя не пересечет верхнюю границу, а медвежье условие не станет истинным при пересечении(sma, верхняя граница).

Я попробовал несколько разных способов, но в итоге получилось так, что бычье состояние возникает только на перекрестке и не сохраняется до пересечения.

TLDR Мне нужно выполнить однократное условие (крест), включить состояние и продолжать до тех пор, пока другой крест не выключит его.

заранее спасибо

Ответ №1:

Вам нужно использовать var объявленную переменную, которая сохраняется в разных барах до тех пор, пока ее не изменят. Вот так :

 var bool bullish = false

bull_start = crossover(sma, lower_bound)
bull_stop = crossover(sma, upper_bound)

if bull_start
    bullish := true
else if bull_stop
    bullish := false
 

Комментарии:

1. Ты-спаситель. Большое вам спасибо, это сводило меня с ума, я знал, что забываю что-то простое. Я действительно новичок в программировании, но уже давно занимаюсь техническим анализом и погружаюсь в quant. Еще раз спасибо.