Un esplosione di colori per Pine Script

May 13, 2021

I vostri script non saranno più tristi e monotoni, grazie all’aggiunta di tanti nuovi colori e gradienti nella nostra palette RGB.

Per l’occasione, abbiamo aggiunto una nuova funzione su Pine: ‘color.rgb (red, green, blue, transp)’. Permette di impostare i colori con l’ausilio del modello RGB, che si basa sulla definizione dei valori di rosso, verde, blu e trasparenza (gli argomenti della funzione) per la determinazione del colore risultante. Ciò significa che potrete fare a meno della solita palette e stabilire un colore semplicemente riducendono alle componenti di base. Ecco un esempio che mostra quanto è diventato semplice effettuare transizioni complesse con i colori:

//@version=4
study("Relative Bars Color Saturation", "RBCS", overlay=true)

i_barcolor = input(color.rgb(33, 150, 243), "Bar Color", input.color)

f_grad_transp(_c_col, _transp) =>
    _c_red = color.r(_c_col)
    _c_green = color.g(_c_col)
    _c_blue = color.b(_c_col)
    color.rgb(_c_red, _c_green, _c_blue, _transp)

f_indexedPercent(_currentValue, _relativeValue, _maxValue) =>
    _currentValue * _maxValue / _relativeValue

transp = f_indexedPercent(abs(close - open), high - low, 100)
c_color = f_grad_transp(i_barcolor, transp)
barcolor(c_color)

Il valore dei componenti oscilla tra 0 (meno intenso) a 255 (più intenso). Per il fattore di trasparenza, la scala va da 0 (opaco) a 100 (transparente).

Per ottenere il valore numerico specifico di un componente, basta usare le funzioni speciali ‘color.r()’, ‘color.g()’, ‘color.b()’ e ‘color.t()’ passando loro il colore come argomento.

Inoltre, la funzione ‘color.from_gradient()’ permette di creare transizioni di colore impressionanti su ogni barra, con l’unico limite imposto nella vostra fantasia. Ecco un altro esempio per mostrare la semplicità di impostare un colore gradiente a seconda del valore del relative strength index (RSI):

//@version=4
study("RGB RSI")
i_src = input(close, "Source", input.source)
i_length = input(14, "Length", input.integer)

f_grad_transp(_c_col, _transp) =>
    _c_red = color.r(_c_col)
    _c_green = color.g(_c_col)
    _c_blue = color.b(_c_col)
    color.rgb(_c_red, _c_green, _c_blue, _transp)

rsi = rsi(i_src, i_length)
c_grad = color.from_gradient(rsi, 30, 70, color.lime, color.red)

plot(rsi, color=c_grad, linewidth=3)
band1 = hline(70, "Overbought", color=color.rgb(255, 82, 82))
band0 = hline(30, "Oversold", color=color.rgb(76, 175, 80))
fill(band1, band0, color=f_grad_transp(c_grad, 90), title="Background")

Tutte le novità introdotte su Pine sono disponibili nella sezione delle Note di rilascio del Manuale utente.

Alcuni indicatori integrati (Momentum, TRIX, Price Oscillator, Detrended Price Oscillator, Chaikin Oscillator, Volume Oscillator, Ease of Movement, Rate of Change) sono stati aggiornati per prevedere l’utilizzo di queste nuove funzionalità. Potete aggiungerli al grafico per vedere l’effetto RGB in azione.

Infine, ecco alcune delle creazioni più interessanti sviluppate dalla nostra comunità di sviluppatori:

Directional Value by RicardoSantos

Color Gradient Framework by LucF, for PineCoders

Delta Volume Columns Pro by LucF

Come al solito, speriamo che la novità vi possa piacere. Aspettiamo con ansia i vostri feedback e non vediamo l’ora di tornare sul banco di farvi conoscere le prossime novità. Lunga vita alla comunità di TradingView!

Look first Then leap

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