Рады сообщить, что в 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 лучше.