September 10, 2020
Con lo sbarco degli array, Pine ridefinisce sè stesso

Gli script realizzati con Pine potranno d’ora in avanti supportare gli array, e di conseguenze dei dataset personalizzati. Grazie a questa novità, le potenzialità di Pine vengono estese in modo significativo, permettendo agli sviluppatori di popolare, gestire e fare calcoli su strutture mono-dimensionali di dati contenenti elementi delle seguenti tipologie: float, int, bool, o color.

Questa riga di codice, ad esempio, crea un array chiamato levels contenente tre elementi float inizializzati con il valore na:

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

Gli array supportano il ridimensionamento dinamico. Ci sono varie funzioni apposite che permettono infatti di modificare (copiando, ordinando e tagliando) gli array. Inoltra, sono previste anche funzioni matematiche: array.min(), array.max(), array.stdev(), array.avg(), array.median(), etc.

In questo esempio, viene utilizzato un array per costruire un set di dati con i livelli di prezzo registrati solo dalle candele che hanno un volume rialzista, raffigurando poi la media di tali valori. L’array utilizzato ha una struttura 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(level, "Level", close > level ? color.lime : color.fuchsia)

Il Manuale utente Pine sugli array vi aiuterà ad orientarvi. Qui sotto trovate anche un elenco di script realizzati con l’aiuto degli appassionati Pine che hanno svolto i test necessari per rilasciare la funzionalità al pubblico, che ci teniamo a ringraziare: RicardoSantos e 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

Questi script aiutano a percepire come gli array possano ridefinire ciò che è possibile con Pine, aprendo la strada ad indicatori/strategie sensibilmente più complessi e potenti per tutti gli utenti TradingView.

Speriamo che questa novità possa essere accolta con favore dalla comunità, e non vediamo l’ora di scoprire come trasformerà il nostro linguaggio di programmazione. Per qualsiasi feedback, sapete che potete scriverci. Ci teniamo ad avere il supporto di tutti.

The fastest way to follow markets

Launch Chart