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.