Перейти к содержимому

Условия

Условия решают, по какой связи пойдёт поток после шлюза. Их задают на связях, выходящих из шлюза: выберите связь на схеме и откройте панель свойств.

Конструктор собирает условие без кода:

  1. Что проверяем? — переменная блока выше по потоку или параметр стратегии. Для списков (свечи, индикатор) выберите поле и какую свечу: последнюю, предыдущую или 3 назад.
  2. Оператор — больше, меньше, равно, не равно, а также пересекает снизу вверх и пересекает сверху вниз.
  3. С чем сравниваем — с числом или с другой переменной.

Несколько условий объединяются: Выполнять, если верны все (и) или любое (или). Под формой показано, как условие читается словами.

Если выше по потоку нет блоков с результатом, конструктору нечего предложить — добавьте перед шлюзом, например, Рассчитать индикатор или Статус ордера.

Вкладка Выражение позволяет написать условие кодом на языке FEEL. Редактор подсказывает имена переменных и подсвечивает ошибки.

result[-1].Value > 70
klines[-1].Close > klines[-2].Close and strategyParams.direction = "long"

Правила, которые чаще всего путают:

  • списки нумеруются с 1; последний элемент — [-1], предпоследний — [-2];
  • сравнение на равенство — одинарный =;
  • строки — в двойных кавычках.

Если выражение сложнее, чем умеет конструктор, его можно править только как код. Чтобы снова собрать условие в конструкторе, очистите поле.

У шлюза «Условие» можно отметить одну связь как связь по умолчанию: поток пойдёт по ней, если ни одно условие не выполнилось. Без неё шлюз, у которого все условия ложны, остановит процесс с инцидентом.