Dokumentation

Anwendungen

Zuletzt aktualisiert am 26. 2. 2019 von Kornel Mazur

Gegenproben - automatisierte Robustheitstests für Strategien

Die größte Gefahr von Strategien, die mit Hilfe eines maschinellen Lernprozesses erstellt werden, ist die Überanpassung (oder Kurvenanpassung) der Strategie an die historischen Daten, auf denen sie aufgebaut wurde.

Während oder nach der Entwicklung einer neuen Strategie sollten Sie sicherstellen, dass Ihre Strategie robust ist - was die Wahrscheinlichkeit erhöhen sollte, dass sie auch in Zukunft funktioniert.

 

Was ist Robustheit?

Sie ist einfach die Eigenschaft einer Strategie, mit sich ändernden Bedingungen zurechtzukommen:

  • Zunächst einmal sollte die Strategie auf unbekannten Daten funktionieren (wenn sich die Marktcharakteristika nicht geändert haben), entweder mit oder ohne periodische Neuoptimierung der Parameter
  • Er sollte nicht auseinanderbrechen, wenn einige Abschlüsse verpasst werden.
  • Eine robuste Strategie sollte nicht zu empfindlich auf die Eingangsparameter reagieren - sie sollte auch dann funktionieren, wenn Sie die Werte der Eingangsparameter geringfügig ändern, z. B. den Indikatorzeitraum oder eine Konstante, oder wenn die historischen Daten geringfügig geändert werden, d. h. der Spread oder Slippage erhöht wird usw.

Der grundlegendste Test für die Robustheit ist der Test der Strategie an unbekannten Daten (Out of Sample).

Wenn Sie eine genetische Evolution durchführen, wird die Strategie nur auf dem In Sample-Teil der Daten entwickelt. Der "Out of Sample"-Teil ist für die Strategie "unbekannt" und kann daher verwendet werden, um festzustellen, ob die Strategie auch bei einem unbekannten Teil der Daten funktioniert.

 

Vermeidung von überangepassten (kurvenangepassten) Strategien

Der blaue Teil jedes Diagramms sind die "Out of Sample"-Daten (unbekannte Daten). Wir können sehen, dass die Strategie auf der linken Seite auch in diesem Teil gut abschneidet, während die Strategie auf der rechten Seite an den unbekannten Daten scheitert - es ist fast sicher, dass sie an die Kurve angepasst wird.

 

Automatische Gegenproben für Robustheit in SQ X

Cross-Checks sind optionale zusätzliche Methoden, die auf jede Strategie angewendet werden können, nachdem sie erstellt wurde und die ersten Filter bestanden hat.

In diesem Artikel erfahren Sie, wie Sie einfach Verwendung von Cross Checks in Builder und Retester

Cross-Checks können die Robustheit der Strategie unter mehreren Gesichtspunkten überprüfen - durch den Handel auf zusätzlichen Märkten, durch Monte-Carlo-Methoden zur Simulation von 100 verschiedenen Aktienkurven oder sogar durch Walk-Forward-Optimierung oder Matrix.

Das Wichtigste ist, dass Sie Cross-Check-Filter verwenden können, um die Strategie zu verwerfen, wenn sie den Cross-Check-Test nicht besteht. Auf diese Weise können Sie Trichter erstellen, in denen die Strategien mit immer fortschrittlicheren (und zeitaufwändigeren) Methoden geprüft werden, und Strategien, die nicht bestehen, werden automatisch verworfen.

Automatisierte Robustheitstests Trichter in StrategyQuant X

Ein Beispiel für einen Filtertrichter mit Querprüfungen während der Erstellung

Es bleibt Ihnen überlassen, wie viele Gegenkontrollen Sie einsetzen und wie Sie deren Filter konfigurieren.

Die Gegenproben werden je nach Zeitaufwand in drei Gruppen eingeteilt: Basis-, Standard- und umfangreiche Gegenproben.

Sie werden auch von den einfachen zu den komplizierteren Strategien angewandt. Wenn also eine Strategie die Gegenprobe 1 nicht besteht, wird sie verworfen und nicht durch die Gegenprobe 2 geprüft.

 

Beachten Sie, dass die Durchführung der Gegenprobe für eine Strategie viel Zeit in Anspruch nehmen kann!
Einige Cross-Check-Methoden führen komplizierte Simulationen und Hunderte oder sogar Tausende von Backtests der Strategie mit verschiedenen Parametern durch und benötigen Tausende Male mehr Zeit als die ursprüngliche Strategiegenerierung und der ursprüngliche Backtest. So kann eine Strategie ohne Cross-Check (zum Beispiel) in 0,2 Sekunden generiert werden, aber mit einigen angewendeten Cross-Checks kann es leicht 10 - 200 Sekunden für eine Strategie dauern!

 

