May 13, 2021

Eksplozja kolorów w Pine Script

Twoje skrypty będą się teraz mienić jaskrawymi kolorami, ponieważ dodaliśmy nowe kolory serii i gradienty z palety RGB.

Do skryptu Pine została dodana nowa funkcja „color.rgb(red, green, blue, transp)”, która umożliwia ustawienie koloru poprzez przekazanie wartości składowych: czerwony, zielony, niebieski i przezroczysty (transp) jako argumenty. Teraz, zamiast definiować całą paletę kolorów używaną w skrypcie, można natychmiast zdefiniować kolor na podstawie przekazanych argumentów. Spójrz na ten mały przykład, aby przekonać się, o ile łatwiejsze stało się stosowanie złożonych przejść kolorów:

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

Wartość składowych koloru jest ustalana w zakresie od 0 (najmniej intensywny) do 255 (najbardziej intensywny). Dla składowej przezroczystości zakres ten wynosi od 0 (całkowicie nieprzezroczyste) do 100 (całkowicie przezroczyste).

Jeśli potrzebujesz uzyskać wartość liczbową określonego koloru lub składnika przezroczystości, spróbuj użyć funkcji specjalnych „color.r()”, „color.g()”, „color.b()” oraz „color.t()”, przekazując im kolor jako argument. 

Funkcja „color.from_gradient()” pozwala na tworzenie imponujących przejść kolorystycznych na każdym słupku. Kolory skryptów są teraz ograniczone tylko przez Twoją wyobraźnię. Oto przykład, który pokazuje, o ile łatwiejsze stało się opisanie koloru w zależności od wartości wskaźnika 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")

Przeczytaj o wszystkich aktualizacjach języka Pine w Informacjach o Wersji.

Niektóre wbudowane wskaźniki (Momentum, TRIX, Price Oscillator, Detrended Price Oscillator, Chaikin Oscillator, Volume Oscillator, Ease of Movement, Rate of Change) zostały zaktualizowane i używają teraz tych nowych funkcji. Możesz dodać je do swojego wykresu, aby zobaczyć funkcjonalność RGB w praktyce.

Oto kilka imponujących przykładów wskaźników z kolorami RGB od twórców społeczności:

Directional Value od RicardoSantos

Color Gradient Framework od LucF, dla PineCoders

Delta Volume Columns Pro od LucF

Mamy nadzieję, że nowe funkcje okażą się dla Ciebie przydatne. Jak zwykle czekamy na Twoje opinie i sugestie dotyczące kolejnych usprawnień. Tworzymy TradingView dla Ciebie i cieszymy się, gdy do nas piszesz.

Look first / Then leap

Otwórz wykres