Noch mehr Pine-Funktionen unterstützen jetzt dynamische Längen-Argumente

Feb 4, 2021

Im September haben einige unserer eingebauten Pine-Funktionen begonnen, dynamische Werte als Längenargumente zu unterstützen. Und jetzt haben wir diese Liste noch weiter ausgebaut. Die folgenden Funktionen können nun auch mit dynamisch berechneten Längen verwendet werden:

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

Die Übergabe von Serien als Längen-Argument erleichtert das Erstellen von adaptiven Pine-Indikatoren, die Berechnungen auf der Basis von variablen Zeiträumen verwenden. Das folgende Skript verwendet z. B. die eingebaute Funktion stdev(), um die Standard-Abweichungs-Bänder für den VWAP-Indikator zu berechnen. Die Länge der stdev()-Berechnung erhöht sich mit jedem Balken um 1, bis die VWAP-Periode zurückgesetzt wird:

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

Beachten Sie, dass diese Funktionen bei jedem Balken ausgewertet werden müssen. Sie sollten daher außerhalb von`for`-Schleifen oder`if`-Blöcken verwendet werden, die nicht bei jedem Balken ausgeführt werden. Außerdem kann die Übergabe einer Serie als Länge für eine eingebaute Funktion manchmal den Fehler „Pine kann die referenzierende Länge einer Serie nicht bestimmen“ verursachen. Mehr darüber und wie Sie den Fehler umgehen können, erfahren Sie in unserem Hilfe-Center.

Lesen Sie alle Updates für Pine in den Versionshinweisen unseres User Manuals.

Wir hoffen, dass diese von Ihnen gewünschte neue Funktion nützlich ist. Bitte schicken Sie uns weiterhin Ihr Feedback und Ihre Vorschläge. Wir bauen TradingView für Sie auf und sind gespannt, was Sie über unsere Plattform-Updates denken.

Look first Then leap

TradingView wurde für Sie entwickelt. Stellen Sie sicher, dass Sie unsere fantastischen Features optimal nutzen
Chart öffnen