Помимо арифметических операторов в Pine Script есть еще один оператор для выполнения вычислений: оператор модуля (%). Что делает этот оператор и как мы можем его использовать?

Когда мы выполняем целочисленное деление в Pine Script, любой дробный остаток теряется. Об этом мы говорили в предыдущей статье.

Но иногда нам нужно узнать именно остаток от целочисленного деления, а не отбрасывать его. Для этого мы используем оператор модуля (%). Этот оператор выполняет действие на двумя операндами и возвращает остаток от целочисленного деления. В других языках программирования его называют оператором остатка.

Например, 5 % 3 возвращает 2 (5/3 = 1 с остатком 2), а 25 % 3 дает 1 (25/3 = 8, остаток 1).  При помощи оператора модуля можно найти сколько раз одно число содержится в другом (например 3, один раз содержится в 5, и 8 раз в 25).

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


bar_index — номер текущего бара.

Функция plot выводит остаток от деления номера бара на 5:

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

Как видите, наш график колеблется между 0 и 4. Каждый 5-й бар выражение (bar_index % 5) возвращает 0.

Pine Script. Оператор модуля в TradingView

Как найти каждый N-ый бар при помощи оператора модуля


При помощи условного тернарного оператора проверяем условие: какой остаток получается при делении номера (bar_index) на 15. Если остаток равен 0, значит бар индекс кратен 15, тогда в переменную Colour передаем цвет — color.new(color.maroon, 70). Если остаток не равен 0, то возвращаем n/a.

Функция bgcolor — заливает фон каждого 15-го бара указанным цветом, который хранится в переменной Colour.

Так выглядит график, на котором подсвечивается каждый 15-й бар:

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

Поиск четных и нечетных чисел при помощи оператора модуля

Если при делении числа на 2 в остатке получаем 0, значит делимое число четное. Давайте выделим четные и нечетные бары стрелочками разного цвета.


Номер бара делим на 0 и проверяем остаток. Если остаток равен 0, то тернарный оператор возвращает 1 в переменную Bar, если остаток не равен 0, то возвращаем -1.

При помощи функции plotarrow выводим на график разные стрелочки. colorup определяет цвет стрелок, направленных вверх, а colordown — цвет стрелок направленных вниз.

maxheight — максимально возможный размер стрелок в пикселях (по умолчанию 100), мы поменяли на 12.

Так выглядит график, на котором отмечены четные и нечетные бары:

Поиск четных и нечетных чисел при помощи оператора модуля

Заключение

  • Оператор модуля (%) возвращает остаток от целочисленного деления.
  • С помощью модуля мы можем кратна ли заданная величина какому-то определенному числу, проверив равен ли остаток 0.
  • Также можно узнать четное или не четное число, проверив делится ли оно на 2 с остатком или без.