В 2013 году мы запустили Pine Script®, чтобы предоставить трейдерам язык программирования, на котором они смогли бы писать свои торговые модели. С самых истоков, когда самой важной задачей было рассчитать и построить линию RSI, ваши предложения помогали нам развивать и улучшать наш язык. Сегодняшние скрипты гораздо мощнее своих предшественников: улучшенное тестирование стратегий на истории, оповещения для торговых ботов, масса визуальных эффектов, множество опций для пользовательского ввода, превосходный редактор, библиотеки и более сложные структуры данных, такие как массивы и матрицы. Мы не шутили, когда два года назад сказали вам, что Pine набирает обороты.
Объекты Pine — это экземпляры новых определяемых пользователем составных типов (UDT), объявленных с использованием ключевого слова type. Опытные программисты могут думать о UDT как о классах без методов.
Теперь вместо использования независимых переменных, таких как pivotTime и pivotLevel, для передачи связанных данных, вы можете определить тип pivotPoint с двумя полями для хранения этих значений:
type pivotPoint int openTime float level
Затем вы можете создать новый объект этого типа с помощью конструктора new():
newPivot = pivotPoint.new(time, high)
А затем обратитесь к полю объекта, используя запись через точку:
label.new(newPivot.openTime, newPivot.level, str.tostring(newPivot.level), xloc.bar_time)
Массивы и матрицы тоже могут хранить пользовательские объекты. Для этого при создании массива/матрицы нужно использовать шаблонную функцию, в которую необходимо передать тип, который эта структура должна хранить:
pivotArray = array.new<pivotPoint>()
Объекты можно использовать вместе со всеми другими функциями Pine: вы можете экспортировать пользовательские типы из библиотек, запрашивать объекты из функции request.security() и т. д. Например, функция, которая ранее возвращала кортеж из десяти значений, теперь может возвращать один объект, содержащий десять полей.
Подробное описание новой функциональности можно найти в нашем Руководстве пользователя, на странице, посвященной объектам.
Увидеть объекты в действии можно в скриптах ниже.
Индикатор Electrocardiogram Chart от HeWhoMustNotBeNamed:
Библиотека ZigZag от TradingView и встроенный индикатор ZigZag, который был переписан, чтобы её использовать:
Если вы хотите узнавать об обновлениях Pine, следите за разделом Release notes. Учётная запись PineCoders также транслирует новости об обновлениях в своем Telegram-канале Squawk Box и в публичном чате Pine Script® Q&A на TradingView.
Мы надеемся, вы найдёте новые функции полезными. Продолжайте делиться с нами своими отзывами — именно они помогают нам делать TradingView лучше.