Kantenverhältnis in StrategyQuant X

Eine häufige Frage vieler Trader, die StrategyQuant X verwenden, ist: Wie kann ich die Qualität von Strategieeinstiegssignalen vergleichen? Welches Signal hat einen besseren Vorsprung und eine höhere Erfolgswahrscheinlichkeit?  In diesem Artikel zeige ich Ihnen, wie Sie das neue EDGE Ratio-Tool zur Bewertung der Qualität von Handelssignalen einsetzen können. Die Edge Ratio wurde erstmals in einem sehr guten Buch von Curtis Faith Way of the Turtle öffentlich erwähnt. 

In der neuesten Version von StrategyQuant X - Build 131 haben wir die Möglichkeit hinzugefügt, mit dem ATR(14)-Wert im Moment der Positionseröffnung zu arbeiten. Auf diesen Wert kann über das Feld order.ATROnOpen zugegriffen werden, was eine wichtige Funktion für die Verwendung des EDGE-Ratio-Tools ist.

 

 

Was ist das Edge Ratio?

Das Edge Ratio ist das MFE/MAE-Verhältnis, normalisiert durch die Volatilität des Instruments zum Zeitpunkt der Positionseröffnung.

Erläutern wir nun die einzelnen Komponenten, aus denen das Kantenverhältnis berechnet wird:

Maximale nachteilige Abweichung (MAE) misst den maximalen Verlust, den ein einzelner Handel während seiner Laufzeit erleidet.

Im Gegensatz dazu, Maximale vorteilhafte Auslenkung (MFE) misst den größten Gewinn, der mit einem einzelnen Handel erzielt werden kann, solange er offen ist.

ATR - Durchschnittlicher wahrer Bereich misst die Volatilität des Instruments.

 

Die obige Abbildung verdeutlicht das Verhältnis zwischen MAE / MFE und Gewinn/Verlust.

Die erste Zeile zeigt, dass der Gewinn/Verlust der Position 5,7 betrug, während der größte Drawdown während des Handels bei MAE 32,5 Pips betrug. Der größte beobachtete Gewinn von MFE während eines Handels war 45,6 Pips. Wir können also sehen, dass der endgültige Gewinn der Position zwar moderat war, der MFE aber viel größer, so dass das Potenzial des Handels nicht erfüllt wurde.

Die Analyse dieser Kennzahlen kann Ihnen helfen herauszufinden, ob Ihre Ausstiegsmethoden gut genug sind. Im Falle der MAE kann sie Ihnen helfen zu erkennen, ob Ihre Ausstiegsmethoden gut genug sind. Mehr über diese Kennzahlen können Sie in diesem guten Artikel lesen Link.

 

Kommen wir zurück zur Berechnung des Kantenverhältnisses selbst. Das Kantenverhältnis wird wie folgt berechnet

  1. MAE in Pips und MFE in Pips für jeden Handel aufzeichnen
  2. Teilen Sie jeden dieser Werte durch ATR(14), um die Volatilität zu bereinigen und für zukünftige Intermarket-Analysen zu normalisieren.
  3. Summieren Sie jeden Wert (normalisierte MAE und normalisierte MFE) und teilen Sie ihn durch die Gesamtzahl der Abschlüsse.
  4. Edge Ratio ist die durchschnittliche volatilitätsnormierte MFE geteilt durch die durchschnittliche volatilitätsnormierte MAE

Je höher also die MFE und gleichzeitig niedriger die MAE, desto höher ist das Flankenverhältnis. Dies bedeutet, dass das Signal eine höhere Flanke hat. (Das Gewinnpotenzial des Handels ist höher als das Verlustpotenzial).

 

Wie können wir das Kantenverhältnis in StrategyQuant X nutzen?

Erstens können wir die Edge Ratio als Indikator für die Leistung einer Strategie verwenden. Wir können mit der Hypothese arbeiten, dass Strategien mit einer höheren Edge Ratio widerstandsfähiger gegenüber möglichen Veränderungen im Out-of-Sample/Real Trading sind. Dies ist jedoch eine Hypothese, die durch umfangreiche Validierungsanalysen gestützt werden sollte, idealerweise mit mehreren hunderttausend getesteten Strategien über mehrere Zeiträume.

