Was gibts neues in Pine?

Apr 9, 2021

Nicht alle Pine-Updates rechtfertigen einen separaten Blog-Beitrag, aber man weiß nie, wann eine neue Funktion für die Codierung Ihrer Skripte nützlich sein könnte. In diesem Beitrag werden die jüngsten Verbesserungen vorgestellt, die vielleicht unter Ihrem Radar durchgerutscht sind.

Das varip-keyword ist nützlich, wenn Sie einige Daten und deren Änderungen innerhalb des Echtzeit-Balkens verfolgen wollen. Alle regulären Pine-Variablen unterliegen einem so genannten Rollback, bei dem bei jedem neuen Datentick der Zustand der Variable auf den Wert des vorherigen Balkens zurückgesetzt wird, bevor die neuen Daten ausgewertet werden. Das varip-keyword umgeht dies und ermöglicht es Ihnen, den aktuellen Wert einer Variablen mit dem Wert des vorherigen Ticks (im Gegensatz zum vorherigen Balken) zu vergleichen, was eine ganz neue Welt der Möglichkeiten eröffnet. Werfen Sie einen Blick auf einen Tick-Chart, der von einem unserer Pine Wizards LonesomeTheBlue erstellt wurde:

https://www.tradingview.com/script/ygNO2G1V-Tick-Chart/

Um mehr zu erfahren, lesen Sie das ausführliche Tutorial zu varip von PineCoders

https://www.tradingview.com/script/ppQxBISk-Using-varip-variables-PineCoders/

Für diejenigen unter Ihnen, die sich mehr Mathematik in Pine gewünscht haben, gibt es jetzt eine ganze Reihe neuer mathematikbezogener Funktionen und Konstanten:

  • Neue Konstanten math.pi, math.phi, math.rphi and math.e
  • Neue round() Funktionalität – die Funktion erlaubt nun die Angabe der Genauigkeit der Rundung, anstatt immer auf die nächste Ganzzahl zu runden
  • median()
  • mode()
  • range()
  • todegrees()
  • toradians()
  • random()

Hier ist eine Strategie für diejenigen unter Ihnen, die gerne gefährlich leben: Alle Ein- und Ausstiege werden auf der Grundlage der Prozentsätze, die im Abschnitt Eingaben angegeben sind, randomisiert, alles dank der random()-Funktion: 

//@version=4
strategy("I’m feeling lucky", overlay=true)
seed = input(1, "Seed, increase to recalculate the strategy", minval=1)
entryPerc = input(20.0, "Entry chance, %", minval=0.0, maxval=100.0)
exitPerc = input(10.0, "Exit chance, %", minval=0.0, maxval=100.0) 
roll = random(0, 100, seed)
positionSize = floor(random(1, (strategy.equity / close), seed))
if roll < entryPerc
    strategy.entry("My Long Entry Id", strategy.long, qty=positionSize)
if roll < exitPerc
    strategy.close_all()

In einer weiteren Entwicklung wurde der Zuweisungsoperator := mit den arithmetischen Operatoren zu den neuen Zuweisungsoperatoren +=, -=, *=, /= und %= verschmolzen. Diese ermöglichen es Ihnen, Ihre Skripte aufzuräumen und zu verkürzen: Anstatt a := a + 1 zu verwenden, können Sie einfach a += 1 schreiben. Eine kleine, aber sehr praktische Verbesserung.

Wenn Sie schon einmal eine Zeichenkette in eine Zahl umwandeln mussten, können Sie das mit der neuen Funktion tonumber() tun. Im untenstehenden Skript beispielsweise ermöglicht tonumber() in Verbindung mit anderen String-bezogenen Funktionen wie str.split() und str.replace_all(), dass ein einziges String-Eingabefeld mehrere Integer-Werte zurückgibt, die dann als Längen für die SMA-Berechnungen verwendet werden. Es gibt keinen zwingenden Grund, es auf diese Weise zu machen, statt auf die korrekte und bequeme Weise „eine separate Eingabe für jede der SMAs“… Aber wenn Sie es brauchen, finden Sie es hier:

//@version=4
study("My SMAs", overlay=true)
sma_lengths = input("5, 10, 20, 30, 50", title = "SMA Lengths (separated by comma)")
sma_lengths_array = str.split(str.replace_all(sma_lengths, " ", ""), ",")
sma_len(index) =>
    index > array.size(sma_lengths_array) - 1 ? 10 :
     int(tonumber(array.get(sma_lengths_array, index)))
sma0 = sma(close, sma_len(0))
sma1 = sma(close, sma_len(1))
sma2 = sma(close, sma_len(2))
sma3 = sma(close, sma_len(3))
sma4 = sma(close, sma_len(4))
plot(sma0, color=color.blue)
plot(sma1, color=color.red)
plot(sma2, color=color.green)
plot(sma3, color=color.orange)
plot(sma4, color=color.purple)

Wir haben eine time_tradingday-Variable hinzugefügt, die den UNIX-Zeitstempel des Beginns des Handelstages zurückgibt. Dies ist praktisch, wenn Sie Symbole analysieren die über Nacht gehandelt werden, wie z.B. EURUSD, wo der Handel am Sonntag beginnt, obwohl der Handelstag eigentlich Montag ist.

Die neue Funktion time_close() ermöglicht es Ihnen, die Schlusszeit eines Balkens aus einem bestimmten Zeitrahmen und einer Sitzung zu erhalten (im Gegensatz zur vorher existierenden time_close-Variable, die nur mit dem Zeitrahmen/Sitzung des Charts funktioniert). Dies ist besonders nützlich für Zeichnungen, da Sie damit Linien und Beschriftungen genauer in die Zukunft zeichnen können. Um es in Aktion zu sehen, schauen Sie sich JayRogers‚ Beitrag über den Pivot-Punkte-Indikator an:

https://www.tradingview.com/script/7EwXUkBE-Pivotal-Multi-Pivot-Selector/

Mit dem neuen Parameter format.percent für study() kann die Ausgabe Ihres Skripts jetzt automatisch als Prozentwert formatiert werden. Sehen Sie es in Aktion mit unserem built-in Aroon-Indikator:

//@version=4 study(title=“Aroon“, shorttitle=“Aroon“, overlay=false, format=format.percent, precision=2, resolution=““) length = input(14, minval=1) upper = 100 * (highestbars(high, length+1) + length)/length lower = 100 * (lowestbars(low, length+1) + length)/length plot(upper, „Aroon Up“, color=#FF6A00) plot(lower, „Aroon Down“, color=#0094FF)

Drei neue Variablen, session.ismarket, session.ispremarket und session.ispostmarket, ermöglichen es Ihnen, den Teil der Intraday-Sitzung zu überprüfen, auf den sich der aktuelle Balken bezieht. Beachten Sie, dass die verlängerten Handelszeiten nur in Intraday-Charts angezeigt werden und auch nur dann, wenn die Option in den Einstellungen explizit aktiviert ist.

Wenn Sie über Pine-Updates informiert werden wollen, sobald sie stattfinden, verfolgen Sie die Release Notes in unserem User Manual. Die PineCoders informieren auch in ihrem Squawk Box Telegram Kanal, auf Twitter und im öffentlichen Pine Script Chat auf TradingView über Updates.

Wir hoffen, dass Sie diese Verbesserungen nützlich finden. Bitte senden Sie uns weiterhin Ihr Feedback. Wir bauen TradingView für unsere User und wir freuen uns, von Ihnen zu hören.

Look first Then leap

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