Unisci ed annota: le tabelle Pine ora supportano titoli e caselle informative (tooltip)

Mar 18, 2022

Titoli ed unione celle

È ora possibile unire diverse celle in una tabella al fine di creare titoli e separatori. Una cella unita non deve necessariamente contenere un titolo tuttavia: è possibile unire celle in qualsiasi direzione, anche verticalmente, fintanto che non si va ad intaccare altre celle unite o si esce dai confini della tabella.

Per unire le celle, è disponibile la nuova funzione table.merge_cells(). Le regole sono semplici: basta passare le coordinate della prima e dell’ultima cella da fondere insieme. Tutto ciò che è nel mezzo sarà unito in una singola cella, con dimensioni determinate automaticamente dalle colonne e le righe circostanti.

Nello script di esempio qui sotto, potete vedere tre celle unite: la prima mette insieme tutte le celle della riga zero, e contiene il titolo, le altre due vanno invece a formare due sottotitoli nella riga successiva.

//@version=5
indicator("MA Ratings", overlay = true)

TRANSP = 80
TABLE_WIDTH = 6
var CELL_TOOLTIP = "Cell color depends on the SMA direction: green for rising SMAs, red for falling ones"

var smaLengths = array.from(10, 20, 50, 100, 200, 500)

smaValues = array.new_float()
for i = 0 to array.size(smaLengths) - 1
    array.push(smaValues, ta.sma(close, array.get(smaLengths, i)))

var maTable = table.new(position.top_right, TABLE_WIDTH, 4, border_width = 2)

if barstate.isfirst
    headerColor = color.new(color.blue, TRANSP)
    table.cell(maTable, 0, 0, text = "SMA Table", bgcolor = headerColor)
    table.cell(maTable, 0, 1, text = "Short-term", bgcolor = headerColor)
    table.cell(maTable, 2, 1, text = "Long-term", bgcolor = headerColor)
    table.merge_cells(maTable, 0, 0, 5, 0)
    table.merge_cells(maTable, 0, 1, 1, 1)
    table.merge_cells(maTable, 2, 1, 5, 1)

if barstate.islast
    for i = 0 to TABLE_WIDTH - 1
        cellTitle = str.format("SMA {0}", array.get(smaLengths, i))
        cellValue = array.get(smaValues, i)
        cellColor = color.new(array.get(smaValues, i) >= array.get(smaValues[1], i) ? color.green : color.red, TRANSP)
        table.cell(maTable, i, 2, bgcolor = cellColor, text = cellTitle, text_color = color.gray, tooltip = CELL_TOOLTIP)
        table.cell(maTable, i, 3, bgcolor = cellColor, text = str.tostring(cellValue,  format.mintick), tooltip = CELL_TOOLTIP)

Caselle informative (tooltip)

Il secondo miglioramento relativo alle tabelle è rappresentato dai tooltip, o caselle informative. Si tratta di semplici stringhe di testo che vengono mostrate all’utente quando questi posiziona il mouse sopra una determinata cella. Molto utili per dare contesto e facilitare la comprensione della tabella.

Per creare una cella con un tooltip, è sufficiente passare il nuovo argomento tooltip nella funzione table.cell(). Potete vederlo in azione nello script di esempio qui sotto, dove usiamo tooltip = CELL_TOOLTIP nella chiamata di table.cell() per le ultime due linee. Ecco come appare:

Per essere sempre aggiornato sulle nuove funzionalità Pine, leggi le Note di rilascio. In alternativa, segui gli aggiornamenti che il gruppo PineCoders invia tramite il canale Telegram Squawk Box, tramite l’account Twitter, e nella chat pubblica relative a Pine Script su TradingView.

Speriamo che queste nuove funzionalità possano fare piacere ai tanti sviluppatori che popolano la nostra piattaforma. Continuate ad inviarci consigli e suggerimenti su come migliorare Pine Script!

Look first Then leap

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