Im Jahr 2020 untersuchte ich die Stichprobe von 1,2 Millionen zufällig generierten Strategien und versuchte, Merkmale (Sharpe Ratio, Gewinnfaktor usw.) zu ermitteln, deren Werte die tatsächliche Leistung einer Strategie außerhalb der Stichprobe beeinflussen können. Im Wesentlichen habe ich versucht, die Rangfolge (Strategy Filtering Conditions) für die Auswahl von Strategien für den Live-Handel zu ermitteln. Ich verwendete das Pseudo-Edge-Verhältnis in meinen Berechnungen MFE / MAE-Verhältnis und überraschenderweise erwies sich das Pseudo-Edge-Verhältnis als ein guter Prädiktor für die Auswahl hochwertiger Strategien. Diese Forschung ist jedoch noch nicht abgeschlossen, daher werden wir dieses Thema in einem zukünftigen Artikel behandeln.

Die Art der Aufträge wirkt sich auf die Ergebnisse der Edge Ratio aus. Ich verwende in erster Linie Marktaufträge, um die Qualität des Open-Close-Signals zu messen, da Stop/Limit-Aufträge andere Faktoren/Dimensionen beinhalten, die den tatsächlichen Wert des Signals beeinflussen.

 

Andere Fragen

An dieser Stelle sollten weitere wichtige Faktoren berücksichtigt werden. Wir wissen, dass StrategyQuant über einen sehr effizienten genetischen Engine Builder verfügt, der zudem ständig verbessert wird.

Wir müssen jedoch damit rechnen, dass wir mit Milliarden von Kombinationen von Strategiebausteinen arbeiten können. Die Anzahl der Bedingungen und Möglichkeiten wird als Freiheitsgrade bezeichnet. Aus Sicht des maschinellen Lernens und der Datenwissenschaft ist das Risiko einer Überanpassung der Strategie umso größer, je höher die Freiheitsgrade sind, selbst wenn die Strategie MC-Tests und andere Robustheitstests besteht.

Dies ist nicht nur ein Problem für uns Algo-Entwickler, sondern auch für Wissenschaftler, die auf dem Gebiet der evolutionären Algorithmen arbeiten. In jedem Fall kann eine Überanpassung bei der Entwicklung von Strategien zum Versagen der Strategie unter Echtzeitbedingungen und schließlich zum Zusammenbruch ihres Vorteils führen.

Es ist das Kantenverhältnis, das ein wesentlicher Bestandteil der Brücke zwischen rein genetischen Workflow-Entwicklungsstrategien und einer IDEA FIRST Entwicklung sein kann. Eine Schlüsselrolle in diesem Prozess spielt die Benutzerdefinierte Blöcke - SQX-Funktion, die ab Version 127 verfügbar ist und die es uns ermöglicht, unsere eigenen Teile der Strategie zu definieren. Ich glaube, dass die benutzerdefinierten Blöcke eine echte Veränderung darstellen und ein wichtiger Teil des Arbeitsablaufs bei der Strategieerstellung in StrategyQuant sind.

Sie können Regime-Filter definieren, Breakout-Entry-Bedingungen vordefinieren und Ihr Strategiedesign auf sehr anspruchsvolle Weise vorbereiten. Mit einem vernünftigen Strategiedesign und einem moderaten Setup der Genetic Engine ist es meiner Meinung nach möglich, den Overfitting-Faktor bei der Strategieentwicklung unter dem Gesichtspunkt der Komplexität der Strategie und der Komplexität des Setup der Genetic Engine deutlich zu eliminieren.

Es sollte beachtet werden, dass auch während des gesamten ersten Arbeitsablaufs der Idee Es ist äußerst wichtig, die Methode "train/test/validate" der Datenpartitionierung zu beachten.

StrategyQuantX ist so flexibel, dass es mehrere Möglichkeiten gibt, das Edge Ratio zu analysieren. Es gibt komplexe Workflows, bei denen man mit einer externen Strategieanalyse arbeiten muss, Regeln aus xml extrahiert, um sie mit SQX zu synchronisieren, usw. und es gibt einfachere Optionen, die innerhalb des bestehenden SQX-Workflows verwendet werden können. In unserer Analyse werden wir keine externen Tools verwenden, alles was wir brauchen ist in StrategyQuant enthalten.

 

Schrittweiser Ansatz zur Verbesserung