Cross-Checks können auch in Retester (ohne Filterung) verwendet werden, so dass Sie nicht alle Cross-Checks im Build-Modus verwenden müssen.

Mögliche Verwendung von Cross-Checks

Eine mögliche Anwendung zur Gegenkontrolle könnte die Verwendung sein:

  • Gegenprobe Wiederholungsprüfung mit höherer Genauigkeit
  • Gegenprobe Manipulation von Monte-Carlo-Geschäften
  • Gegenprobe Erneuter Test auf weiteren Märkten
  • Optionale Gegenprobe Monte-Carlo-Wiederholungstest-Methoden

StrategyQuant führt dann die folgenden Schritte für jede generierte Strategie durch:

  1. Die Strategie wird nach dem Zufallsprinzip generiert und mit der schnellsten "Selected timeframe"-Präzision getestet - dies hängt von Ihrer Einstellung ab, ist aber die Standardeinstellung
  2.  Die Strategie wird automatisch gefiltert und verworfen, wenn sie Ihren globalen Filtern nicht entspricht, z.B. wenn sie nicht genügend Trades hat oder wenn der Nettogewinn < $1000 ist.
  3. Gegenprobe Wiederholungsprüfung mit höherer Genauigkeit wird diese Strategie erneut mit Minuten- oder sogar echter Tickpräzision testen, um sicherzustellen, dass die Strategie mit der Basispräzision zuverlässig getestet wurde. Beachten Sie, dass nur Strategien, die Punkt 2. bestehen, hierher gelangen. Wenn die Strategie diesen ersten Cross-Check nicht besteht, wird sie verworfen.
  4. Gegenprobe Manipulation von Monte-Carlo-Geschäften führt eine Reihe von Simulationen verschiedener Equity-Kurven durch, indem es die bestehenden Trades manipuliert - um sicherzustellen, dass die ursprüngliche Equity-Kurve nicht nur durch Zufall erreicht wurde. Sie werden Strategien herausfiltern, die diesen Monte-Carlo-Test nicht bestehen
  5. Gegenprobe Erneuter Test auf weiteren Märkten wird die Strategie auf weiteren Märkten oder Zeitrahmen getestet. Wenn sie auf anderen Märkten nicht profitabel ist, wird sie herausgefiltert.
  6. Fakultative Gegenprobe Monte-Carlo-Wiederholungstest-Methoden führt eine Reihe von Simulationen durch, wobei jede Simulation ein neuer Backtest der Strategie ist, bei dem kleine Variationen in den Parametern des Strategieindikators, der Handelsoptionen wie Spread, Slippage oder in den historischen Daten verwendet werden; beachten Sie, dass jede dieser Simulationen ein unabhängiger Backtest ist.
    Wenn die Strategie auch diese Gegenprüfung besteht, wird sie in der Datenbank gespeichert und Sie können sich darauf verlassen, dass sie robust genug ist.

 

Eine ausführlichere Beschreibung der Gegenproben finden Sie im Abschnitt Gegenproben - Robustheitstests Abschnitt.

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

Abonnieren
Benachrichtigen Sie mich bei
2 Kommentare
Älteste
Neuestes Meistgewählt
Inline-Rückmeldungen
Alle Kommentare anzeigen
James Colton
17. 1. 2023 10:38 Uhr

Ich habe einen Test mit Standardeinstellungen durchgeführt und hatte etwa jede Minute erfolgreiche Ergebnisse. Als ich dann feststellte, dass viele Ergebnisse deutlich über den Mindestakzeptanzkriterien lagen, startete ich den Test erneut mit etwas höheren Mindeststandards, die vielleicht 10% so viele Strategien erfasst haben sollten, wie die vorherigen Testparameter erzeugten. Nach 6 Stunden bestand kein einziges Ergebnis die erste Überprüfung. Braucht der Builder erfolgreiche Beispiele, damit er weiß, wo er suchen muss? Mit anderen Worten: Sollte ich bessere Ergebnisse erwarten, wenn ich meine Standards anfangs niedriger ansetze als das, was ich jemals als Handel in Betracht ziehen würde?

tomas262
Verwaltung
Antwort an  James Colton
19. 1. 2023 7:22 pm

Sie können uns den Workflow zur Analyse schicken, wir prüfen Ihre CFX-Konfigurationsdateien auf mögliche Fehler