Dokumentation

Anwendungen

Zuletzt aktualisiert am 17. 6. 2020 von Mark Fric

Protokollierung und DebugColsole

Die DebugConsole in StrategyQuant X soll das Debuggen/Protokollieren erleichtern, wenn Sie Ihre eigenen Snippets im SQ CodeEditor entwickeln.

Es ist einfach zu bedienen und ermöglicht es Ihnen zu sehen, was "hinter den Kulissen" vor sich geht, wenn Ihr Snippet ausgeführt wird.

 

Wie man sie im Code verwendet

Es sind zwei Methoden verfügbar:

Fehlersuche(Kategorie, Nachricht)
protokolliert die Nachricht auf einer Debug-Konsole (mehr dazu später)

und

fdebug(Kategorie, Nachricht)
protokolliert die Meldung in einer Standard-Protokolldatei unter /user/log/StrategyQuant

Beide Methoden haben die gleichen zwei Parameter:

  • Kategorie (string)- Name der Protokollierungskategorie - wenn Sie mehrere Debug-Meldungen haben, können Sie diese kategorisieren, um die Meldungen nach Kategorien zu ordnen
  • Nachricht (string) - eine zu protokollierende Textnachricht

Hinweis - die Funktionen debug() und fdebug() sollten in allen Snippet-Klassen ab Build 128 verfügbar sein. In Build 128 fehlen diese Methoden in Indikator-Klassen, so dass Sie alternative Aufrufe verwenden können:
debug() -> DebugConsole.log()
log() -> Log.info()

 

Beispiel für die Verwendung

Wir werden einem CCI-Indikator eine Protokollierung hinzufügen, und zwar zu seinem OnBarUpdate() Methode, bei der die Indikatorwerte berechnet werden:

@Override
protected void OnBarUpdate() throws TradingException {
    averageCalculator.onBarUpdate(Input.get(0), CurrentBar);
    
    if (CurrentBar == 0) {
        Value.set(0, 0);
    }
    sonst {
        double mean = 0;
        double sma = averageCalculator.getValue();
        
        for (int idx = Math.min(CurrentBar, Period - 1); idx >= 0; idx--) {
            mean += Math.abs(Input.get(idx) - sma);
        }
        
        if(Mittelwert < 0,0000000001) {
            Wert.set(0, 0);
        } else {
            double cci = (Input.get(0) - sma) / (mean == 0 ? 1 : (0,015 * (mean / Math.min(Period, CurrentBar + 1))));
            Value.set(0, cci);

            debug("CCI", "CCI-Wert ist: "+cci);
        }
    }
}

 

Beachten Sie, dass wir nur eine Zeile hinzugefügt haben:

debug("CCI", "Der CCI-Wert ist: "+cci);

Wir haben debug() Methode, so dass die protokollierten Meldungen zu einer speziellen Debug-Konsole hinzugefügt wurden, die oben rechts unter dem Debug-Symbol zu finden ist:

DebugConsole-Symbol

Wenn Sie es öffnen, nachdem Sie einen Test einer Strategie mit CCI-Indikator ausgeführt haben, sehen Sie, dass die Meldungen protokolliert wurden:

DebugConsole angezeigt

 

 

War dieser Artikel hilfreich? Der Artikel war nützlich Der Artikel war nicht nützlich

Abonnieren
Benachrichtigen Sie mich bei
3 Kommentare
Älteste
Neuestes Meistgewählt
Inline-Rückmeldungen
Alle Kommentare anzeigen
Emmanuel
24. 11. 2021 9:54 Uhr

wenn ich den Befehl fdebugfunktioniert, kann ich die Ausgabe im Protokoll sehen, aber wenn ich Fehlersuche in der Debug-Konsole erscheint nichts

Ich kann keine andere Kategorie als "alle" auswählen.

SteveChou
14. 3. 2023 6:45 Uhr

Ist diese Methode nun gescheitert? Weil sie nicht verwendet werden kann
Fehlersuche(Kategorie, Nachricht) und fdebug(Kategorie, Nachricht) direkt im Code-Editor.

Emmanuel
21. 4. 2023 11:50 Uhr

seltsamer Titel : Protokollierung und DebugColsole