Für diesen Ansatz werden wir benutzerdefinierte Blöcke, Vorlagen und eine inkrementelle Strategieentwicklung mit Hilfe der genetischen Engine von SQX verwenden. In einem ersten Schritt werden wir die Qualität der Signale mit Hilfe der Edge-Ratio-Analyse bewerten und die Signale mit dem höchsten Potenzial auswählen.

Auf der Grundlage dieser Analyse wählen wir dann die Gruppen von Blöcken/Strategien mit dem höchsten Potenzial aus und verwenden sie im genetischen Entwicklungsprozess von StrategyQuantX. Auf diese Weise werden wir die Freiheitsgrade reduzieren und die Möglichkeit ausschließen, dass SQX Strategien findet, die zu empfindlich auf Rauschen reagieren.

 

1. Auswahl eines Korbes geprüfter Bausteine

In diesem Schritt wählen wir den Korb der Bausteine aus, die wir in unserer Analyse testen werden.

Wir können Bausteine auswählen, die bereits in StrategyQuant implementiert sind, oder eigene Bausteine mit Hilfe der Funktionalität von Custom Building Blocks erstellen.

Hier finden Sie einige nützliche Links, unter denen Sie erfahren können, wie Sie Ihren eigenen Baustein erstellen können:

Vergessen Sie eine wichtige Sache nicht. Wenn Sie benutzerdefinierte Blöcke verwenden und gleichzeitig Long- und Short-Signale untersuchen, müssen Sie für jeden benutzerdefinierten Block den entgegengesetzten Block setzen. Auch hier müssen wir diese Funktionalität in SQX vollständig verstehen.

Sie können auch vordefinierte Bausteine verwenden, die in Strategyquant X standardmäßig enthalten sind. Unten in der Abbildung finden Sie ausgewählte Bausteine, die wir in unserer Analyse testen werden.

Auswahl der Bausteine für unsere Analyse

2. Erstellung einer Teststrategievorlage für die Durchführung von Analysen.

Strategievorlagen ermöglichen es uns, fast jede Art von Strategie in StrategyQuant zu erstellen. Bevor wir mit der Erstellung von Strategievorlagen für unsere Analyse fortfahren, lesen Sie bitte die detaillierte Beschreibung der Funktionsweise von Vorlagen in unserer Dokumentation hier.

Für unsere Analyse werden wir eine Vorlage mit der folgenden Struktur erstellen: Strategie wird immer auf dem Markt sein. Es wird ein Long-Geschäft eingehen, wenn ein Long-Signal auftritt. Er wird einen Short-Handel eingehen, wenn ein dem Long-Handel entgegengesetztes Signal auftritt.

In der Abbildung unten sehen Sie, wie wir unsere Ein- und Ausstiegssignale setzen.

In der Abbildung unten sehen wir, dass ich keine Ausstiegsmethoden verwende und wir geben den Enter/Reverse At Market ein.

In der Abbildung unten sehen wir, dass die Ausgangslogik einfach ist.

 

3. Einstellung des Builders in StrategyQuant X

Zunächst ist zu beachten, dass bei Verwendung der Strategievorlage einige Einstellungen außer Kraft gesetzt werden. Mit anderen Worten: Was wir in der Strategievorlage einstellen, hat Vorrang vor dem, was wir im Builder einstellen.

Wir entscheiden uns für die Generierung aus der Vorlage, die wir im zweiten Schritt erstellt haben. Wir ändern die Einstellungen in der zusätzlichen Build-Konfiguration, um unsere Absicht widerzuspiegeln:

  • Wir werden eine Zufallsstrategie entwickeln
  • werden wir maximal eine Bedingung (ein Signal) zur Erzeugung verwenden.

Blöcke/Bedingungen, die wir aus der Liste der Blöcke auswählen, die wir analysieren wollen. Wir können die benutzerdefinierten Blöcke auswählen, die wir im ersten Schritt vorbereitet haben.

Wir haben keine Ein- oder Ausstiegsmethode ausgewählt, weil sie in der Strategievorlage überschrieben werden.

Eine weitere wichtige Sache. Es ist wichtig, eine Mindestanzahl an analysierten Signalen festzulegen - in anderen Worten, die Anzahl der Trades.

