Сентябрь 10, 2020
Теперь в языке Pine доступны массивы

В Pine теперь есть возможность использовать массивы для создания пользовательских наборов данных. Массивы значительно расширяют возможности Pine, позволяя заполнять, производить вычисления и управлять одномерными структурами данных, содержащими элементы одного из следующих типов: float, int, bool или color.

Например, так можно создать массив под названием levels, содержащий три элемента типа float, инициализированных значением na:

level = array.new_float(size=3, initial_value=na)

Массивы поддерживают динамическое изменение размера. Специальные функции позволяют выполнять различные преобразования и операции над массивами, включая копирование, сортировку и создание среза, нахождение минимального и максимального значений в массиве, стандартного отклонения его элементов и другие: array.min(), array.max(), array.stdev(), array.avg(), array.median() и т. д.

В примере ниже сначала с помощью массива создается набор данных, содержащий ценовые уровни баров с возрастающим объемом, а затем отображается среднее арифметическое значение элементов этого набора. Массив здесь используется для реализации FIFO-очереди (first in, first out):

//@version=4
study("Price Avg Of Increasing Volume Bars", "", true)
i_levels = input(20,   "Levels")
i_src    = input(hlc3, "Source")

// Initialize array of user-selected size with `na` values.
var levels = array.new_float(i_levels)

if rising(volume, 1)
    // Remove the oldest level from the beginning of the array.
    array.shift(levels)
    // Add the new level to the end of the array.
    array.push(levels, i_src)

// Calculate the avg of levels in the array, excluding any `na` values.
level = array.avg(levels)
plot(na(volume) ? na : level, "Level", close > level ? color.lime : color.fuchsia)

Раздел документации, описывающий массивы, поможет вам начать работу с ними. Взгляните на примеры использования массивов в скриптах от разработчиков RicardoSantos и Duyck, которые помогли нам в тестировании, за что мы искренне их благодарим.

Graph style — 4th Dimension RSI

Function — Multi Dimension Indexer

Function — K-Means Clustering

Function — Linear Regression

Function — Polynomial Regression

Trendlines — JD

Average Pivot Range — JD

Matrix functions — JD

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

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

The fastest way to follow markets

Launch Chart