Pine Script® представляет объекты

14 дек, 2022

В 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 лучше.

Look first Then leap

Мы создали TradingView, чтобы вы могли пользоваться самыми крутыми функциями.
Открыть график