Die Analyse von Edge-Ratio-Signalen mit einer geringen Anzahl von Trades ist meiner Meinung nach statistischer Unsinn. Eine zu hohe Anzahl von Signalen führt zu einem niedrigen Gewinnfaktor für die Strategie, und wahrscheinlich wird ein Großteil Ihrer Gewinne durch die Handelskosten aufgefressen. Auf der anderen Seite kann eine geringe Anzahl von Signalen statistisch unbedeutend sein.

Wenn wir die Mindestanzahl der Abschlüsse statistisch korrekt schätzen wollen, muss die Cochran's Formel für den Stichprobenumfang kann uns helfen.

 

4. Erzeugung von Strategien

Nachdem wir alle Einstellungen vorbereitet haben, können wir den Builder in StrategyQuantX ausführen. Wir lassen den Builder einige Stunden lang laufen, um eine große Anzahl von Strategien mit Signalen zu erhalten.

In der Abbildung unten sehen Sie unsere Datenbank nach einigen Stunden. Beachten Sie, dass wir Strategien in der Datenbank haben, die mit einem Verlust endeten - sie haben einen negativen Nettogewinn, aber eine hohe Edge Ratio. Das Ergebnis der Strategie ist uns egal. Uns interessiert, ob das Signal eine positive Edge Ratio hat.

Wir wählen die Strategien aus, deren Signale ein höheres Flankenverhältnis als unseren Schwellenwert aufweisen. Wir wählen Strategien mit einem Flankenverhältnis von mehr als 1,5.

In der Abbildung unten sehen Sie, wie die Zufallsstrategie aussehen wird. Aus dem Pseudocode können Sie ersehen, dass die Strategie eine Regel verwendet, um long zu gehen, und ihr entgegengesetztes Signal, um short zu gehen. Dies ist genau die Art und Weise, wie wir die Qualität der Signale messen wollen. Keine anderen Ausgaben, nur das reine Signal.

 

 

5. Bewertung der Robustheit von Signalen

Es ist eine gute Idee, über eine mögliche tiefere Bewertung der Signale nachzudenken. Wenn wir Strategien mit sehr geringer Komplexität haben (wir haben nur ein Signal ohne andere Variablen), können wir die Robustheit leichter analysieren.

An diesem Punkt empfehle ich, einen Monte-Carlo-Test durchzuführen, um die Parameter zu randomisieren. Auf diese Weise können Sie sich ein Bild davon machen, ob ein bestimmtes Signal nicht ein statistisch überangepasster Zufall ist, oder Sie können eine bestimmte Signalstrategie optimieren, um zu sehen, ob die gegebenen Signalparameter robust sind. Systemparameter-Permutation - SPP zeigt uns, wo die Signalparametereinstellungen innerhalb der Ergebnisverteilung liegen.

 

6. Verwendung von Improver für die Suche nach geeigneten Ein- und Ausstiegsmethoden

Wir haben robuste Strategien (Signale) ausgewählt und wollen darauf Strategien aufbauen. Zu diesem Zweck steht der Strategy Improver zur Verfügung. Jetzt können wir einige Einstellungen in der Additional build config flexibler festlegen. In diesem Fall setzen wir Stop Loss als die gewünschte Option. Außerdem laden wir die Strategien, die wir zuvor in Schritt 4 ausgewählt haben, in die Datenbank "Strategies to Improve".

 

In diesem Schritt legen wir fest, welche Teile wir verbessern wollen. Wir lassen die Signale oder Einstiegsbedingungen so, wie sie sind, und verbessern nur die Einstiegs-/Ausstiegsmethoden.

In Building Blocks legen wir Einstiegsarten und Ausstiegsarten fest. Vergessen Sie nicht, Indikatoren und Stop/Limit-Entry-Blöcke hinzuzufügen. Wenn Sie diese nicht hinzufügen, wird der Improvisator keine Verbesserung feststellen.

Einige Einstellungen in Improver funktionieren auf unterschiedliche Weise. Der Unterschied liegt vor allem in der Strategie-Rangliste. Beim Aufwerten von Strategien legen Sie fest, wie viele aufgewertete Strategien in der Datenbank vorhanden sein sollten, damit der Verbesserer die Aufwertung zur nächsten Strategie überspringt. Wenn Sie einen hohen Wert festlegen, kann es sein, dass der Verbesserer nicht genügend Strategien zum Aufwerten findet und stecken bleibt.

