Strategie Bauprozess (E-mini S & P 500 Futures) Aufbau einer profitablen emini Strategie für ES / TF / EMD von Mark Fric In diesem Artikel werde ich die komplette Schritt-für-Schritt Prozess des Aufbaus einer profitablen, robuste Strategie für ES (E-mini S & P 500 Futures), darunter mehrere Schritte von verschiedenen Robustheitstests erklären. Dies ist eine Variation meiner älteren Artikel über Strategie Bauprozess für Forex. Bei der Verwendung von Techniken des maschinellen Lernens, wie genetische Programmierung ist es realtively einfach zu Strategien mit gut aussehende Equity-Kurve zu erhalten. Die Gefahr liegt in der Kurvenanpassung, so dass der wichtigste Teil der Strategie Bauprozess ist Teststrategie für Robustheit, um sicherzustellen, dass es nicht kurvenangepasste auf historische Daten. In diesem Artikel werde ich erklären, wie ich Doppel OOS Filter plus Robustheitstests sowie Begehbarer Vorwärts Matrix Test. Dies ist das Ergebnis Für die Motivation Ich poste Ergebnisse eines netten leistungs Strategien für ES / TF / EMD, die ich mit dem nachfolgend beschriebenen Verfahren gefunden. Strategy 238.433 für ES / TF / EMD Die Strategie oben auf unserem Forum (nur für lizenzierte Benutzer von StrategyQuant) veröffentlicht: zum Download zur Verfügung. Die einzigen Eingänge ich verwende, sind meine Erwartungen der Strategie - Ich möchte eine Strategie für ES bauen (E-mini S & P 500) am 15. Min Zeitrahmen, die profitabel ist und so wenig wie möglich Drawdowns. Ich möchte die Strategie robust genug sein, so dass es auch auf anderen Futures (TF, EMD) und ich will es Begehbarer Vorwärts Matrix Test bestehen, um sicherzustellen, dass reoptimization funktioniert auf diese Strategie. Strategiebildungsprozess 1. Abrufen der Daten Es gibt einige Unterschiede zwischen Futures und Devisen. Zuerst von allen, den Erhalt der Daten für Futures ist etwas schwieriger und teurer. Es gibt keine freie Datenquellen und die meisten Makler nicht mehr geben Ihnen die Geschichte, als einige Monate. Sie können die Daten von der Makler, der ihnen bietet (Tradestation, wenn Sie ihre Kunden sind), oder Sie müssen für eine Live-Datendienst wie Kinetick oder IQFeed anmelden zu bekommen. Es gibt auch einige spezielle Dienste, die bieten Live-Daten-Feed nicht 't, aber das historische Termindaten zu verkaufen. Um sie nur für "historische Intraday furtures Daten" auf Google suchen. Zweite Unterschied ist, dass Futures-Kontrakte haben Verfallsdatum, Verträge werden in der Regel nur für 3-4 Monate gehandelt werden und dann werden sie durch neuere Version der gleichen Terminkontrakt ersetzt. Um die Termindaten für die Strategieentwicklung zu nutzen, müssen wir die zumindest einige Jahre von Daten in Form von kontinuierlichen Verträge haben. Die meisten Datendienste bieten diese Option, so ist es nur eine Frage der Anmeldung zu den Datendienst und Herunterladen der Daten auf Ihr Trading-Plattform. Exportieren der Daten von Ninjatrader Wenn Sie bereits Daten in Ihrem Ninjatrader müssen Sie sie kopieren, zu StrategyQuant, so kann es die erzeugten Strategien Text. Um dies zu erreichen, müssen wir Daten von Ninjatrader exportieren und importieren Sie sie auf StrategyQuant. Um Daten zu exportieren, müssen wir das Diagramm für ES 15 Min zu öffnen. Achten Sie darauf, die richtige Handelssitzung gesetzt. Ich benutze CME US-Index-Futures RTH-Sitzung in diesem Beispiel. Wenn der Plan wird geöffnet finde SQDataExport Anzeige und legen Sie sie auf der Karte. Es wird die Daten für die aktuell geöffnete Diagramm in eine Textdatei exportieren. Wiederholen Sie diesen Vorgang auch für TF (Mini Russel 2000 Futures) und EMD (E-mini S & P Midcap 400) ebenfalls auf 15 Minuten Zeitrahmen mit der richtigen Trading Session. Wir werden diese Daten später verwenden, um unsere Strategien auf andere Symbole als eine Form der Robustheitstest testen. Dann öffnen StrategyQuant und neue Symbole für ES, TF und EMD und importieren Sie die entsprechenden Datendateien. Importieren von Daten aus Ninjatrader ist in weitere Details auch in der Benutzeranleitung beschrieben. 2. Erstellen eines großen Pool von potentiellen Kandidaten Im ersten Schritt der Erzeugung Ich habe einfach großen Pool von potenziell "gut" Strategien, die ich für die Robustheit später testen zu generieren. Ich will meine alle anfänglichen Strategien profitabel und robust (zu einem gewissen Grad) zu sein, so dass ich verwenden mehrere Filter auch in dieser ersten Phase. Meine Einstellungen für diesen Schritt Sie können die Einstellungen, die ich in diesem Schritt mit dem folgenden Link herunterladen. Klicken Sie auf den Link mit der rechten Maustaste und wählen Sie Verknüpfung speichern unter. Dann in StrategyQuant Verwendung Einstellungen laden, um diese Einstellungsdatei, um das Programm zu laden. Beachten Sie, dass, wenn Sie mit dem Namen Ihres Symbole in StrategyQuant anders, müssen Sie die Daten manuell eingestellt werden. Erklärt Einstellungen Zunächst erzeugen ich alle meine Strategien auf mehreren Symbolen. Mein Ziel ist es, eine gute Strategie für ES zu finden, aber ich möchte meine Strategie robust sein - so möchte ich es um profitables auch bei Merck sein. Ich füge EMD auf die zusätzlichen Daten, so dass nun die Strategie auf beiden Symbole getestet werden. Bild 1: Einstellung der Daten Ich werde von Daten von 2003.01.02 bis 31.12.2012, die 10 Jahren zu verwenden. Der Rest der Daten für die weitere OOS späteren Testen verbleiben. Ich werde genetische Evolution-Modus verwenden. Die Idee ist, eine Bevölkerung von 200 Strategien zu machen, während der 30 Generationen entwickeln und sie dann wieder von vorne anfangen. Auf diese Weise werde ich laufen in eine Sackgasse der Evolution und die besten Strategien zu vermeiden, werden ständig zu Databank gespeichert. Sie können auch sehen, dass die einzige Voraussetzung für die Anfangspopulation ist, dass es mindestens 100 Trades zu machen. Es muss nicht profitabel zu sein - die genetische Evolution sollten in der Lage, es zu verbessern. Bild 2: Genetische Optionen Wir könnten auch Zufalls Generation, ohne die Evolution zu verwenden, aber die Evolution sollten die profitable Strategien schneller zu finden. Die letzte wichtige Stück Einstellung Rang Optionen. Ich Databank bis 2000 besten Strategien zu speichern, weil ich will, um eine gute Basis für den weiteren Auswahlprozess haben. Ich habe auch festgelegt, die Auswahlkriterien auf Rückkehr / Drawdown-Verhältnis - das ist mein Favorit. Sie können weitere Auswahlkriterien zu verwenden, vielleicht werden Sie bessere Ergebnisse zu erhalten. Bild 3: Ranking-Optionen Othe der wichtigsten Dinge ist, um die anfänglichen Filterkriterien für Strategien in der Datenbank festgelegt. Ich möchte nur Strategien, die mindestens $ 2.000 in der Gewinn - sind zu betrachten, müssen Return / DD-Verhältnis> 3, mindestens 300 Trades und Return / DD-Verhältnis eines Portfolios um mindestens 2,5 sein. Weil ich die Prüfung der Strategien auf zwei Symbole - ES und EMD, werden die Ergebnisse für die Portfolio-Strategien auch berechnet werden. Mit dieser Bedingung, die ich geben lediglich an, dass der Portfolio-Performance nicht viel schlechter als die Leistung auf nur ES sein, und das Programm wird alle Strategien mit schlechten Performance des Portfolios zu entlassen. Jetzt müssen wir nur noch auf die Schaltfläche Start getroffen und lassen Sie das Programm die Arbeit machen. Denken Sie daran, wir mindestens 2000 "gut" Strategien zu generieren, bevor wir mit dem Filterprozess fortsetzen wollen. Je nach Einstellungen und Geschwindigkeit des Computers kann es mehrere Stunden oder sogar Tage in Anspruch nehmen, so ist geduldig. Wenn das Programm eine Strategie nicht zu produzieren für eine sehr lange Zeit, vielleicht sollten wir zu einem höheren Zeitrahmen zu wechseln - 30 Minuten, 1 Stunde, oder machen Sie die Einschränkungen weniger restriktiv. 3. Erste Filter - Out of Sample (OOS) Scheck Wenn ich 2000 potenziell gute Strategien in der Databank, werde ich die Generierung stoppen und starten Filterung Prozess. Ich werde den ersten Filter anzuwenden - indem alle das System, die aus Musterleistungs schlecht haben. Ich kann es schnell zu tun, nur durch Sortieren der Strategien in der Datenbank und löschen Sie diejenigen, die zum OOS haben profitieren kleiner als $ 3.000. Bild 4 Databank mit Pool von Strategien, sortiert nach OOS Net Profit Dieser erste Schritt entfernt in der Regel einen großen Teil der Strategien, so dass von der ersten 2000 Kandidaten, die wir bis auf um 1700 sind. 2. Zweite Filter - die Wiederholung der Prüfungen und zweiten OOS Scheck In diesem Schritt werde ich alle Strategien auf dem unbekannten Aus Abtastperiode erneut zu testen und ich werde Test auf TF Daten hinzuzufügen. Erneute Prüfung der Strategien ist einfach - ich werde einfach wählen Sie alle Strategien in der Datenbank von und klicken Sie auf Retest-Taste. Dadurch werden alle Strategien, um einen Retest Registerkarte zu bewegen. Ich werde auch zu bestätigen Dialog gefragt, ob es sollte die Build-Einstellungen für die Retest verwenden Ich werde dann verlängern die Datenperiode bis zum Ende der verfügbaren Daten. Strategien wurden auf Daten von 2003.01.02 bis 31.12.2012 generiert, werde ich nun die Strategien auf Daten erneut zu testen bis zum 31.12.2013 (noch ein Jahr nicht bei der Generierung verwendet wird) und Aus Abtastperiode eingestellt vom 31.12.2012 bis 31.12.2012 . Beachten Sie, dass dies die Strategien für die vollständige Daten erneut zu testen, und die OOS Teil wird die Strategie die Leistung während des letzten Jahres der bisher ungenutzte Daten zeigen. Bild 5: Einstellungen für Retest Weil ich auch historische Daten für TF Ich werde sie, um zusätzliche Daten hinzufügen, um die Leistung auf allen drei Eminis zu vergleichen. Der Test könnte einige Zeit dauern, und nach der es fertig ist werde ich wieder ausziehen das System, die aus Musterleistungs schlecht haben. Auch hier kann ich die Strategien in der Datenbank von Nettogewinn (OOS) sortieren und löschen Sie diejenigen, die zum OOS haben profitieren kleiner als $ 1.500. 3. Dritter Filter - EMD, TF-Check Dritte Filter ist visuell - Ich werde die Leistung der Strategien bei Merck und TF-Symbole zu überprüfen. Ich werde zu den Ergebnissen gehen -> Aktiendiagramm, schalten Chart zum Portfolio und gehen durch Strategien, eins nach dem anderen Blick auf die Equity-Kurven für EMD und TF. Bild 6: Beispiel für gute und schlechte EMD / TF Leistung Was suchen wir? Da diese Eminis stark korreliert sind, möchte ich die Strategie profitablen auf allen drei Symbole zu sein, genau wie im ersten Beispiel. Wir können uns auf das zweite Beispiel zu sehen, dass die Leistung auf TF ist sehr schlecht im Vergleich zu ES und EMD, wird seine Equity-Kurve nicht grodwing, also werde ich solche Strategien zu entlassen. Dass die Leistung auf TF und / oder EMD ist viel besser als die Leistung zu ES - es kann auch eine andere extrem sein. Das ist ok, kommt es oft vor, dass Strategien eine bessere Leistung auf als auf TF ES. Wir sollten nicht auf der Suche werden nur in der letzten Leistung, sondern auch mit dem Eigenkapital Kurven. Wir sollten alle Aktien Kurven, lange Perioden der Stagnation oder große Drawdowns haben entlassen. So können wir den Filter sehr, obwohl zu machen, sollten wir am Ende mit nicht mehr als 10-20 restlichen Top-Strategien für den nächsten Schritt. 4. Vierter Filter - Robustheitstests Nach dem Entfernen aller Strategien mit schlechten EMD / TF Performance gibt es weniger als 20 Strategien verlassen, die gut haben IS und OOS Leistung sowie eine zufriedenstellende Leistung bei Merck / TF. Ich werde jetzt Strategien wieder Retest mit Robustheitstests und Money Management, um zu sehen, wie jeder der Strategien Griffe kleine Änderungen in der Ein - und in der Lage sein, um die Strategien miteinander zu vergleichen. Ich werde Geld-Management von festen Größe zu ändern, um festgelegte Menge, ließ jeden startegy Risiko $ 500 pro Handel. Dies ermöglicht eine bessere Strategien Vergleich, weil sie den gleichen Betrag pro Trade riskieren. Bild 7: Einstellung Money-Management zu festen Betrag In Robustheitstests verwende ich mindestens 20 Simulationen und testen Sie die Strategie für alle Arten von Stress-Situationen. Nach der Konfiguration des Robustheitstest I erneut zu testen, die Strategien erneut. Dieses Mal wird es schnell sein, denn es gibt nur wenige Strategien in der Datenbank von links. Bild 8: Robustheit Tests Wie Robustheitstests bewerten Robustheitstests zeigen uns, wie die Strategie in der Realität verhalten, bei unbeantworteten Werk, verschiedene Verlaufsdaten usw. Ich suche nach Strategien, die akzeptablen Werte für Nettogewinn und Drawdown in Konfidenzniveau von 95% haben. Bild 9: Robustheit Tests Ergebnisse Im obigen Beispiel können wir die Robustheit Ergebnisse für zwei Strategien zu sehen. Strategie auf der linken Seite hat Gewinn im akzeptablen Niveau, aber Drawdown mehr als verdoppelt im Vergleich zum ursprünglichen Ergebnis. Strategie auf der rechten Seite hat auch Gewinn im akzeptablen Niveau und Drawdown war nahezu unverändert. In diesem Schritt werde ich nur 1-3 endgültige Strategien, die nächste Prüfung der Robustheit unterzogen werden zu wählen. Diese Abschlussstrategien werden von den besten Ergebnissen in Robustheitstests, die Gesamtrentabilität und Einfachheit ausgewählt - Ich möchte die Strategie Regeln so einfach wie möglich sein und Handelsregeln sollten einen Sinn zu machen. 5. Fünfter Filter - Walk-Forward Matrix Test Wir arbeiten mit einigen Strategien verlassen, und wir können den ultimativen Test für die Robustheit laufen - Walk-Forward Matrix Test. WF Matrix ist einfach eine Matrix von begehbaren vorne Optimierungen mit verschiedenen Anzahl der Durchläufe und führen Perioden. Wenn die Strategie geht Begehbarer Vorwärts Matrix Test es bedeutet, dass mit Hilfe der Parameter reoptimization der Strategie ist anpassbar an einer großen Palette von Marktbedingungen und auch, dass die Strategie nicht Kurve auf bestimmte Daten angepasst - da mit reoptimization es funktioniert auf vielen verschiedenen Zeiträume. Zusätzlich zu dieser WF Matrix-Test sagt uns auch, wenn die Strategie sollte dauerhaft neu optimiert werden kann und was die optimale reoptimization Periode. Fuß-Forward Matrix Test muss für jede Strategie separat erfolgen. Ich werde meine Strategie, Optimizer und wählen Begehbarer Vorwärts Matrix-Option laden. Ich werde auch Schritte für die Pisten und zum OOS Prozentsätze auswählen. StrategyQuant wird durch alle diese Kombinationen zu gehen, die Durchführung-Weg-Forward Optimierung der Strategie. Bild 10: Aufbau-Weg-Forward Matrix Einstellen der Parameter für die Optimierung Zur Optimierung Sinn zu machen, müssen Sie die Strategieparameter, die optimiert werden gesetzt. Jede Strategie verwendet unterschiedliche Logik und hat verschiedene Parameter, so dass Sie, um die Optimierung unterschiedlich konfigurieren. Bild 11: Optimierung der Parameter Diese Strategie ist relativ einfach, so dass ich nur werde optimieren Stop-Loss-Wert und Stop Hinterkoeffizienten. Es ist nicht notwendig, alle Parameter zu optimieren, werden nur diese, die den größten Einfluss auf Strategie Leistung haben. Auswertung-Weg-Forward Matrix Wenn die Optimierung beendet ist, werde ich auf dem Walk-Forward-Matrix ergeben Bank klicken, um die Details zu sehen. Ich möchte Optimierer für mich klare Antwort zu geben, wenn die Strategie übergeben Weg-Forward-Optimierung Test, also muss ich Punktzahl Kriterien einrichten. Dies sind einfache Kriterien, um wahr zu sein für die Strategie, um den Test zu bestehen haben. Bild 13: Walk-Forward Matrix Ergebnisse Das Endergebnis ist, dass die startegy weitergegeben Weg nach vorne Matrix Test für die Robustheit. Die 3D-Score-Chart zeigt, dass 19 von 24 Kombinationen bestanden unsere Kriterien (verwendet Standardeinstellungen). Die Strategie muss nicht für jede Kombination übergeben, ich suche 2x2 oder 3x3-Bereich, der die meisten Kombinationen durchlaufen hat - dies wird die Gruppe der besten reoptimization Kombinationen. In diesem Fall kann ich das 10 Abfahrten mit 30% Out von Probe ist eine der besten Kombinationen zu sehen, weil es durch andere Kombinationen, die auch übergeben, umgeben. Wenn ich den Weg-Forward-Optimierung-Chart kann ich sehen, dass die Strategie profitabel bleibt auch während reoptimization. Der Rückgang der Profitabilität steht im Einklang mit Tests, die wir von der Monte-Carlo-Robustheits bekam, aber die Strategie ist immer noch profitabel. Bild 14: Walk-Forward-Optimierung Chart Ich beschrieb meine komplette Prozess der Arbeit mit StrategyQuant, die einige interessante neue Strategien geführt. Diese strateguies sind nur Proben ein dit dauerte weniger als 2 Tage von SQ Lauf und ca. 1-2 Stunden meiner Zeit, um sie mit dem Einsatz von StrategyQuant finden. Sie können es selbst ausprobieren, inspirieren lassen und gegebenenfalls den Vorgang mit Ihren eigenen Ideen, die Sie auf unserem Forum teilen zu verbessern. Mögliche Verbesserungen des Verfahrens - Sie können versuchen, für Strategien separat für lange und kurze Richtung. Jede Richtung hat ihre eigene Dynamik und verschiedene Strategien für lange und kurze könnten bessere Ergebnisse zurückzukehren. Ich nicht erwähnen Improver - es ist ein leistungsfähiges Werkzeug, das Sie für eine bessere Variante Ihrer bestehenden Strategie aussehen, wenn Sie mit der Leistung zufrieden sind immer noch nicht erlaubt. Denken Sie auch daran - der Punkt ist nicht die Strategie, die perfekt auf historischen Daten ist zu finden. Dies ist ein Rezept für eine Katastrophe, weil übermäßig optimierte Strategie wird garantiert, um in Echthandels scheitern. Unser Ziel sollte es sein, eine Strategie, die robust gegenüber unterschiedlichen Daten und / oder Symbole zu finden, denn das bedeutet, dass es wirkliche Vorteil gegenüber dem Markt hat.
No comments:
Post a Comment