Ein Debugging Ihres Pine Script® Code mit den Pine-Protokollen

Aug 29, 2023

Die Fehlerbehebung im Pine Script® ist nun mit unseren neuen log.*() Funktionen noch besser und einfacher geworden. Diese Funktionen zeigen Textnachrichten im neuen Fenster für Pine-Protokolle an, während das Script ausgeführt wird. Die drei neuen Protokollfunktionen sind:

  • log.error(), dies erstellt Nachrichten des Typs „Fehler“, die in Rot angezeigt werden.
  • log.info(), dies erstellt Nachrichten des Typs „Info“, die in Grau angezeigt werden.
  • log.warning(), dies erstellt Nachrichten des Typs „Warnung“, die in Orange angezeigt werden.

Sie können sich die Pine-Protokolle ansehen, indem Sie im „Mehr“ Menü die „Pine-Protokolle…“ auswählen, oder im „Mehr“ Menü eines Scripts, das auf Ihrem Chart geladen ist und die log.*() Funktionen verwendet.

Die Pine-Protokolle funktionieren überall: auf Altbalken, in Echtzeit und im Wiedergabemodus. Die Protokollfunktionen können in jedem Script-Typ abgerufen werden (Indikator, Strategie oder Bibliothek) und auch überall im Script, einschließlich in lokalen Blöcken, Schleifen und innerhalb von request.security() und vergleichbaren Funktionen. Sie können die Protokollfunktionen auf zwei Weisen abrufen: Mit einem String-Argument oder mit einem Format-String und einer Werteliste in der Manier von str.format().

Die Scripts, welche die Protokolle verwenden, müssen persönliche Scripts sein, privat oder öffentlich veröffentlichte Scripts können keine Protokolle erstellen, selbst wenn sie einen Aufruf der log.*() Funktionen enthalten.

Der folgende Code stellt ein Beispiel dar, welches alle drei Protokollfunktionen verwendet:

//@version=5
indicator("Pine Logs")
if barstate.ishistory
    if bar_index % 100 == 0
        log.warning("\nBar index: {0,number,#}", bar_index)
else
    // Realtime bar processing.
    varip lastTime = timenow
    varip updateNo = 0
    if barstate.isnew
        updateNo := 0
        log.error("\nNew bar")
    else
        log.info("\nUpdate no: {0}\nclose: {1}\nSeconds elapsed: {2}", updateNo, close, (timenow - lastTime) / 1000)
        updateNo += 1
    lastTime := timenow
plot(timenow)

Das Beispiel zeigt den Balkenindex auf jedem hundertsten Altbalken mit einer Warnmeldung in Orange an. Bei Echtzeitbalken wird für jeden neuen Balken eine Fehlermeldung in Rot angezeigt, und für jedes Echtzeitupdate wird eine Info-Meldung in Grau erstellt, welche die Updatenummer, den Schließungspreis und die vergangene Zeit seit dem letzten Chartupdate enthält.

Wenn Sie sich die Pine-Protokolle in Aktion ansehen möchten:

  1. Dann speichern Sie den Beispielcode oben in einem persönlichen Script und fügen Sie es dem Chart für einen aktiven Markt hinzu.
  2. Öffnen Sie das Fenster „Pine-Protokolle“ im „Mehr“ Menü des Editors oder im „Mehr“ Menü des Indikators auf dem Chart.

Ein Zeitstempel wird jedem Protokolleintrag vorangestellt. Es ist die Balkenöffnungszeit bei Altbalken, und die aktuelle Zeit für Echtzeitnachrichten. Neuere Nachrichten erscheinen unten im Fenster. Nur die letzten 10.000 Nachrichten werden für Altbalken angezeigt, Echtzeitnachrichten werden diesen angefügt.

Oben im Fenster befinden sich Icons, mit denen Sie die Protokollierung starten/stoppen, ein Startdatum bestimmen, die Protokolle nach dem Nachrichtentyp filtern lassen können, sowie auch eine Suchfunktion für die Protokolle. Das Suchfeld enthält ein Untermenü für Übereinstimmungen, ganze Wörter und Regex.

Wenn Sie den Mauszeiger über einer Protokollnachricht halten, dann wird ein Icon erscheinen, mit dem Sie sich den Quellcode ansehen können, welcher diese Nachricht erstellt hat. Sie können hier auch zu dem entsprechenden Chartbalken springen:

Wenn mehrere Scripts auf Ihrem Chart die Protokolle verwenden, dann enthält jedes einen eigenen Nachrichtensatz. Sie können zwischen den Protokollen für jedes Script wechseln, indem Sie das Dropdown-Menü oben im Fenster der Pine-Protokolle verwenden:

Wenn Sie gerne auf dem Laufenden über die neuen Pine Script® Features bleiben möchten, dann behalten Sie bitte im Benutzerhandbuch die Versionshinweise im Auge. Die PineCoder veröffentlichen die Updates auch in ihrer Squawk Box auf Telegram, Twitter, und in ihrem Pine Script® Q&A Chat bei TradingView.
Wir hoffen, dass sich dieses oft angefragte Feature für Sie als nützlich erweisen wird, und senden Sie uns bitte auch weiterhin Ihr Feedback und Ihre Vorschläge. Auf diese Weise können wir unsere Plattform noch weiter verbessern. Wir entwickeln TradingView für Sie, und wir möchten immer Ihre Meinungen hören.

— Team TradingView

Look first Then leap

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