Dokumentation
Anwendungen
Zuletzt aktualisiert am 17. 6. 2020 von Mark Fric
Protokollierung und DebugConsole
Inhalt der Seite
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 (AktuellerBalken == 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(mean < 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:
Wenn Sie es öffnen, nachdem Sie einen Test einer Strategie mit CCI-Indikator ausgeführt haben, sehen Sie, dass die Meldungen protokolliert wurden:
War dieser Artikel hilfreich? Der Artikel war nützlich Der Artikel war nicht nützlich

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.
Ist diese Methode nun gescheitert? Weil sie nicht verwendet werden kann
Fehlersuche(Kategorie, Nachricht) und fdebug(Kategorie, Nachricht) direkt im Code-Editor.
seltsamer Titel : Protokollierung und DebugColsole
Hallo,
Ich versuche, etwas Ähnliches zu tun: Logging Spread. Allerdings gibt meine .mp5-Datei einen Fehler beim Kompilieren. Weiß jemand, was ist das Problem mit dem Code?
Vielen Dank!
Pseudocode ("Spread" als Doppelvariable):
//——————————————————————–
// Handelsregel: Variable zuweisen (bei Bar Open)
//——————————————————————–
wenn Ist die Bar geöffnet
{
// Aktion #1
Verbreitung = Spread in Pips("Aktuell");
}
//——————————————————————–
// Handelsregel: Aufzeichnung (bei geöffneter Bar)
//——————————————————————–
wenn Ist die Bar geöffnet
{
// Aktion #1
In Datei protokollieren: "NQ_spread.txt", “”Die derzeitige Spanne beträgt, "+Spread";}
Dies ist die Nachricht, die ich in das LogToFile-Nachrichtenfeld geschrieben habe:
"aktuelle Spanne ist "+Spanne