Dokumentation

Anwendungen

Zuletzt aktualisiert am 12. 10. 2021 von Mark Fric

Arbeiten mit ResultsGroup

ErgebnisGruppe ist das Objekt, das SQX zum Speichern verwendet:

  • Strategie-Code/XML
  • Backtest-Ergebnisse
  • andere Ergebnisse von Optimierungen und Gegenproben
  • Einstellungen, die in den letzten Backtests verwendet wurden
  • andere nützliche benutzerdefinierte Werte in seinem Schlüsselwertspeicher

Jede Strategie, die Sie in der Datenbank sehen, ist in Wirklichkeit eine ErgebnisGruppe Objekt, das die Strategie und die Ergebnisse enthält, die dann in den Spalten der Datenbank oder in der Liste der Abschlüsse, im Aktienchart usw. angezeigt werden.

 

Individuelle Ergebnisse aus der Gruppe gewinnen

Es können mehrere Backtests oder Optimierungen für eine Strategie durchgeführt werden - Sie können einen Haupt-Backtest + Backtests auf zusätzlichen Märkten oder zusätzliche WF-Optimierungen durchführen.

Die Ergebnisse dieser separaten Backtests werden als separate Ergebnis Objekte in der ResultsGroup, so dass das ResultsGroup-Objekt in Wirklichkeit eine Gruppe von Result-Objekten plus einige andere Dinge ist.

 

Auf die einzelnen Ergebnisse in der ResultsGroup kann durch den Aufruf von subResult(resultKey) Methode, wobei resultKey der Name (Schlüssel) des Teilergebnisses ist, das Sie erhalten möchten.

Sie können eine Liste aller Ergebnisschlüssel erhalten, indem Sie getResultKeys()die ein Array mit allen Schlüsseln zurückgibt, die die ResultGroup enthält.

Sie können auch eine spezielle Methode verwenden getMainResultKey() um den Schlüssel des wichtigsten Backtest-Ergebnisses zu erhalten.

Ergebnis mainResult = resultsGroup.subResult( resultsGroup.getMainResultKey() ) // gibt das Hauptergebnis des Backtests zurück.

 

Der Name des ResultsGroup-Objekts ist der Name der Strategie, den Sie in der Datenbank sehen, so dass der Aufruf von resultsGroup.getName() gibt zum Beispiel "Strategie 1.2.3" zurück

 

Portfolio

Es gibt auch ein spezielles Portfolioergebnis, das automatisch hinzugefügt wird, wenn ResultsGroup mehr als ein Ergebnis enthält. Sie können das Portfolioergebnis erhalten, indem Sie einfach ResultsGroup aufrufen.Portfolio()

Ergebnis portfolioResult = resultsGroup.Portfolio().

Wenn es nur ein Ergebnis gibt, wird dieser Aufruf das Hauptergebnis des Backtests zurückgeben.

 

Abrufen von Metriken aus einem Ergebnis

Wenn Sie ein Ergebnis haben, können Sie leicht die Metriken wie Nettogewinn, SharpeRatio usw. abrufen, die für dieses Ergebnis berechnet wurden.

Alle berechneten Metriken werden gespeichert in SQStats Objekt, das Sie durch den Aufruf von Result erhalten können.Statistiken(Richtung, PLTyp, SampelTyp). Beachten Sie, dass die Methode stats() drei Parameter hat - die Statistiken werden separat berechnet für:

 

SQStats statsIS = result.stats(Directions.Both, PlTypes.Money, SampleTypes.InSample);

SQStats statsOOS = result.stats(Richtungen.Beide, PlTypes.Geld, SampleTypes.OutOfSample);

SQStats statsLong = result.stats(Richtungen.Long, PlTypes.Money, SampleTypes.FullSample);

 

Die SQStats Objekt ist eine einfache Key-Value-Map, die die berechneten Metriken für die angegebene Statistikkombination enthält. Die Metriken werden unter den Schlüsseln gespeichert, die den Klassennamen der Java-Snippets entsprechen, z. B. "NetProfit", "Drawdown", usw.

Sobald Sie das SQStats-Objekt haben, können Sie den Wert der Metrik durch einfachen Aufruf abrufen:

double netProfit = stats.getDouble("NetProfit");

int noOfTradest = stats.getInt("NumberOfTrades");

 

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

Abonnieren
Benachrichtigen Sie mich bei
5 Kommentare
Älteste
Neuestes Meistgewählt
Inline-Rückmeldungen
Alle Kommentare anzeigen
Oliver
17. 11. 2021 8:29 Uhr

Hallo, bevor ich dies im Detail studiere..... erlaubt mir dies, bestimmte Walk-Forward-Läufe auszuwählen, um ein optimiertes Portfolio zu erstellen? Ich hatte unten eine Anfrage gepostet, damit die Trades aus einem bestimmten Lauf im Quant Analyzer verwendet werden können. Funktioniert dies auch? Danke

https://roadmap.strategyquant.com/tasks/sq4_8403

Emmanuel
25. 11. 2021 8:43 Uhr

Das ist sehr hilfreich, ich werde es testen. Danke, Mark

Emmanuel
26. 11. 2021 1:18 Uhr

Wo kann ich Beispiele für Ergebnisobjekte finden? 
, subResult(resultKey) Methode ?, 
getResultKeys(), getMainResultKey()
SQStats statsIS = result.stats(Directions.Both, PLTypes.Money, SampleTypes.InSample);

Ich suche im Code-Editor mit getResultKey und anderen Schlüsselwörtern, aber ich habe kein Beispiel gefunden.

tomas262
Verwaltung
Antwort an  Emmanuel
1. 12. 2021 7:51 Uhr
Emmanuel
Antwort an  tomas262
4. 1. 2022 13:52 Uhr

Dankeschön