Pine Script™ ed i grafici stringono un’amicizia più profonda

Jul 12, 2022

Ci sono nuove funzioni all’interno dell’universo chart che danno un accesso ancora più avanzato alle proprietà del grafico. Con esse, introduciamo un nuovo tipo di comportamento da parte degli script Pine, che permette loro di ricalcolare e ridisegnare sulle barre visibili, adattandosi automaticamente al livello di zoom scelto dal trader.

Proprietà del grafico

Con chart.bg_color si ottiene il colore dello sfondo del grafico. Potete usarlo per modificare lo schema colori dello script con quello del grafico. Con chart.fg_color si ottiene il colore migliore per un contrasto ottimale con lo sfondo, qualunque esso sia.

Un altro set di funzioni Boolean rende possibile valutare il tipo di grafico su cui lo script sta girando. Tra queste troviamo:

L’ultima restituirà come risultato true con ogni tipologia di grafico tradizionale, ovvero quelli che non hanno un prezzo di chiusura sintetico, come barre, candele, candele ombra, colonne, linee, aree o baseline.

Barre visibili e ricalcolo dinamico

Le nuove funzioni integrate chart.left_visible_bar_time e chart.right_visible_bar_time restituiscono il tempo di apertura delle candele all’estremità dal grafico visibile, ovvero quella più a destra e quella più a sinistra. Nel momento in cui il trader esegue uno zoom o cambia in qualsiasi altro modo questo range, lo script si aggiornerà in automatico al nuovo contesto. Questo tipo di comportamento rende possibile tanti nuovi script adattivi.

In questo esempio, viene disegnata una freccia dall’apertura della prima candela visibile alla chiusura dell’ultima, mostrando il dato di guadagno/perdita del movimento osservato:

//@version=5
indicator("Chart gain/loss", "", true)

// Save the `open` of the leftmost visible bar.
var float chartOpen = na
if time == chart.left_visible_bar_time
    chartOpen := open
else if time == chart.right_visible_bar_time
    // Run the following code on the chart's rightmost visible bar.
    color arrowColor = close > chartOpen ? color.lime : color.fuchsia
    // Draw arrow once, then modify it.
    var line arrow = line.new(na, na, na, na, xloc.bar_time, extend.none, na, line.style_arrow_right, 3)
    line.set_xy1(arrow, chart.left_visible_bar_time, chartOpen)
    line.set_xy2(arrow, chart.right_visible_bar_time, close)
    line.set_color(arrow, arrowColor)
    // Draw percentage label once, then modify it.
    var label percentage = label.new(na, na, na, xloc.bar_time, yloc.price, #00000000, label.style_label_down, size = size.huge)
    int midTime = int(math.avg(chart.left_visible_bar_time, chart.right_visible_bar_time))
    label.set_xy(percentage, midTime, math.avg(chartOpen, close))
    label.set_text(percentage, str.tostring((close - chartOpen) / chartOpen * 100, format.percent))
    label.set_textcolor(percentage, arrowColor)

N.B.: Dato che gli script di questo tipo saranno ricalcolati più spesso, bisogna essere particolarmente attenti alla loro efficienza, mantenendo i calcoli particolarmente leggeri per preservare la tradizionale reattività dei grafici TradingView.

Abbiamo pubblicato un indicatore Chart VWAP come esempio di come utilizzare la nuova funzionalità. Si ancora in automatico sulle barre visibili:

L’account PineCoders ha anche pubblicato una libreria VisibleChart per aiutare i programmatori ad ottenere il massimo.

Per essere sempre aggiornati sulle novità Pine Script™, dai un’occhiata alle Note di rilascio. Inoltre, segui l’account PineCoders ed i relativi canali di comunicazione, come Telegram, Twitter, e la chat “Pine Script™ Q&A” su TradingView.

Speriamo che possiate apprezzare questa funzionalità. Non smettete di inviarci suggerimenti per migliorare. Noi continueremo a lavorare per costruire un TradingView migliore.

Look first Then leap

TradingView è realizzato per te. Assicurati di sfruttare al massimo tutte le sue funzionalità
Apri grafico