Dokumentation

Anwendungen

Zuletzt aktualisiert am 6. 5. 2015 von Mark Fric

Walk-Forward-Optimierung

Was ist Optimierung?

Die Idee hinter einer Optimierung ist einfach. Zunächst müssen Sie ein Handelssystem haben - zum Beispiel einen einfachen gleitenden Durchschnitts-Crossover: Wenn der EMA(10) den EMA(20) überschreitet, geht man long, andernfalls geht man short.

In fast jedem Handelssystem gibt es einige Parameter (Indikatorperioden, zu vergleichende Konstanten usw.), die die Leistung des Systems beeinflussen. Bei der Optimierung geht es darum, die optimalen Werte dieser Parameter zu finden (die den höchsten Gewinn oder das beste Verhältnis von Rendite und Verlust oder einen anderen gewünschten Parameter ergeben).

Wäre es zum Beispiel besser, die Regel "EMA(10) kreuzt über EMA(20)" oder die Regel "EMA(15) kreuzt über EMA(50)" zu verwenden?
Die Optimierung kann Ihnen helfen, die Werte zu finden, die in der Vergangenheit die beste Leistung erbracht haben.

Was ist Walk-Forward-Optimierung/Analyse?

Die Walk-Forward-Optimierung ist im Allgemeinen eine spezielle Art von Backtest, die sich aus mehreren kleineren Backtests mit Optimierungsperioden zusammensetzt. Diese Optimierungszeiträume sind über den gesamten Backtesting-Zeitraum verteilt und werden immer von Out of Sample-Tests mit den optimierten Parametern gefolgt.

Dabei handelt es sich um eine Technik, bei der die Parameterwerte anhand eines vergangenen Marktdatensegments optimiert werden. Anschließend wird die Leistung des Systems überprüft, indem es anhand von Daten, die auf das Optimierungssegment folgen, in der Zukunft getestet wird, und der Prozess kann für nachfolgende Zeitsegmente wiederholt werden.

So funktioniert die Walk-Forward-Optimierung

Bei der Walk-Forward-Optimierung werden die Daten in eine konfigurierbare Anzahl von Perioden (in diesem Beispiel 5) aufgeteilt. Jede Periode besteht aus einem Optimierungsteil und einem Laufteil.

Das Programm beginnt mit der Optimierungsperiode 1. Es führt die einfache Optimierung für den Optimierungszeitraum 1 durch, um die besten Parameterwerte zu finden. Diese Parameterwerte werden dann auf die Periode 1 angewendet - die Strategie wird mit den im vorherigen Schritt gefundenen optimierten Parametern gehandelt.

Am Ende von Laufperiode 1 führt das System erneut eine einfache Optimierung auf einem Teil der Daten durch, der als Optimierungsperiode 2 gekennzeichnet ist. Es findet den besten Satz von Parameterwerten, und diese werden erneut für den Handel in Laufperiode 2 verwendet.

Dies setzt sich bis zum Zeitraum 5 fort, der auch das Ende der im Test verwendeten historischen Daten darstellt.

Die Walk-Forward-Optimierung simuliert, wie Sie mit der Strategie während des realen Handels arbeiten könnten - Sie können es anhand einiger historischer Daten optimieren und dann mit den optimalen Werten handeln. Nach einiger Zeit sollten Sie ihn erneut optimieren und erneut handeln lassen.

Was sagt Ihnen die Walk-Forward-Optimierung/Analyse?

Sie sagt Ihnen grundsätzlich ob die Strategie robust genug ist und ob ihre Leistung durch eine erneute Optimierung verbessert werden kann.
Wenn die Leistung der Strategie während der Re-Optimierung schlechter ist als die der ursprünglichen, nicht optimierten Strategie, ist dies ein wichtiges Signal für die Kurvenanpassung.

Wenn andererseits die Walk-Forward-optimierte Strategie bei denselben Daten besser abschneidet als die nicht-optimierte Version, bedeutet dies, dass :

  1. Ihre Strategie wird von der Optimierung profitierenDaher sollten Sie sie regelmäßig optimieren, um die beste Leistung zu erzielen.
  2. Das bedeutet auch, dass die die Strategie ist robust genug, um mit Marktveränderungen fertig zu werden (mit Hilfe von Re-Optimierung) und es besteht eine große Chance, dass es auch in Zukunft funktionieren wird.

