February 4, 2021
Nowe funkcje Pine z obsługą argumentów o dynamicznej długości

We wrześniu niektóre z naszych wbudowanych funkcji Pine zaczęły obsługiwać wartości dynamiczne jako argumenty długości. Dziś rozszerzamy tę listę. Następujące funkcje mogą być teraz również używane z dynamicznie obliczanymi długościami:

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

Przekazanie serii jako argumentu długości ułatwia tworzenie wskaźników adaptacyjnych, które będą obliczane na podstawie zmiennych okresów. Na przykład poniższy skrypt używa wbudowanej funkcji stdev() do obliczania wstęg odchylenia standardowego dla wskaźnika VWAP. Długość przekazana do stdev() rośnie o 1 z każdym słupkiem, aż do zresetowania okresu VWAP:

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

Należy pamiętać, że te funkcje wymagają oceny na każdym słupku, więc nie powinny być używane z pętlami `for` lub blokami `if`, które nie są wykonywane na każdym słupku. Ponadto przekazanie serii jako długości do funkcji wbudowanej może czasami powodować błąd `Pine cannot determine the referencing length of a series`. Więcej informacji o tym błędzie i sposobach obejścia go znajdziesz w naszym Centrum Pomocy.

Przeczytaj o wszystkich aktualizacjach programu Pine w sekcji Release Notes naszej Instrukcji obsługi Pine.

Mamy nadzieję, że ta nowa funkcja okaże się dla Ciebie przydatna. Przesyłaj nam swoje opinie i sugestie – tworzymy TradingView dla Ciebie i cieszymy się, że możemy wiedzieć, co myślisz o aktualizacjach naszej platformy.

Najszybszy sposób na śledzenie rynków

Otwórz wykres