Ich erhalte den Fehler: 'Pine kann die Bezugslänge einer Serie nicht bestimmen. Versuchen Sie es mit max_bars_back'.

Wenn ein Pine-Skript berechnet wird, erstellt es einen historischen Puffer einer bestimmten Größe für jede Variable oder Funktion im Code. Dieser Puffer enthält Informationen über frühere Werte der Variablen/Funktion und wird verwendet, wenn der Code mit Hilfe des historischen [] Referenzierungsoperators auf die vergangenen Werte verweist. Die Größe des Puffers gibt an, wie weit in der Vergangenheit dieser Wert angefordert werden kann.

Pine bestimmt automatisch die erforderliche Puffergröße für alle Variablen und Funktionen, indem frühere Referenzen analysiert werden, die während der Berechnung des Skripts auf den ersten 244 Balken gemacht wurden. Wenn keine früheren Referenzen erkannt werden, wird der Variable oder Funktion eine Standardpuffergröße zugewiesen. Für Variablen beträgt die Standardpuffergröße 300 Balken, für Funktionen einen Balken.

Ein Problem tritt häufig in Verzweigungen bedingter Anweisungen auf (if, iff or ?), wenn frühere Verweise auf eine Variable oder Funktion innerhalb der bedingten Anweisung erst ausgeführt werden, wenn der 244. Balken bereits überschritten ist. In solchen Fällen ist Pine nicht in der Lage, eine geeignete Puffergröße für diese Funktion zuzuweisen, und es wird die Standardpuffergröße verwendet. Werfen Sie einen Blick auf den folgenden Code. Er gibt den oben erwähnten Fehler zurück weil:

  • die var1 Variable ist zur Zeit der Kompilierung nicht bekannt
  • Die test Variable fragt keine Daten der ersten 244 Balken aus dem Chart an

Aus diesem Grund wird der Variablen test ein Standardpuffer von 300 Balken zugewiesen. Wenn das Skript den Wert des 301. Balkens in der Vergangenheit anfordert, der sich außerhalb des Puffers der Variable befindet, tritt ein Fehler auf.

//@version=4
study("max_bars_back var",overlay=true)
var1 = input(301)
test = 0.0
//max_bars_back(test, 301)
if bar_index > 244
    test := test[var1]
plot(test)

Um dies zu umgehen, gibt es den Parameter max_bars_back und die Funktion max_bars_back(). Sie ermöglichen es Ihnen, die korrekte Puffergröße für Variablen und Funktionen anzugeben, wenn der Standardpuffer nicht ausreicht. Fügen Sie den max_bars_back()-Function Call im obigen Code ein. Der Testvariablen wird ein Puffer von 301 zugewiesen, und als Ergebnis wird das Skript korrekt berechnet.

Hier ist ein Beispiel für einen Function Call, dem die Standard-Puffergröße von einem Balken zugewiesen wird, weil er nicht in den ersten 244 Balken aufgerufen wird. Obwohl kein expliziter Verweis auf vergangene Werte mit dem Operator [] verwendet wird, benötigt die Funktion dennoch die vergangenen 20 Werte zur Berechnung. Das Skript gibt daher den Fehler max_bars_back zurück:

//@version=4
study("Requires max_bars_back")
test = 0.0
if bar_index > 1000
    test := vwma(close, 20)
plot(test)

Die Funktion max_bars_back() kann nicht verwendet werden, um einer Funktion eine bestimmte Puffergröße zuzuweisen. Wenn Sie dies tun müssen oder wenn Sie die Standardpuffergröße für alle Variablen und Funktionen in einem Skript festlegen wollen, fügen Sie den Parameter max_bars_back der Studien- oder Strategiedeklarationsanweisung des Skripts hinzu. Beachten Sie, dass die Verwendung des Parameters den Ressourcenverbrauch des Skripts erhöht, weshalb diese Methode nur bei Bedarf verwendet werden sollte:

//@version=4
study("Requires max_bars_back", max_bars_back=20)
test = 0.0
if bar_index > 1000
    test := vwma(close, 20)
plot(test)

Sie können das Problem auch lösen, indem Sie den problematischen Ausdruck aus dem bedingten Zweig herausnehmen; in diesem Fall ist der Parameter max_bars_back nicht erforderlich:

//@version=4
study("Requires max_bars_back")
test = 0.0
vwma20 = vwma(close, 20)
if bar_index > 1000
    test := vwma20
plot(test)

In unserer Bedienungsanleitung können Sie mehr über max_bars_back und den damit verbundenen Fehler erfahren.

Startseite Aktien-Screener Forex-Screener Krypto-Screener Wirtschaftskalender So funktioniert es! Chartmerkmale Preise Einen Freund empfehlen Hausregeln Hilfe Center Webseite & Brokerlösungen Widgets Charting Lösungen Lightweight Charting Library Blog & News Twitter
Profil Profileinstellungen Konto und Abrechnung Angeworbene Freunde Coins Meine Support Tickets Hilfe Center Veröffentlichte Ideen Followers Ich folge Private Nachrichten Chat Abmelden