Walk Forward Testing Handelssystem


Code-Bibliothek System-Trading-Code wird in mehreren Beiträgen verbreitet, könnte es eine gute Idee, sie alle an einem Ort (hier) zu konsolidieren, bevor es wird ein bisschen zu chaotisch Ich schreibe auch monatlich für Technical Analysis of Stocks and Commodities (TASC) - Magazin In ihrem Trader8217s Tipps Abschnitt (meist Trading Blox-Code). Hier finden Sie alle unten stehenden Informationen: 8212 TASC Magazin Traders8217 Tipps 8212 TASC Traders Tipps (April 2010): Modifizierte Volumen Preis Trend Indicator in Excel Im Artikel Modified Volume-Preis Trend Indicator in dieser Ausgabe, Autor David Hawkins diskutiert eine Änderung von Die Volumen-Preis-Trend-Indikator (VPT), ​​bereits auf der Grundlage der Balance-Lautstärke-Indikator ursprünglich von Joseph Granville entwickelt. Link zu traders8217 Tipps Link zu Excel-Datei TASC Traders Tipps (Mai 2010): Smoothing b in Trading Blox In 8220Smoothing der Bollinger b8221 Artikel, Autor Sylvain Vervoort erklärt, wie man Rauschen aus der traditionellen b-Indikator, verwendet, um klare Wendepunkte und Divergenzen zu identifizieren . Link zu traders8217 Tipps Link zur tbx-Datei TASC Traders Tipps (Dezember 2010): Hull Moving Average In Trading-Indizes mit dem Hull Moving Average in dieser Ausgabe erklärt Autor Max Gardner, wie die Hull gleitenden Durchschnitt für langfristige Markt-Timing zu verwenden. Link zu traders8217-Tipps Link zur tbx-Datei 8212 MISC 8212 8212 CSI Unfair Advantage API 8212 RetrieveBackAdjustedContract2 API-Funktionsdokumentation Referenzhandbuch zu dieser wesentlichen Funktion aus dem CSI-API-Dokument. Link zum Original-Post-Link zum RTF-Dokument Rückgesetzten Futures-Kontrakt abrufen Einige Beispiel-Code in C über die API, um auf eine der wichtigsten Funktionen zuzugreifen, um einen Futures-Kontrakt mit jeder Art von Back-Adjustment, die von CSI angeboten wird, abzurufen. Link zur ursprünglichen Post Link zu C-Quelldatei CSI Individuelle Verträge Extractor Ein Dienstprogramm, um einzelne Verträge aus CSI8217s Unfair Advantage-Datenbank in Klartext-Dateien zu extrahieren. Link zu Original Link zu Zip Datei mit EXE 8212 Trading Blox 8212 MMDI Portfolio Filter Variation auf dem klassischen MACD Portfolio Filter, mit dem Moving Median Indikator anstelle des Standard Moving Average für den schnellen Durchschnitt. Link zur ursprünglichen Post Link to Block Datei (tbx) Verbesserte Vortex-und AVX-Indikatoren und AVX-System Die ursprüngliche Vortex-Indikator hatte einen Fehler (Lückenabwicklung für nicht-Forex-Märkte) und nicht mit einem exponentiellen gleitenden Durchschnitt für Glättung. Dies ist meine verbesserte Version mit einem grundlegenden Umkehrsystem, das es für entryexits verwendet, um die ursprüngliche Postverbindung zur Zip-Datei zu verknüpfen (enthält: Vortex Indicator 038 AVX-Zusatzblockdatei (tbx), AVX Entry Exitblock (tbx), AVX System (tbs) 8212 R Code 8212 Walk-Forward-Implementierung von Vince8217s Leverage Space-Modell verwendet das LSPM R-Paket (von Josh Ulrich) in einem Walk-Forward-Ansatz, um eine adaptive Testmethode zu ermöglichen. Link zur ursprünglichen Post mit notwendigen Erläuterungen R-Code-Datei 8212 AmiBroker 8212 e-Verhältnis Berechnung Das e-Verhältnis ist eine praktische Möglichkeit, die Kante einer bestimmten Komponente eines Systems auszuwerten, ohne das System als Ganzes testen zu müssen Eingangssignal). Link zum ursprünglichen Post (enthält alle notwendigen Code-Snippets und Logik) 8212 TradersStudio 8212 e-Verhältnis Berechnung für Donchian Kanal Breakout-System Dieser Code enthält die notwendigen generischen Code, um das e-Verhältnis sowie eine Umsetzung zu berechnen, um die Berechnung zu einem Donchian gelten Kanal-Breakout-Eingangssignal. Link zur ursprünglichen Post Link zu Zip-Datei (mit Donchian Channel Indicator TS-Code, Benutzerdefinierte Handels-Bericht TS-Code, Kaufen System TS-Code, verkaufen System TS-Code, Excel e-Verhältnis Makro (Textdatei), Excel Beispiel Arbeitsmappe) Au. Tra. Sy Blog, Systematic Trading Forschung und Entwicklung, mit einem Geschmack von Trend folgend. Disclaimer: Die Wertentwicklung in der Vergangenheit ist nicht unbedingt ein Indikator für zukünftige Ergebnisse. Futures-Handel ist komplex und stellt das Risiko von erheblichen Verlusten als solche, kann es nicht für alle Anleger geeignet sein. Der Inhalt dieser Seite wird nur als allgemeine Information zur Verfügung gestellt und sollte nicht als Anlageberatung betrachtet werden. Alle Inhalte der Website sind nicht als Empfehlung zum Kauf oder Verkauf von Wertpapieren oder Finanzinstrumenten oder zur Teilnahme an einer bestimmten Handels - oder Anlagestrategie auszulegen. Die Ideen auf dieser Website sind nur die Meinungen des Autors. Der Autor kann eine Position in einem Finanzinstrument oder einer Strategie, auf die oben verwiesen wird, haben oder auch nicht. Jede Aktion, die Sie als Ergebnis von Informationen oder Analysen auf dieser Website nehmen, ist letztlich Ihre alleinige Verantwortung. HYPOTHETISCHE LEISTUNGSERGEBNISSE HABEN VIELE INHERENTE EINSCHRÄNKUNGEN, EINIGE VON DIESEN WERDEN BESCHRIEBEN. KEINE VERTRETUNG WIRD gemacht, dass jede Rechnung wird oder wahrscheinlich Gewinne oder Verluste ähnlich wie in FACT GEZEIGT zu erreichen, sind es oft starke Unterschiede zwischen HYPOTHETISCHEN ERGEBNISSE UND DIE TATSÄCHLICHE ERGEBNISSE DER FOLGE VON EINER BESTIMMTEN TRADING Programms vor. EINE DER EINSCHRÄNKUNGEN DER HYPOTHETISCHEN LEISTUNGSERGEBNISSE IST DAFÜR, DASS SIE ALLGEMEIN MIT DEM VORTEIL VON HINDSIGHT VORBEREITET WERDEN. FERNER NICHT HYPOTHETISCHEN TRADING FINANCIAL Risiken, UND KEIN HYPOTHETISCHEN Leumund KANN ACCOUNT VOLLSTÄNDIG FÜR DIE AUSWIRKUNGEN DER FINANZRISIKO der tatsächlichen Handels. BEI BEISPIELEN SIND DIE FÄHIGKEIT, VERLUSTEN ZU VERSTEHEN ODER ZU EINEM BESONDEREN HANDELPROGRAMM ZUM HANDELSVERLUST ZU VERMEIDEN, MATERIALPUNKTE, DIE AUCH DIE AKTUELLEN HANDELSERGEBNISSE ANWENDEN KÖNNEN. ES GIBT ZAHLREICHE ANDERE FAKTOREN, DIE MÄRKTE IM ALLGEMEINEN ZUSAMMENHANG ODER DIE UMSETZUNG DER BESTIMMTEN TRADING-PROGRAMM FÜR DIE IN DER VORBEREITUNG DER HYPOTHETISCHEN ERGEBNISSE UND ALLE, der die Handels beeinflussen können ERGEBNISSE nicht vollständig berücksichtigt werden. DIESE PERFORMANCE TABELLEN UND ERGEBNISSE SIND HYPOTHETISCH IN DER NATUR UND NICHT VERTRETEN HANDEL IN RECHTSAKTEN. Kopie 2009-2012 Au. Tra. Sy Blog 8211 Automatisiertes Handelssystem mdash Sitemap mdash Powered by WordpressWalk-Forward Optimierung in StrategyQuant Was ist Optimierung Die Idee hinter einer Optimierung ist einfach. Zuerst müssen Sie ein Handelssystem - zum Beispiel eine einfache gleitende durchschnittliche Crossover haben: Wenn EMA (10) kreuzt über EMA (20) gehen Sie lange, sonst gehen Sie kurz. In fast jedem Handelssystem gibt es einige Parameter (Indikatorperioden, Konstanten zum Vergleich usw.), die die Systemleistung beeinflussen. Die Optimierung bedeutet, die optimalen Werte dieser Parameter zu finden (mit dem höchsten Gewinn oder dem besten ReturnDD-Verhältnis oder einem anderen gewünschten Parameter). Zum Beispiel wäre es besser, Regel EMA (10) Kreuze über EMA (20) oder Regel EMA (15) Kreuze über EMA (50) verwenden Optimierung kann Ihnen helfen, die Werte, die die beste Leistung in der Vergangenheit zurückgegeben. Was ist Walk-Forward-Optimierung Analyse Walk-Forward-Optimierung ist in der Regel eine besondere Art von Backtest, die aus mehreren kleineren Backtests auf Optimisierungszeiträume besteht. Diese Optimierungsperioden werden über die gesamte Backtesting-Periode geteilt und immer folgen Out of Sample-Tests mit den optimierten Parametern. Es ist eine Technik, bei der Sie die Parameterwerte auf einem vergangenen Segment von Marktdaten optimieren und dann die Performance des Systems überprüfen, indem Sie es rechtzeitig auf Daten im Anschluss an das Optimierungssegment fortsetzen und der Prozess über nachfolgende Zeitsegmente wiederholt werden kann. Wie die Walk-Forward-Optimierung bei der Walk-Forward-Optimierung funktioniert, werden die Daten in eine konfigurierbare Anzahl von Perioden unterteilt (in diesem Beispiel 5). Jede Periode besteht aus Optimierungsteil und Ausführungsteil. Das Programm startet mit Optimierungszeitraum 1. Es läuft die einfache Optimierung auf Optimierungszeitraum 1, um die besten Parameterwerte zu finden. Diese Parameterwerte werden dann auf Laufzeit 1 angewendet - Strategie wird mit den im vorherigen Schritt gefundenen optimierten Parametern gehandelt. Am Ende der Ausführungsperiode 1 führt das System erneut eine einfache Optimierung auf einem als Optimierungszeitraum 2 markierten Teil von Daten durch. Er findet den besten Satz von Parameterwerten und wird erneut für den Handel in Laufzeit 2 verwendet. Dies geht bis zum Zeitraum weiter 5, die auch das Ende der im Test verwendeten Verlaufsdaten ist. Die Walk-Forward-Optimierung simuliert, wie Sie mit der Strategie im echten Handel arbeiten können - Sie können sie auf einigen historischen Daten optimieren und dann mit den optimalen Werten handeln. Nach einiger Zeit möchten Sie es neu zu optimieren und lassen Sie es wieder handeln. Welche "Walk-Forward" - Optimierungsanalyse sagt Ihnen, dass es im Grunde sagt Ihnen, wenn die Startegy ist robust genug und wenn seine Leistung kann durch Reoptimierung verbessert werden. Wenn die Strategieperformance während der Reoptimierung schlechter ist als die ursprüngliche nicht optimierte Startegy, ist es ein großes Signal, auf Kurvenanpassung aufzupassen. Auf der anderen Seite, wenn Walk-Forward optimierte Strategie führt besser als nicht-optimierte Version auf die gleichen Daten, sagt es Ihnen, dass. Ihre Strategie wird von der Optimierung profitieren. So sollten Sie regelmäßig reoptimize, um die beste Leistung zu erhalten Es bedeutet auch, dass die startegy robust genug ist, um mit Veränderungen am Markt (mit reoptimization) zu bewältigen und es gibt eine große Chance, es wird auch in Zukunft funktionieren. Walk-Forward-Optimierungsbeispiel in StrategyQuant Die Durchführung der Walk-Forward-Optimierung in StrategyQuant ist einfach, in den nächsten Zeilen zeigen wir den kompletten Prozess. Strategie für die Optimierung Für die Einfachheit gut nutzen EMA Cross-Strategie in diesem Beispiel. Beachten Sie, dass diese Strategie in der grundlegenden Form ist nicht rentabel, und reoptimiation wird nicht helfen, aber es ist einfach genug, um zu zeigen, wie die Optimierung funktioniert. Sie können die Strategie über den Link unten herunterladen - Klicken Sie mit der rechten Maustaste und wählen Sie Speichern unter. Schritt 1: Laden einer Strategie zur Optimierung Zunächst müssen Sie in das Optimierer-Fenster wechseln und die gewünschte Strategie optimieren. Für dieses Beispiel gut verwenden einfache EMACross-Strategie, die lange geht, wenn schneller EMA kreuzt über langsamer EMA und gehen kurz, wenn schneller EMA unterhalb der langsameren EMA kreuzt. Nachdem Sie die Strategie geladen haben, wird sie auch als Original-Strategie zur Optimierungsergebnisse-Datenbank hinzugefügt. Sie können doppelklicken Sie auf die Original-Strategie und gehen Sie dann zu Ergebnisse - Source-Code, um seine Regeln zu sehen. Stellen Sie sicher, dass das Kontrollkästchen Put values ​​to parameters aktiviert ist, damit die Variablen pLongEMA1, pLongEMA2, pShortEMA1, pShortEMA1 zum Speichern von Indikatorparametern verwendet werden. In unserer Optimierung versuchen, optimale Werte dieser Parameter zu finden. Theres noch ein kleines Problem. Wir können sehen, dass die Strategie verschiedene Parameter für lange und kurze Richtung verwendet. Wir können es so verwenden, wenn wir optimale Werte unabhängig für lange und kurze Seite finden wollen, aber für unser Beispiel möchten wir den gleichen Parameter für lange und kurze Seite verwenden. Wir können es in der Programm-Tools - Optionen - Strategie-Parameter. Wenn Sie das erste Kontrollkästchen markieren, verwendet es die gleichen Parameter für die lange und kurze Richtung (vorausgesetzt, die Regeln sind die gleichen). Klicken Sie auf OK, um die Einstellungen zu speichern und den Quellcode zu aktualisieren. Schritt 2: Optimierungswerte einstellen Um die optimierten Werte einzustellen, gehen wir zu Einstellungen - Parameter Hier sehen Sie die Liste aller Strategieparameter, die zur Optimierung zur Verfügung stehen. Optimierung bedeutet einfach, unterschiedliche Werte der Eingangsparameter zu versuchen. Für jeden Parameter, den Sie optimieren möchten, müssen Sie die Zeile des Parameters überprüfen und die Werte Start, Stop und Step wählen. Der Optimierer iteriert den Wert von Start zu Stop und führt die Schritte aus. Der ursprüngliche Wert ist ebenfalls konfigurierbar, er wird verwendet, um die ursprüngliche Strategie erneut zu testen. Sie können diesen Wert verwenden, um die Leistung neuer Ergebnisse mit den ursprünglichen Einstellungen zu vergleichen. Die Anzahl der Testwerte zeigt, wie viele Tests durchgeführt werden müssen, um alle Kombinationen der Werte zu testen. Hinweis Es ist möglich, dass Ihre Parameter-Tabelle viel mehr Parameter enthält, könnte es wie folgt aussehen: Dies ist eine weitere wichtige Funktion von StrategyQuant. Es ermöglicht Ihnen, nicht nur Strategie-Parameter, sondern auch andere Trading-Optionen zu optimieren, wie z. B. wie viele Trades pro Tag zu nehmen, oder was sollte der Zeitbereich für den Handel sein. Diese Einstellungen sind normalerweise Bestandteil der Strategieoptionen, können aber auch optimiert werden. Wenn Sie sie nicht in der Tabelle "Parameter" verwenden möchten, gehen Sie noch einmal zu Tools - Optionen - Strategieparameter und deaktivieren Sie das Kontrollkästchen für Parameter hinzufügen für Strategieoptionen. Schritt 3: Konfigurieren von Walk-Forward-Läufen Wir müssen auch die Walk-Forward-Einstellungen angeben. Verwenden Sie in diesem Beispiel 30 Out Of Sample (Run) und 6 Reoptimierungsschritte. Aus der Stichprobe bedeutet dies, wie viel der gesamten Zeit für die Ausführung bleibt. Wenn es gut auf 30 gesetzt ist, 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 Runs bedeutet, wie viele Optimierungsläufe dort laufen werden, was bedeutet, wie oft die Strategie wieder optimiert wird. Es ist auch möglich, die Optimierung (In Sample) und run (Out of Sample) Perioden durch genaue Tage festzulegen, können Sie dies tun, indem Sie definieren bestimmten Anzahl von Tagen. Schritt 4: Überprüfen der Ergebnisse Die Walk-Forward-Optimierung dauert länger als ein einfacher Vorgang, da anstelle von nur einer nur 6 (oder mehr) Optimierungsschritte stattfinden. Wenn es fertig ist, sehen wir, dass wir nur zwei Ergebnisse in der Datenbank - Original-Strategie und Walk-Forward-Ergebnis haben. Wenn gut doppelklicken Sie auf das Ergebnis in der Datenbank, werden die Ergebnisse der Strategie zu öffnen. Wir können sehen, dass die Strategie im Walk-Forward-Test, basierend auf unseren Robustheits-Score-Einstellungen fehlgeschlagen ist. Robustheit ist völlig anpassbar. Wir können alle Bedingungen festlegen, die wir in der Robustness Score Component-Tabelle (1) sehen und ihre Grenzwerte setzen wollen. Der Haupt-Robustheits-Score-Schwellenwert (2) bedeutet, wie viele dieser Werte verwendet werden müssen, damit das WF-Ergebnis als erfolgreich angesehen werden kann. Auf der rechten Seite aus dieser Tabelle können wir die Ergebnisse für jede Optimierung und Laufzeit zu überprüfen: Sie können sehen, dass nur 2 von 6 Läufen endete in Gewinn. Wir können auch die Equity-Chart überprüfen: Blaue Linie repräsentiert reoptimierte Strategie, während dünnere graue Linie ursprüngliche nicht optimierte Strategie darstellt. Interpretation der Ergebnisse Wie sollten wir interpretieren diese Ergebnisse Zunächst einmal ist es klar, diese besondere Strategie nicht besseres Ergebnis, wenn reoptimization verwendet wird. Sicherlich ist diese Strategie nicht in ihrer ursprünglichen Form gewinnbringend und es wurde durch die Wiederherstellung profitabel gemacht. Aber was ist, wenn wed reoptimize die Strategie öfter oder wenn gut verwenden verschiedene Out of Sample Wie können wir sagen, was ist die beste reoptimization Zeitraum für Strategie Dies ist, wo Walk-Forward Matrix zu spielen kommt - überprüfen Sie den nächsten Artikel. Beschreibung der erweiterten WF-Score-Komponenten In der Robustness-Score-Komponententabelle gibt es mehrere spezielle Partitorkomponenten, die festlegen, ob die Walk-Forward-Optimierung erfolgreich war oder nicht. WF-Stabilitätskomponenten ermöglichen es, die Leistung zwischen Optimierung und Lauf zu vergleichen (gemittelt nach Anzahl der Tage, so dass sie nicht von der relativen Größe jeder Periode abhängig ist). Normalerweise können wir erwarten, dass die Strategieperformance NACH der Optimierung schlechter ist als der optimierte Teil, weil das optimierte Teil bereits für die beste Performance optimiert wurde. Die unten stehenden Bedingungen erlauben uns, Grenzen zu setzen, inwieweit wir eine große Leistungsabnahme akzeptieren: WF Net Profit Stability - Net Profit Performance im Vergleich zum Performance-Anteil (in Prozent). Wert über 100 bedeutet, dass die Strategie besser läuft als im Optimierungsabschnitt. Nehmen wir an, Sie legen die Bedingung fest WF Net Profit Stabilität 60. Dies bedeutet, dass die Performance im Run-Teil (nach Optimierung) mindestens 60 der Performance im Optimierungszeitraum betragen sollte. So, zum Beispiel, wenn die Strategie 1000 im Optimierungszeitraum, sollte es mindestens 600 oder mehr nach der Optimierung Zeitraum, um diese Bedingung zu bestehen. Dies ist wichtig zu bewerten, denn wir wollen, dass unsere Strategie gut funktioniert, nachdem wir sie optimiert haben und diese Bedingung erlaubt es uns, dies zu kontrollieren - in unserem Zustand lassen wir die Optimierung nur bestehen, wenn die Startegy mindestens bei 60 der optimierten Performance durchführt. WF Drawdown Stabilität - Drawdown im Run vs Optimierungsteil (in Prozent). Wert über 100 bedeutet, dass Strategie hat schlimmer Drawdown in Run als in Optimierung Teil. Lets sagen, Sie spezifizieren Bedingung WF Drawdown Stabilität StabilityDiscuss über diesen Artikel hier

Comments