Ich habe Tausende von Strategien zurückgetestet. Die Lektion, die ich auf die harte Tour gelernt habe: Overfitting wird dir $$$ kosten. Jetzt benutze ich Kreuzvalidierung, um dagegen anzukämpfen. Hier ist der Code, um es zu tun (in 2 Minuten):
Falls Sie mit der Kreuzvalidierung nicht vertraut sind: • Verringert das Risiko von Überanpassung in Modellen • Beinhaltet die Aufteilung von Daten in Teilmengen • Schätzt die Modellleistung auf ungesehenen Daten Es wird in allen Datenwissenschaften verwendet. Jetzt können Sie es für den Handel mit VectorBT PRO nutzen. Lass uns loslegen!
Lass uns VBT PRO und die wenigen Bibliotheken importieren, die für unsere Analyse relevant sind.
Holen Sie die Daten für Ihr Lieblingsvermögen. Wir verwenden AAPL.
Als nächstes richten wir einen "Splitter" ein, der einen Datumsbereich in kleinere Segmente gemäß einem gewählten Schema unterteilt.
Der Befehl splitter.plots().show_png() führt zu folgender Visualisierung:
Als Nächstes erstellen wir eine Funktion, um eine Handelsstrategie innerhalb eines bestimmten Datumsbereichs mit einem einzigen Parametersatz auszuführen, die eine wichtige Kennzahl zurückgibt. Unsere Strategie wird ein einfacher EMA-Crossover kombiniert mit einem ATR-Trendstop sein.
Durch das Dekorieren (oder Wrappen) unserer Funktion mit `parameterized` ermöglichen wir `objective`, eine Liste von Parametern zu akzeptieren und diese über alle Kombinationen hinweg auszuführen.
Lass uns die Ergebnisse analysieren, indem wir die schnellen und langsamen EMA-Zeiträume segmentieren. Es hebt die minimale Variation des Sharpe-Verhältnisses vom Trainings- zum Testdatensatz über mindestens 50 % der Splits hervor, wobei Blau eine positive Veränderung anzeigt.
Das Ergebnis ist eine Heatmap, die die verschiedenen Sharpe-Ratios über die Kombinationen der langsamen und schnellen Zeiträume zeigt.
Obwohl Sie möglicherweise eine vielversprechende Strategie auf dem Papier entwickelt haben, ist es entscheidend, diese zu validieren, um ihre konsistente Leistung über die Zeit zu bestätigen und sicherzustellen, dass sie nicht nur das Ergebnis zufälliger Schwankungen ist. Wenden Sie die Techniken an, die Sie hier gelernt haben, auf Ihre eigene Strategie an.
100