Наиболее часто используемый оператор в TradingView — это оператор присваивания (=). Этот оператор требует использования двух операндов и присваивает значение справа от (=) переменной слева от него.

С его помощью в Pine Script происходит инициализация переменных:

Ограничения оператора присваивания в Pine Script

Если мы один раз инициализировали переменную, то с помощью оператора присваивания изменить её нельзя:

Приведем пример, как писать нельзя:


При компиляции такого скрипта возникает ошибка:

Приведем пример, как писать нельзя:

Чтобы устранить ошибку, нужно ввести новую переменную:


Т.е. при помощи оператора (=) инициализировать одну и ту же переменную внутри одного скрипта можно только 1 раз.

Но, есть и другой выход, можно использовать другой оператор для повторной инициализации одной и той же переменной (:=) :


Этот код работает правильно и выводит скользящую среднюю SMA 50 на график:

Ограничения оператора присваивания в Pine Script

Логический оператор сравнения (==)

Давайте разберемся, чем отличаются одно = и два ==.

В операторе присваивания (=) используется один знак равенства, а в операторе сравнения на равенство (==) два. Разница между ними в том, что оператор присваивания присваивает значение справа переменной слева. А оператор сравнения проверяет, идентично ли значение справа значению слева.


Здесь переменной цвета colour присваивается значение, возвращаемое условным тернарным оператором (?:). Если условие истинно (x равно y), возвращается значение второго операнда color.aqua, в противном случае возвращается третий операнд color.black.

Так меняет график наш индикатор:

Не путайте присваивание (=) с логическим оператором сравнения (==)

Если вместо «x==y» написать «x=y», то код будет скомпилирован с ошибкой.

Подведем итог

Оператор  (=) присваивает переменным и аргументам во встроенных функциях определенные значения. Переменной слева от (=) устанавливается значение справа от (=). С помощью оператора присваивания можно только 1 раз присвоить  установить значение существующим переменным внутри одного индикатора или стратегии.