Pine Script™ kan nu utföra vertikala gradienter!

Oct 5, 2022

Följande nya tilläggsfunktioner för funktionen fill() kan skapa vertikala gradienter:

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

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

Alla parametrar i de nya tilläggsfunktionerna accepterar serieargument. De skapar en vertikal gradient mellan ’top_color’ och ’ bottom_color’ i utrymmet mellan ’ top_value’ och ’ bottom_value’. De punkter eller h-linjer vars ID används i de två första argumenten fungerar som en maskering över gradienten och bestämmer vilken del av gradienten som är synlig.

Här ser du hur vi här ger den gamla MACD ett nytt utseende med två vertikala gradienter, en för att fylla utrymmet mellan de två glidande medelvärdena och en annan för det som vanligtvis representeras som ett histogram:

//@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)

I nästa exempel skapar vi en Pine-skog med en gradient för bakgrunden och en annan för den RSI-baserade trädlinjen: 

//@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)

Nedan följer ytterligare några exempel som publicerats av några av våra PineCoders i Community Skript:

Delta volymkanaler indikator av LucF

RSI-färgfyllning indikator av Fikira

Webbys RSI indikator av JohnMuchow

Håll ett öga på användarhandbokens versionsnotiser och håll dig informerad om de nya funktionerna i Pine Script™. PineCoders-kontot sänder också uppdateringar från sin Squawk Box på Telegram, dess Twitter-konto och från den offentliga chatten Pine Script™ Q&A på TradingView.

Vi hoppas att funktionen som alla efterfrågat är användbar för dig. Fortsätt att skicka oss din feedback och dina förslag på förbättringar. Vi bygger TradingView för dig och vi vill alltid höra från dig.

Look first Then leap

TradingView är byggt för dig, så se till att du får ut det mesta av våra fantastiska funktioner
Community och verktyg