Nella versione 4 di pine script, Tradingview ha aggiunto una funzionalità per disegnare linee e oggetti sul grafico. Questa piccola aggiunta fa una differenza enorme nella qualità visiva degli script personalizzati. Per essere onesti, la versione 3 non era priva di ottime funzionalità grafiche e molte persone sono riuscite a creare grafici visivamente accattivanti usando gli strumenti disponibili. Con la versione 4, sono state introdotte nuove funzionalità per poter visualizzare prezzi dinamici sui grafici o tracciare linee di trend nel futuro che ci permettono di creare grafici migliori. Quindi vediamo uno dei nuovi strumenti disponibili in pine script, la funzione per visualizzare una label nel grafico di Tradingview.
Scopo
Come sempre, cerchiamo di descrivere le funzionalità di pine-script nel modo più semplici possibile. Vediamo come usare le label per visualizzare i prezzi nel grafico. Questa nuova funzionalità aiuta i trader a evidenziare i livelli chiave che possono essere di interesse. Il seguente codice usa la funzione label.new()
per contrassegnare i punti pivot (swing highs/lows) e visualizzare il prezzo del livello di swing. I trader possono così monitorare i livelli di supporto/resistenza.
Visualizzare le Label sul Grafico di Tradingview
//@version=4
study("Pivot Prices", overlay=true)
leftbars = input(10, minval=1, title='Bars to the left')
rightbars = input(2, minval=1, title='Bars to the right')
phigh = pivothigh(high, leftbars,rightbars)
plow = pivotlow(low, leftbars, rightbars)
if phigh
label1 = label.new(bar_index[rightbars], high[rightbars], text=tostring(high[rightbars]), style=label.style_labeldown, color=color.orange)
if plow
label2 = label.new(bar_index[rightbars], low[rightbars], text=tostring(low[rightbars]), style=label.style_labelup, color=color.green)
Commento
Prima di approfondire le label, descriviamo come rileviamo uno swing perchè, senza di esso, non avremmo uno script con cui lavorare. Fortunatamente, rilevare gli swing è davvero facile grazie alle funzioni pivothigh
e pivotlow
integrate in Tradingview. Dobbiamo solamente specificare alle funzioni l’intervallo di candele dove cercare un potenziale swing da analizzare. A tale scopo usiamo le variabili leftbars
e rightbars
.
Per capire il loro funzionamento, immaginiamo di analizzare le ultime 7 candele dove leftbars
= 5 e rightbars
= 2. Con questi parametri il codice analizza la candela corrsipondente a 2 barre precedenti (rightbars
) per verificare se abbiamo un punto swing/pivot. Per essere un punto pivot deve essere il valore più alto o il più basso tra la candela corrente e quella in analisi. Successivamente, analizziamo le 5 barre precedenti alla candela che stiamo analizzando (leftbars
). Anche in questo caso controlliamo che la candela è il valore più alto o il più basso rispetto a tutte e 5 le candele precedenti. In caso positivo abbiamo un pivot.
Dato che siamo alla ricerca di uno swing nelle x
candele precedenti (dato che usiamo rightbars
), non possiamo rilevare uno swing fino a quando non si è verificato. In altre parole, l’indicatore sarà in ritardo rispetto al numero di barre impostate nel parametro rightbars
.
La funzione Label
Tradingview ha una serie di nuove opzioni per la visualizzazione che, a prima vista, possono sembrare un po’ complicate. Vedere una lunga lista di funzioni come label.new()
, label.set_style()
e label.delete()
insieme a parametri molto simili come x
vs xloc
e y
vs yloc
potrebbe presuppore che ci sia molto da studiare. Tuttavia, visualizzare una semplice label è più facile di quanto si possa pensare. È per questo motivo che abbiamo cercato di implementare un codice il più minimale possibile.
La funzione label.new()
crea una nuova label ogni volta che viene richiamata. Dato che gli script sono rieseguiti ad ogni barra, è possibile visualizzare una label su ogni barra fino a raggiungere il limite. Per questo motivo inseriamo la chiamata a label.new()
dietro un’istruzione if
. Di seguito il codice che visualizza una label ad ogni barra:
//@version=4
study("My Script", overlay=true)
label.new(bar_index, high, text='A', style=label.style_triangledown)
I parametri
Nella nuova funzione per visualizzare label sul grafico di Tradingview possiamo specificare diversi parametri. Vediamo i principali parametri che abbiamo usato nel codice.
x
: la coordinata lungo l’asse x dove vogliamo visualizzare la label. La differenza con il parametroxloc
(che non usiamo in questo esempio) è chex
prevede un valore di tiposeries
(comebar_index
) mentrexloc
prevede un valore stringa, che è un singolo valore. Per approndire si può leggere l’articolo relativo alle variabiliseries
e l’indicizzazione.y
: la coordinata lungo l’asse y dove vogliamo visualizzare la label. Nel nostro esempio, forniamo due variabili series (high
elow
) in modo da poter posizionare le label nei punti di swing high e swing lowtext
: è il testo che vogliamo visualizzare. Deve essere una stringa ma fortunatamente non deve essere una stringa costante come nella versione 3 diplotshape()
. Una stringa costante è una stringa che non cambia mai. I valori dei prezzi cambiano ogni barra e quindi nella version 3 non possiamo visualizzare un valore da una serie di prezzi 3. Al contrario, nella versione 4, possiamo usarla la funzioneto_string()
e convertire i prezzilow
ehigh
in una stringa.
Infine, come è possibile notare, per gli argomenti x
e y
indicizziamo la serie con il valore rightbars
. In questo modo le label indicano correttamente lo swing. Tuttavia, come accennato in precedenza, appariranno solo un paio di battute dopo che lo swing è avvenuto!
I grafici
Infine, prima di concludere, vediamo come appare l’indicatore quando lo posizioniamo sui grafici.
Codice completo
In questo articolo abbiamo descritto come visualizzare le label sul grafico di Tradingview. Per il codice completo riportato in questo articolo, si può consultare il seguente repository di github:
https://github.com/datatrading-info/TradingView