Novas oportunidades para trabalhar com Cores em Pine

May 13, 2021

Seus scripts vão cintilar com cores brilhantes agora que adicionamos novas cores e gradientes da paleta RGB.

Uma nova função ‘color.rgb ( red, green, blue, transp)’ foi adicionada ao Pine. Ela permite definir a cor inserindo como argumentos os valores dos componentes de vermelho, verde, azul e transparência (transp). Agora você pode se livrar da definição de toda a paleta de cores usada no script, e em vez disso calcular a cor com base nos argumentos utilizados. Dê uma olhada neste pequeno exemplo, que mostra como se tornou muito mais fácil usar transições de cores complexas:

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

O valor dos componentes de cor é definido na faixa de 0 (menos intenso) a 255 (mais intenso). Para um componente de transparência, esta faixa vai de 0 (totalmente opaco) a 100 (totalmente transparente).

Se você precisar obter o valor numérico de um componente de cor ou transparência específico, tente usar as funções especiais ‘color.r()’, ‘color.g()’, ‘color.b()’ e ‘color.t()’, inserindo uma cor como argumento.

E a função ‘color.from_gradient()’ permite criar transições de cores impressionantes em cada barra, as cores dos scripts são limitadas apenas por sua imaginação agora. Aqui está um exemplo que mostra o quanto ficou mais fácil descrever a cor dependendo do valor do índice de força relativa:

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

Leia sobre todas as atualizações do Pine na seção Notas de Lançamento no Manual do Usuário.

Alguns indicadores embutidos (Momentum, TRIX, Oscilador de Preço, Oscilador de Preço Destendenciado, Oscilador Chaikin, Oscilador de Volume, Facilidade do Movimento, Taxa de Mudança) foram atualizados e agora usam estes novos recursos, você pode adicioná-los ao seu gráfico para ver a funcionalidade RGB em ação.

E aqui estão alguns exemplos impressionantes de indicadores com cores RGB dos desenvolvedores da comunidade:

Valor Direcional por RicardoSantos

Estrutura de Gradiente de Cor pela LucF, para PineCoders

Colunas de Volume Delta Pro por LucF

Esperamos que você considere úteis as novas funcionalidades. E, por favor, continue nos dando feedback e sugestões – estamos construindo o TradingView para você, e estamos sempre interessados em saber o que você pensa sobre nossas atualizações da plataforma.

Look first Then leap

TradingView is built for you, so make sure you're getting the most of our awesome features
Launch Chart