Оператор if называют условным переходом, он представляет собой новую ветвь (значение, путь) в нашем сценарии. Другими словами, если произошло какое-то событие, прописанное в условии для оператора if, то действия нашего алгоритма должны поменяться.

Есть много вещей, которые можно сделать с помощью операторов if:

  • открывать и закрывать сделки
  • создавать цели по прибыли и ставить ордера стоп-лосс
  • устанавливать значения переменных
  • использовать if для внутренних циклов.

Синтаксис оператора if выглядит следующим образом:


Строка кода, которая выполняется, если условие if истинно пишется на следующей строчке и выделяется отступом в 4 пробела или 1 табуляцию. Если условие после if ложно, то строки кода ниже не выполняются вообще.

Результат работы оператора if может возвращаться в какую-то переменную, но это не обязательно.

Например, проверяем условие, если close > open, то в переменную х возвращаем цену закрытия и выводим график х при помощи plot:

Как использовать оператор if в стратегиях

Пример стратегии, которая открывает позицию в лонг, если происходит пересечение двух скользящих средних EMA50 и EMA100 сверху вниз и в шорт, если происходит пересечение EMA50 и EMA100 снизу вверх.


Стратегия на графике:

Как использовать оператор if в стратегиях

Иногда одного оператора if недостаточно для реализации логики нашего скрипта. В этом случае мы можем комбинировать операторы if и использовать вложенный оператор if.

Когда мы это делаем, не только первый оператор if должен быть истинным, но и второй оператор также должен быть истинным (и третий, и четвертый, если они есть), прежде чем наш код запустится.

Пример стратегии со вложенным if:


Поменяем цвет фона бара, в зависимости от вложенных условий:


Поменяем цвет фона бара, в зависимости от вложенных условий:

Как заменить вложенный if логическим оператором

Рассмотрим пример, когда нам нужно проверить 2 условия. Мы можем записать код при помощи вложенного оператора if:


а можем заменить двойной if логическим and:

Заключение

При помощи вложенных операторов if мы можем создавать сложные условия. Существует 2 вида вложенных операторов if, которые мы можем использовать.

  1. Первый заключается в размещении оператора if внутри другого блока кода if. Это заставляет вложенный оператор if выполняться только тогда, когда предыдущее условие if истинно.
  2. Второй вариант — когда if мы помещаем внутрь блока кода else. Таким образом, вложенный оператор if запускается только тогда, когда предыдущее условие ложно.

При написании кода с условием if не забывайте использовать отступ в 4 пробела или Tab, чтобы выделить блок относящийся к условным операторам if/else.

Иногда вложенный оператор If можно заменить логическими операторами.