Pine Script™ ora permette gradienti verticali!

Oct 5, 2022

Le seguenti nuove variazioni (overloads) della funzione fill() possono dare vita a dei gradienti verticali:

fill(plot1, plot2, top_value, bottom_value, top_color, bottom_color)

fill(hline1, hline2,  top_value, bottom_value, top_color, bottom_color)

Tutti i parametri delle nuove variazioni accettano argomenti in serie. Creano un gradiente verticale tra il `top_color`(colore superiore) e il `bottom_color`(colore inferiore) nello spazio tra il `top_value`(valore superiore) e il `bottom_value`(valore inferiore). Le trame o le linee orizzontali, i cui ID sono usati nei primi due argomenti, agiscono come una maschera sul gradiente, determinando quale parte del gradiente sia visibile.

Ecco, ad esempio, come dare al vecchio MACD un nuovo aspetto con due gradienti verticali, uno per riempire lo spazio tra le due medie mobili e un altro per quello che di solito è rappresentato come un istogramma:

//@version=5
indicator("MACD")
[macd, signal, hist] = ta.macd(close, 12, 26, 9)

// Histogram
float  maxHist  = ta.highest(hist, 100)
float  minHist  = ta.lowest(hist,  100)
bool   histBull = hist > 0
color  topHistColor = histBull ? color.new(color.green, 90) : color.red
color  botHistColor = histBull ? color.green : color.new(color.red, 90)
float  topHistValue = histBull ? maxHist : 0
float  botHistValue = histBull ? 0 : minHist
histPlot   = plot(hist, "Histogram", color(na))
centerPlot = plot(0,    "Middle",    color(na))
fill(histPlot, centerPlot, topHistValue, botHistValue, topHistColor, botHistColor)

// Averages
float  maxLine  = ta.highest(math.max(macd, signal), 100)
float  minLine  = ta.lowest(math.min(macd, signal), 100)
bool   lineBull = macd > signal
color  topLineColor = lineBull ? color.new(color.lime, 90) : color.fuchsia
color  botLineColor = lineBull ? color.lime : color.new(color.fuchsia, 90)
float  topLineValue = lineBull ? maxLine : maxLine
float  botLineValue = lineBull ? minLine : minLine
macdPlot   = plot(macd,   "MACD",   color.gray,   1)
signalPlot = plot(signal, "Signal", color.silver, 1)
fill(macdPlot, signalPlot, topLineValue, botLineValue, topLineColor, botLineColor)

Nel prossimo esempio, creiamo una Pine-foresta utilizzando un gradiente per lo sfondo e un altro per la linea basata su RSI:

//@version=5
indicator("Gradient Fill: Night in the Pine forest")

// Sky
skyTopColor = input.color(color.rgb(144, 191, 249, 1))
skyBotColor = input.color(color.rgb(251, 192, 45, 1))
skyPlot     = plot(100, color = skyTopColor)
groundPlot  = plot(0, color = color.black)
fill(skyPlot, groundPlot, 100, 0, skyTopColor, skyBotColor)

// Trees
crownsVal = ta.rsi(close, 20)
treesPlot = plot(crownsVal, color = color.rgb(6, 126, 116))
fill(treesPlot, groundPlot, crownsVal, 0, color.rgb(6, 126, 116), color.black)

Di seguito sono riportati alcuni esempi pubblicati da diversi PineCoders all’interno della nostra sezione dedicata agli script:

Delta Volume Channels – indicatore di LucF

RSI – colour fill – indicatore di Fikira

Webby’s RSI  – indicatore di JohnMuchow

Per rimanere informati sulle nuove funzionalità di Pine Script™, tenete d’occhio le note di rilascio nel Manuale Utente. L’account PineCoders trasmette anche aggiornamenti dalla sua Squawk Box su Telegram, dal suo account Twitter e dalla chat pubblica Pine Script™ Q&A su TradingView.

Ci auguriamo che questa funzione, molto richiesta, vi sia utile. Continuate a inviarci il vostro feedback e i vostri suggerimenti per migliorare. Costruiamo TradingView per voi e siamo sempre desiderosi di ascoltarvi.

Look first Then leap

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