Рады сообщить, что в Pine Script® появились методы! Теперь нотация с точкой, в других языках программирования используемая для вызова методов, доступна и в Pine. Использовать новый синтаксис можно двумя разными способами:
- С пользовательскими функциями — для этого при объявлении функции нужно указать новое ключевое слово method.
- Со встроенными функциями, которые находятся в пространстве имён array, box, label, line, linefill, matrix и table, если первым параметром такой функции является идентификатор объекта этого типа.
Рассмотрим простой пример, где мы вычисляем среднее значение low для скользящего окна восходящих баров:
//@version=5
indicator("Long stop", "", true)
int lengthInput = input(20)
var pricesArray = array.new<float>(lengthInput)
method maintainQueue(array<float> srcArray, float value) =>
// Append a new value to the end of the array.
srcArray.push(value)
// Remove the oldest value from the beginning of the array.
srcArray.shift()
if close > open
// Track the `low` values of up bars.
pricesArray.maintainQueue(low)
plot(pricesArray.avg(), "Stop")
Наш метод maintainQueue() очень похож на обычную функцию и может использоваться как таковая, но ключевое слово method также позволяет вызывать его через точку после любой переменной с типом array<float>. При таком вызове мы опускаем первый аргумент — например, в pricesArray.maintainQueue(low) мы передаём только один аргумент, value.
Также обратите внимание, как мы используем нотацию метода с функциями из пространства имён array в таких вызовах, как srcArray.push() и srcArray.shift() внутри кода метода, и pricesArray.avg() в последней строке примера.
Больше информации об этом новом функционале можно найти на странице нашего Руководства пользователя, посвященной методам.
Чтобы увидеть методы в действии, посмотрите обновленный код нашего встроенного индикатора Гэпы, который использует как встроенные, так и пользовательские методы для выделения разрывов на графике прямоугольниками:

Мы также обновили код библиотеки ZigZag, чтобы можно было использовать и встроенные, и пользовательские методы:
ZigZag от TradingView

Также объекты и методы можно увидеть в скриптах от сообщества PineCoders:
Flare от Fikira

Recursive Zigzag [Trendoscope] от HeWhoMustNotBeNamed

Recursive Auto-Pitchfork [Trendoscope] от HeWhoMustNotBeNamed

Если вы хотите узнавать об обновлениях Pine, следите за разделом Release notes. Учётная запись PineCoders также транслирует новости об обновлениях в своем Telegram-канале Squawk Box и в публичном чате Pine Script® Q&A на TradingView.
Мы надеемся, вы найдёте методы полезными. Продолжайте делиться с нами своими отзывами — именно они помогают нам делать TradingView лучше.