Es gibt einen kleinen Fehler in StrategyQuantX 131 ab 22.4.2021, der es unmöglich macht, die Zeit-Ranking-Einstellung korrekt zu verwenden. Er sollte in ein paar Tagen behoben sein. Jetzt müssen wir unsere Arbeitsabläufe anpassen, damit dies kein Problem darstellt.

Das Ziel ist es, sicherzustellen, dass der Improver Strategien findet. Deshalb habe ich den Improver so eingestellt, dass er mindestens zehn Strategien aus jeder Basisstrategie findet. Es ist auch wichtig, die Anzahl der Trades zu reduzieren, da es wahrscheinlich ist, dass die genetische Engine Strategien mit Stop-/Limit-Orders auswählt und somit die Anzahl der Trades reduziert wird und weniger als die ursprüngliche Anzahl der Signale ist.

 

Schlussfolgerung

Das Tolle an diesem schrittweisen Ansatz ist die Tatsache, dass wir die Bewertungsphasen voneinander trennen können. In Schritt 6 konnten wir die Signalqualität separat analysieren. Jetzt, nach Hinzufügen der neuen Ausgänge, können wir die Robustheit der Ausgabemethoden separat bewerten. Die gleichzeitige Analyse von mehrdimensionalen Problemen ist sehr schwierig und zumindest fehleranfällig.

Vielleicht haben Sie sich gefragt, wie Sie feststellen können, ob dies ein besserer Arbeitsablauf ist als Ihr derzeitiger Arbeitsablauf. Die Lösung, die ich verwende, besteht darin, zwei Jahre an Daten zu reservieren, anhand derer ich meine Schlussfolgerungen validieren kann. Versuchen Sie einfach, ein paar tausend Strategien nach Ihrem Arbeitsablauf zu erstellen und die Leistung anhand von zwei Jahren echter Daten außerhalb der Stichprobe zu überprüfen. Versuchen Sie dann, mit diesem Arbeitsablauf die Verteilung der Ergebnisse zu vergleichen und eine statistische Schätzung vorzunehmen, ob der durchschnittliche Unterschied in der Strategieleistung statistisch signifikant ist. In einem späteren Beitrag werden wir diesen Workflow statistisch analysieren und feststellen, wie effizient er ist.

Hier können Sie ein Snippet zum Kantenverhältnis herunterladen

 

 

Abonnieren
Benachrichtigen Sie mich bei
8 Kommentare
Älteste
Neuestes Meistgewählt
Inline-Rückmeldungen
Alle Kommentare anzeigen
A Casey
A Casey
16. 5. 2021 5:55 Uhr

Toller Beitrag, ich freue mich schon auf den nächsten!

Marco
Marco
22. 5. 2021 6:25 Uhr

Ich habe dieses Modell ausprobiert. Wenn Wir haben keine Ausstiegsmethode gewähltStrategien haben nur einen Handel. Bin ich falsch einige Einstellungen?

clonex
clonex
Antwort an  Marco
28. 5. 2021 4:08 pm

In späteren Phasen müssen Sie eine Ausstiegsmethode festlegen ....

eduardo
eduardo
2. 6. 2021 12:24 Uhr

Sie haben das geformt, was ich schon lange gedacht habe, ohne es zu wissen. Ist eine spektakuläre Arbeit, reines Gold, ich bin gespannt auf Ihre Fortschritte in den nächsten Blog zu kennen

Emmanuel
19. 1. 2022 12:50 Uhr

Ausgezeichneter Artikel !!! und sehr hilfreich !!! danke Clonex !

tonyc
tonyc
7. 5. 2022 3:42 am

Können Sie die Datei EdgeRatio.sqx zur Verfügung stellen?

tomas262
Verwaltung
Antwort an  tonyc
11. 5. 2022 11:39 Uhr

Weitere Dateien für die Edge Ration können Sie hier finden https://strategyquant.com/codebase/trade-edge-ratio/ in unserer Codebase

Farhan
13. 7. 2022 9:21 Uhr

Vielen Dank für die tolle Idee. in der ersten Stufe, wenn ich die #of Handel Filter auf >200 dann filtert es alle Strategien, weil sie nur 1 Handel. so habe ich keine Strategie in der zweiten Stufe weiter zu verbessern

Zuletzt geändert 1 Jahr zuvor von Farhan

Lesen Sie weiter