Операторы сравнения сравнивают два операнда друг с другом и возвращают true или false в зависимости от результата. Например, оператор «меньше» (<) возвращает значение true, если значение слева от него меньше, чем значение справа. Итак, 2 < 10 возвращает true, а 10 > 19 оценивается как false.

В Pine Script есть несколько операторов сравнения:

< — знак меньше чем.  5 < 10  — возвращает значение true (верно), т.к. 5 и правда меньше 10.

Также можно сравнивать цены открытия: open < open [3]. Возвращает true, если открытие текущего бара меньше, чем цена открытия 3-х баров назад. Используется с числовыми выражениями.

<= — знак меньше или равно. open <= close. Возвращает true только тогда, когда цена открытия бара меньше или равна цене закрытия бара. Используется с числовыми выражениями.

!= — знак не равно. volume != volume[1] это выражение возвращает значение true для всех ценовых баров, объем которых отличается от предыдущего бара; false для всех остальных баров.

close != close [5]  это выражение возвращает true только тогда, когда цена открытия текущего бара не равна цене открытия 5 баров назад. Используется с выражениями любого типа.

== — знак равно. Используется с выражениями любого типа. high == high[1] это выражение возвращает значение true только в том случае, если максимум текущего бара точно такой же, как максимум предыдущего бара.

volume == ema(volume, 5) возвращает true, если объем текущего бара идентичен объему последних 5 баров; возвращает false во всех остальных случаях.

> — знак больше чем. 10 > 5 возвращает значение true (верно), т.к. 10 и правда больше 5.

open > ema(close, 10) это выражение возвращает true, только если цена открытия текущего бара больше, чем экспоненциальная скользящая средняя (EMA) цены закрытия за последние 10 баров.

>= — знак больше чем. open >= low[2] это выражение возвращает true, только если цена открытия текущего бара больше или равна минимальной цене 5 баров назад.

Обратите внимание, что в двойных символах таких как <= менять местами порядок расположения символов нельзя. Будет ошибкой запись типа =< .

Пример использования операторов сравнения TradingView

Будем рисовать крестики синего цвета:


Проверяем условие low <= low[3], если оно true (верное), то будем рисовать крестик синего цвета рядом с low, если оно false (не верное), то будем рисовать крестик над high.

Так выглядит наш индикатор на графике:

Pine Script. операторы сравнения

Приведем еще один пример, как использовать несколько сравнений подряд.


Переменной OpenMax присваиваем результат сравнения high > high[1]. При помощи тернарного оператора проверяем сразу 3 условия подряд, если все три условия верны, то в переменную background возвращаем цвет fuchsia с прозрачностью 50, если нет, то na.

Условия проверяют больше ли high данной свечи, чем high предыдущей свечи, далее такое сравнение делается для предыдущих двух свечей OpenMax[1] == true и для предыдущих двух OpenMax[2] == true.

Наш пример заканчивается функцией bgcolor(), которая окрашивает фон графика в цвет фуксия, если условия выполнены:  high текущей свечи выше трех предыдущих.

Добавим скрипт на график:

Pine Script. операторы сравнения

Помимо операторов сравнения, в TradingView есть логические операторы and, or, not.

Разница между ними заключается в том, что операторы сравнения сравнивают значения друг с другом (например, если закрытие меньше, чем предыдущее закрытие). Логические операторы объединяют истинные/ложные выражения, например high>high[2] and open>open[2] или high>high[1] or close