Pine Script — скриптовый язык программирования для создания индикаторов и стратегий для платформы TradingView. Разработчики утверждают что большинство встроенных индикаторов написаны также на Pine.

Я также записал несколько видео посвященных как платформе TradingView, так и языку программирования Pine Script. Если формат видео удобнее то все они в плейлисте TradingView + Pine Script.

Скрипты пишутся во встроенном в платформу редакторе, исходные коды также сохраняются на платформе и могут быть как публичными, так и приватными.

Если скрипт публичен, то его исходный код может увидеть любой пользователь TradingView. В одно нажатие этот код может быть скопирован, а затем изменен и оставлен в привате или опубликован после изменения.

Скрипт по сути простыня текста, которая содержит выражения, операторы, определения функций и вызовы функций. Язык простой. Здесь нет ни классов, ни разбиения на файлы/классы и прочее. Полноценная декомпозиция невозможна. Поддержки версий нет. Использовать какие либо IDE нельзя. Доступа из скрипта в консоль в Pine Editor нет, как и инструментов отладки (но сообщения компилятора и ошибки в консоль выводятся).

Результат работы скрипта это либо вывод информации на график (индикатор) или совершение сделок (стратегия).

Стоимость использования Pine Script

Использование Pine Script бесплатно на всех тарифных планах TradingView. На некоторых тарифах вы можете ограничивать публичность скриптов (вероятно для монетизации ваших скриптов).

Ограничения на скрипты

Так как скрипты выполняются на серверах TradingView, то на скрипты могут накладываться ограничения для того чтобы большие и сложные скрипты излишне не нагружали сервера и не мешали работе скриптов других пользователей.

Ограничения могут коснуться:

  • количество баров
  • времени исполнения скрипта
  • объема потребляемой памяти
  • размера скрипта

Например количество баров которые мы можем увидеть ограничено 5000 для пользователей бесплатного тарифа (так написано в документации, но по моим наблюдениям это не всегда так :) ).

Структура скрипта Pine

Пример скрипта можно увидеть в редакторе Pine если выбрать Открыть  — Новый индикатор ( или Новая стратегия )

Например индикатор может выглядеть вот так :


Использование либо study  либо strategy  в скрипте ОБЯЗАТЕЛЬНО.

Отличие study или strategy

study инициализирует Индикатор, strategy — Стратегию.

Индикатор обязан использовать хотя бы одну функцию для вывода информации на график (напр. plot). Стратегия обязана использовать хотя бы одну функцию для совершения сделки (напр. strategy.entry() ).

Стратегия — скрипт предназначенный для совершения сделок. Как в реальном времени так и для тестирования в тестере стратегий TradingView на исторических данных. Стратегия также может что-то выводить на график (например значки о совершенных сделках). Индикатор предназначен для вывода информации на график инструмента и не может совершать сделки, но зато потребляет меньше ресурсов и работает быстрее.

И Стратегия и Индикатор могут создавать Алерты.

Модель работы скриптов Pine

Важно понимать что ваш скрипт выполняется многократно для КАЖДОГО бара начиная с самого старого доступного. При этом индекс “текущего” (самого правого) бара равен 0. По мере работы скрипта он как бы смещается по барам слева направо.

Когда Индикатор достигает текущего, не закрытого ещё бара, то скрипт выполняется каждый тик (при каждом обновлении цены или объема) до тех пор пока бар не закроется. Скрипт выполняется ещё один раз на закрытии бара.

Стратегия по умолчанию считается только по закрытии текущего бара, однако её также можно настроить на пересчет по каждому тику.

Серии

В Pine Script есть важнейший тип данных — Серии. В сериях хранятся например данные баров close, open, high, low и т.д. Серии можно воспринимать как динамический массив. По мере перемещения скрипта по барам серия дополняется значениями.

Серия важнейшее понятие Pine Script.

Продолжение следует…