February 4, 2021
Ainda mais funções do Pine agora suportam argumentos de comprimento dinâmicos

Em setembro, algumas de nossas funções incorporadas no Pine começaram a apoiar valores dinâmicos como comprimento de seus argumentos. E agora expandimos ainda mais esta lista. As seguintes funções agora também podem ser usadas com comprimentos calculados dinamicamente:

bb()
bbw()
cci()
cmo()
cog()
correlation()
dev()
falling()
mfi()
percentile_linear_interpolation()
percentile_nearest_rank()
percentrank()
rising()
roc()
stdev()
stoch()
variance()
wpr()

A aprovação de séries como argumento de comprimento facilita a criação de indicadores adaptativos do Pine que utilizam cálculos baseados em períodos variáveis. Por exemplo, o seguinte script usa a função stdev() embutida para calcular as faixas de Desvio Padrão para o indicador VWAP. O comprimento do cálculo stdev() aumenta em 1 a cada barra até que o período VWAP seja reiniciado:

//@version=4
study(title="VWAP", shorttitle="VWAP", overlay=true)
src = input(title = "Source", type = input.source, defval = hlc3)
t = time("D")
start = na(t[1]) or t > t[1]
sumSrc = src * volume
sumVol = volume
sumSrc := start ? sumSrc : sumSrc + sumSrc[1]
sumVol := start ? sumVol : sumVol + sumVol[1]
vwapValue = sumSrc / sumVol
var barsSinceStart = 0
if start
    barsSinceStart := 0
barsSinceStart := barsSinceStart + 1
stdevLen = bar_index == 0 ? 3000 : barsSinceStart // max_bars_back workaround
vwapStdev = stdev(vwapValue, stdevLen)
plot(vwapValue, title="VWAP", color=color.blue)
upperBand = plot(vwapValue+vwapStdev, title="Upper Band", color=color.green)
lowerBand = plot(vwapValue-vwapStdev, title="Lower Band", color=color.green)
upperBand2 = plot(vwapValue+vwapStdev*2, title="Upper Band 2", color=color.yellow)
lowerBand2 = plot(vwapValue-vwapStdev*2, title="Lower Band 2", color=color.yellow)
fill(upperBand2, lowerBand2, color=color.yellow, transp=95)

Tenha em mente que estas funções requerem avaliação em cada barra, portanto, devem ser utilizadas fora dos blocos de `for` loops or `if`que não são executados em cada barra. Além disso, a passagem de uma série como comprimento para uma função built-in pode, às vezes, causar o erro “O Pine não pode determinar o comprimento de referência de uma série”. Você pode aprender mais sobre isso e como trabalhar em torno do erro em nossa Central de Ajuda.

Leia sobre todas as atualizações do Pine nas Notas de Lançamento do nosso Manual do Usuário.

Esperamos que esta nova funcionalidade que você solicitou seja útil. Por favor, continue a nos enviar seus comentários e sugestões. Estamos construindo o TradingView para você, e estamos animados em ouvir o que você pensa sobre nossas atualizações da plataforma.

The fastest way to follow markets

Launch Chart