Beispiel für Walk-Forward-Optimierung in StrategyQuant

Die Durchführung der Walk-Forward-Optimierung in StrategyQuant ist einfach, in den nächsten Zeilen werde ich den kompletten Prozess zeigen.

Strategie zur Optimierung
Der Einfachheit halber werden wir in diesem Beispiel die EMA-Cross-Strategie verwenden. Beachten Sie, dass diese Strategie in der Grundform NICHT profitabel ist und eine erneute Optimierung ihr nicht helfen wird, aber sie ist einfach genug, um zu zeigen, wie die Optimierung funktioniert.

Sie können die Strategie über den unten stehenden Link herunterladen - klicken Sie mit der rechten Maustaste und wählen Sie "Speichern unter...".

EMA Cross strategy.str

Inhalt:

  1. Laden einer Strategie zur Optimierung
  2. Einstellung der Optimierungswerte
  3. Konfigurieren von Vorwärtsläufen
  4. Überprüfung der Ergebnisse
  5. Interpretation der Ergebnisse
  6. Beschreibung der fortgeschrittenen WF-Punktekomponenten

Schritt 1: Laden einer Strategie zur Optimierung

Zunächst müssen Sie zum Optimierungsfenster wechseln und die Strategie laden, die Sie optimieren möchten.

In diesem Beispiel verwenden wir die einfache Strategie EMA_Cross, die long geht, wenn der schnellere EMA den langsameren EMA übersteigt, und short geht, wenn der schnellere EMA den langsameren EMA unterschreitet. Nachdem Sie die Strategie geladen haben, wird sie auch als Originalstrategie zur Datenbank der Optimierungsergebnisse hinzugefügt.

Sie können auf die ursprüngliche Strategie doppelklicken und dann auf Ergebnisse -> Quellcode gehen, um ihre Regeln zu sehen.

Prüfen Sie unbedingt die Parametern Werte zuweisen so dass Sie sehen, dass die Variablen pLongEMA_1, pLongEMA_2, pShortEMA_1, pShortEMA_1 zum Speichern der Indikatorparameter verwendet werden. In unserer Optimierung werden wir versuchen, optimale Werte für diese Parameter zu finden.

Es gibt noch ein kleines Problem. Wir können sehen, dass die Strategie unterschiedliche Parameter für die Long- und Short-Richtung verwendet. Wir können sie so verwenden, wenn wir unabhängig voneinander optimale Werte für die lange und die kurze Seite finden wollen, aber für unser Beispiel möchten wir denselben Parameter für die lange und die kurze Seite verwenden.

Wir können es im Programm machen Werkzeuge -> Optionen -> Strategieparameter.

Wenn Sie das erste Kontrollkästchen aktivieren, werden für die lange und die kurze Richtung dieselben Parameter verwendet (vorausgesetzt, die Regeln sind dieselben). Klicken Sie auf OK, um die Einstellungen zu speichern und den Quellcode zu aktualisieren.


Schritt 2: Einstellung der Optimierungswerte

Um Werte festzulegen, die optimiert werden sollen, müssen wir zu Einstellungen -> Parameter gehen

Hier sehen Sie die Liste aller Strategieparameter, die für die Optimierung zur Verfügung stehen. Optimierung bedeutet einfach, verschiedene Werte der Eingabeparameter auszuprobieren.

Für jeden Parameter, den Sie optimieren wollen Sie müssen die Zeile des Parameters markieren und die Werte für Start, Stop und Step wählen. Der Optimierer durchläuft den Wert von Start bis Stop, wobei er Schritte macht. Der ursprüngliche Wert ist ebenfalls konfigurierbar und wird verwendet, um die ursprüngliche Strategie erneut zu testen. Sie können diesen Wert verwenden, um die Leistung der neuen Ergebnisse mit den "ursprünglichen" Einstellungen zu vergleichen.

Die Anzahl der Tests Wert zeigt uns, wie viele Tests durchgeführt werden müssen, um alle Kombinationen der Werte zu testen.

Achtung!
Es ist möglich, dass Ihre Parametertabelle viel mehr Parameter enthält, sie könnte etwa so aussehen:

