Pine Script™ e gráficos se comunicam melhor

Jul 12, 2022

Novos built-ins no espaço de nomes dos gráficos agora fornecem scripts com mais visibilidade sobre as propriedades dos gráficos. Com eles, introduzimos também um novo tipo de comportamento para seus scripts Pine, que lhes permite recalcular e redesenhar somente em barras visíveis, reajustando automaticamente quando os traders rolarem ou fizerem zoom em seus gráficos.

PROPRIEDADES DO GRÁFICO

O novo chart.bg_color incorporado retorna a cor do fundo do gráfico. Você pode usá-lo para adaptar o esquema de cores de seu script ao contexto do gráfico. Seu chart.fg_color retorna uma cor que proporcionará um contraste ideal com a cor de fundo do gráfico, seja ela qual for.

Outro conjunto de novos built-ins booleanos torna possível detectar o tipo de gráfico em que seu script está rodando. São eles:

O último retornará true em todos os tipos de gráficos padrão (os que retornam um preço de fechamento não sintético): barras, velas, velas vazias, colunas, linha, área ou linha de base.

BARRAS VISÍVEIS E RECÁLCULO DINÂMICO

O novo chart.left_visible_bar_time e chart.right_visible_bar_time built-ins retornam o tempo de abertura das barras mais à esquerda e mais à direita visíveis do gráfico. Como um trader rola ou faz zoom em seu gráfico – fazendo com que a faixa de barras visíveis no gráfico mude – os scripts usando qualquer um destes novos built-ins irão ser automaticamente reexecutados para que cálculos e visualizações possam se adaptar ao novo contexto. Isto abre a porta para toda uma nova variedade de scripts que se ajustam dinamicamente às mudanças no alcance das barras visíveis.

Este exemplo desenha uma seta desde a abertura da primeira barra visível até o fechamento da última, e mostra o lucro/prejuízo para aquele intervalo:

//@version=5
indicator("Chart gain/loss", "", true)

// Save the `open` of the leftmost visible bar.
var float chartOpen = na
if time == chart.left_visible_bar_time
    chartOpen := open
else if time == chart.right_visible_bar_time
    // Run the following code on the chart's rightmost visible bar.
    color arrowColor = close > chartOpen ? color.lime : color.fuchsia
    // Draw arrow once, then modify it.
    var line arrow = line.new(na, na, na, na, xloc.bar_time, extend.none, na, line.style_arrow_right, 3)
    line.set_xy1(arrow, chart.left_visible_bar_time, chartOpen)
    line.set_xy2(arrow, chart.right_visible_bar_time, close)
    line.set_color(arrow, arrowColor)
    // Draw percentage label once, then modify it.
    var label percentage = label.new(na, na, na, xloc.bar_time, yloc.price, #00000000, label.style_label_down, size = size.huge)
    int midTime = int(math.avg(chart.left_visible_bar_time, chart.right_visible_bar_time))
    label.set_xy(percentage, midTime, math.avg(chartOpen, close))
    label.set_text(percentage, str.tostring((close - chartOpen) / chartOpen * 100, format.percent))
    label.set_textcolor(percentage, arrowColor)

Note que como os scripts que usam este recurso irão ser reexecutados com mais frequência do que os normais, deve-se ter o cuidado de usar um código eficiente e manter os cálculos leves se se quiser preservar a capacidade de resposta usual dos gráficos do TradingView.

Publicamos um indicador Chart VWAP como um exemplo de como este novo recurso pode ser usado. Ele se ancora automaticamente nas barras visíveis:

A conta PineCoders também publicou uma biblioteca VisibleChart para ajudar os programadores do Pine Script™ a aproveitar ao máximo esta nova funcionalidade.

Para se manterem informados sobre os novos recursos do Pine Script™, fiquem de olho nas notas de lançamento do Manual do Usuário. A conta PineCoders também transmite atualizações da sua Squawk Box no Telegrama, da sua conta no Twitter e do chat público “Pine Script™ Q&A” no TradingView.

Esperamos que você considere úteis estes recursos altamente requisitados. Por favor, continue nos enviando seus comentários e sugestões para melhorias. Construímos o TradingView para você, e estamos sempre interessados em ouvir sua opinião.

Look first Then leap

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