Dies ist eine weitere leistungsstarke Funktion von StrategyQuant. Sie ermöglicht es Ihnen, nicht nur die Strategieparameter zu optimieren, sondern auch andere Handelsoptionen, wie z.B. die Anzahl der Trades pro Tag oder die Zeitspanne, in der gehandelt werden soll. Diese Einstellungen sind normalerweise Teil der Strategieoptionen, aber Sie können auch ihre Werte optimieren.

Wenn Sie sie nicht verwenden und in der Parametertabelle sehen wollen, gehen Sie noch einmal zu Werkzeuge -> Optionen -> Strategieparameter und deaktivieren Sie das Kontrollkästchen für Parameter für Strategieoptionen hinzufügen.


Schritt 3: Konfigurieren von Vorwärtsläufen

Wir müssen auch die Walk-Forward-Einstellungen angeben. In diesem Beispiel werden wir 30% Out Of Sample (Run) Periode und 6 Reoptimierungsschritte verwenden.

Außerhalb der Probe %
gibt an, wie viel von der gesamten Periode für die Ausführung übrig bleibt. Wenn wir den Wert auf 30 % setzen, bedeutet dies, dass in jeder Periode 70% der Daten für die Optimierung verwendet werden und 30% für den Handel mit den optimierten Werten verwendet werden.

Walk Forward Läufe
Dies bedeutet, wie viele Optimierungsläufe es geben wird, d.h. wie oft wir die Strategie neu optimieren werden.

Es ist auch möglich, die Optimierungs- (In Sample) und Ausführungszeiträume (Out of Sample) tagesgenau zu bestimmen, indem Sie eine bestimmte Anzahl von Tagen festlegen.


Schritt 4: Überprüfung der Ergebnisse

Die Walk-Forward-Optimierung dauert länger als eine einfache Optimierung, da sie aus 6 (oder mehr) Optimierungsschritten besteht und nicht nur aus einem.

Nach Beendigung des Vorgangs werden wir sehen, dass wir nur zwei Ergebnisse in der Datenbank haben - die ursprüngliche Strategie und das Walk-Forward-Ergebnis.

Wenn wir auf das Ergebnis in der Datenbank doppelklicken, werden die Strategieergebnisse geöffnet.

Wir können sehen, dass die Strategie im Walk-Forward-Test gescheitert ist, basierend auf unseren Robustheits-Score-Einstellungen.

Die Robustheitsbewertung ist vollständig anpassbar. In der Tabelle der Komponenten der Robustheitsbewertung (1) können wir alle Bedingungen festlegen, die wir beobachten möchten, und ihre Grenzwerte einstellen.

Der Schwellenwert für die Hauptrobustheitspunkte (2) gibt an, wie viele dieser Punkte erreicht werden müssen, damit das WF-Ergebnis als erfolgreich gilt.

Auf der rechten Seite dieser Tabelle können wir die Ergebnisse für jede Optimierung und jeden Laufzeitraum überprüfen:

Sie können sehen, dass nur 2 von 6 Läufen mit einem Gewinn endeten.

Wir können auch das Aktienchart überprüfen:

Die blaue Linie stellt die neu optimierte Strategie dar, während die dünnere graue Linie die ursprüngliche nicht optimierte Strategie darstellt.


Interpretation der Ergebnisse

Wie sollten wir diese Ergebnisse interpretieren?

Zunächst einmal ist klar, dass diese spezielle Strategie nicht zu besseren Ergebnissen führt, wenn eine erneute Optimierung durchgeführt wird.
Sicherlich ist diese Strategie in ihrer ursprünglichen Form nicht rentabel, und sie wurde auch nicht durch Reaktivierung rentabel gemacht.

Aber was wäre, wenn wir die Strategie öfters neu optimieren würden? Oder wenn wir andere Out of Sample % verwenden? Wie können wir feststellen, was der beste Zeitraum für die Neuoptimierung der Strategie ist?

Dies ist der Ort, an dem Walk-Forward-Matrix ins Spiel kommt - siehe den nächsten Artikel.

 

Tipp - siehe auch Artikel Beschreibung der erweiterten Walk-Forward-Werte zur Beschreibung der verschiedenen Werte, die in Filtern verwendet oder in der Datenbank angezeigt werden können.

 

 

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

Abonnieren
Benachrichtigen Sie mich bei
0 Kommentare
Inline-Rückmeldungen
Alle Kommentare anzeigen