Friday 19 May 2017

Gleitender Durchschnitt Crossover Backtest


Einfache Moving Averages - Trading Backtests Was gleitende Durchschnittsparameter sind die besten Diese Seite hat einen Ozean von gleitenden durchschnittlichen Backtests, die ich für den DAX, SP500 und auch USDEU (Forex) durchgeführt. Diese Tests wurden unter Verwendung unterschiedlicher Signalstrategien durchgeführt: einfache, exponentielle und Crossover-Varianten und verschiedene Indizes für einen Zeitraum von 1000 Handelstagen. Im Gegensatz zu anderen Websites testete ich alle gleitenden durchschnittlichen Tagesfensterwerte von 1 - 1000 Tagen, für die Cross-Over-Strategien auch in Kombination Diese Daten sind auch unqiue, da ich versucht habe, realistische Tests durchzuführen, die die buysell Verbreitung und die Steuern für simulieren Vergleich mit einer Referenz - (Buy-Hold-) Strategie. Ein schnell reagierender Fensterwert sieht gut aus in der Theorie und mit einem einfachen Test. Aber die Ausbreitung, Gebühren und Steuern zerstören alle Leistungen in der praktischen Anwendung. Deshalb sind diese realistischen Tests so wertvoll. Ich hoffe, diese Seite kann Ihnen helfen, mit Ihren Trades, genießen itBacktesting ein Moving Average Crossover in Python mit Pandas Im vorigen Artikel auf Research Backtesting Umgebungen In Python Mit Pandas haben wir eine objektorientierte forschenden Backtesting-Umgebung und testete es auf einer zufälligen Vorhersage-Strategie. In diesem Artikel werden wir nutzen die Maschinen, die wir eingeführt, um die Forschung über eine tatsächliche Strategie, nämlich die Moving Average Crossover auf AAPL. Moving Average Crossover-Strategie Die Moving Average Crossover-Technik ist eine äußerst bekannte simples Impulsstrategie. Es wird oft als die Hello World Beispiel für quantitative Handel. Die Strategie, wie hier skizziert, ist lang-nur. Zwei getrennte einfache gleitende Durchschnittsfilter werden mit variierenden Rückblickperioden einer bestimmten Zeitreihe erzeugt. Beim Kauf des Assets treten Signale auf, wenn der kürzere Lookback-Bewegungsdurchschnitt den längeren Lookback-Bewegungsdurchschnitt übersteigt. Wenn der längere Durchschnitt anschließend den kürzeren Durchschnitt übersteigt, wird der Vermögenswert zurückgekauft. Die Strategie funktioniert gut, wenn eine Zeitreihe einen starken Trend eintritt und dann langsam den Trend rückgängig macht. Für dieses Beispiel habe ich Apple, Inc. (AAPL) als Zeitreihe mit einem kurzen Rückblick von 100 Tagen und einem langen Rückblick von 400 Tagen gewählt. Dies ist das Beispiel der zipline algorithmischen Handelsbibliothek. Wenn wir also unseren eigenen Backtester implementieren wollen, müssen wir sicherstellen, dass er die Ergebnisse in Zipline, als ein grundlegendes Mittel der Validierung entspricht. Implementierung Bitte folgen Sie dem vorherigen Tutorial. Die beschreibt, wie die anfängliche Objekthierarchie für den Backtester konstruiert wird, andernfalls funktioniert der nachfolgende Code nicht. Für diese spezielle Implementierung habe ich die folgenden Bibliotheken verwendet: Die Implementierung von macross. py erfordert backtest. py aus dem vorherigen Tutorial. Der erste Schritt ist, die notwendigen Module und Objekte zu importieren: Wie im vorherigen Tutorial werden wir die abstrakte Basisklasse Strategy unterteilen, um MovingAverageCrossStrategy zu produzieren. Die alle Details enthält, wie die Signale erzeugt werden, wenn die sich bewegenden Mittelwerte von AAPL einander kreuzen. Das Objekt benötigt ein kurzes Fenster und ein langes Fenster. Die Werte wurden auf Standardwerte von 100 Tagen bzw. 400 Tagen gesetzt, wobei es sich um dieselben Parameter handelt, die im Hauptbeispiel der Zipline verwendet werden. Die gleitenden Mittelwerte werden durch die Verwendung der Pandas-Rollmechanik auf den BarsClose-Schlusskurs der AAPL-Aktie erstellt. Sobald die einzelnen Bewegungsdurchschnitte konstruiert worden sind, wird die Signalserie dadurch erzeugt, daß die Säule gleich 1,0 gesetzt wird, wenn der kurzlebige Durchschnitt größer ist als der lang fortschreitende Durchschnitt oder 0,0 sonst. Daraus können Positionsaufträge generiert werden, um Handelssignale darzustellen. Das MarketOnClosePortfolio wird von Portfolio subklassen. Die in backtest. py gefunden wird. Es ist fast identisch mit der im vorherigen Tutorial beschriebenen Implementierung, mit der Ausnahme, dass die Trades nun auf einer Close-to-Close-Basis statt einer Open-to-Open-Basis durchgeführt werden. Einzelheiten darüber, wie das Portfolio-Objekt definiert ist, finden Sie im vorherigen Tutorial. Ive ließ den Code in für Vollständigkeit und dieses Tutorium in sich geschlossen halten: Nun, da die MovingAverageCrossStrategy und MarketOnClosePortfolio Klassen definiert worden sind, wird eine Hauptfunktion aufgerufen, um alle Funktionalität zusammen zu binden. Darüber hinaus wird die Performance der Strategie über eine Handlung der Eigenkapitalkurve untersucht. Das Pandas DataReader-Objekt lädt OHLCV-Preise für AAPL-Aktien für den Zeitraum vom 1. Januar 1990 bis zum 1. Januar 2002 herunter, wobei an diesem Punkt die Signale DataFrame erzeugt werden, um die Langzeitsignale zu erzeugen. Anschließend wird das Portfolio mit einer Stammkapitalzuführung von 100.000 USD erstellt und die Erträge auf der Eigenkapitalkurve berechnet. Der letzte Schritt ist die Verwendung von matplotlib, um einen zweidimensionalen Plot der beiden AAPL-Kurse, überlagert mit den sich bewegenden Durchschnitten und buysell Signale, sowie die Equity-Kurve mit den gleichen buysell Signale. Der Plot-Code wird aus dem Zipline-Implementierungsbeispiel genommen (und modifiziert). Die grafische Ausgabe des Codes ist wie folgt. Ich benutzte den IPython-Einfüge-Befehl, um diesen direkt in die IPython-Konsole zu legen, während in Ubuntu, so dass die grafische Ausgabe in Sicht blieb. Die rosafarbenen upticks stellen Kauf der Vorlage dar, während die schwarzen downticks Vertretung verkaufen es zurück: Wie gesehen werden kann, verliert die Strategie Geld über dem Zeitraum mit fünf Hin - und Rücktransaktionen. Dies ist nicht überraschend angesichts des Verhaltens der AAPL in der Periode, die auf einem leichten Abwärtstrend war, gefolgt von einem erheblichen Aufschwung, der 1998 begann. Die Rückblickperiode der gleitenden durchschnittlichen Signale ist ziemlich groß und dieses beeinflußte den Profit des abschließenden Geschäfts , Die sonst die Strategie rentabel gemacht haben könnte. In den folgenden Artikeln werden wir ein anspruchsvolleres Verfahren zur Leistungsanalyse erstellen sowie die Optimierung der Rückblickperioden der einzelnen gleitenden Durchschnittssignale beschreiben. Dies ist ein Test einer anderen VIX-Handelsstrategie der ausgezeichneten Logical-Invest (siehe unsere vorherige Test der LIs Bollinger-Banden). Dieser nutzt 515-Tage gleitenden Durchschnitt Crossovers für den Handel VIX ETPs wie XIV (oder kurz VXX). Die Grafik unten zeigt die Ergebnisse des Strategiehandels XIV (blau), verglichen mit dem Kauf und Besitz von XIV (grau) ab Mitte 2004. Lesen Sie mehr über Testannahmen. Oder erhalten Sie Hilfe bei dieser Strategie. Strategie Regeln: Gehen Sie lange XIV am heutigen Abschluss, wenn seine 5-Tage einfachen gleitenden Durchschnitt (SMA) über seine 15-Tage-SMA schließen wird. Halten, bis seine 5-Tage-SMA unter seinem 15-Tage-SMA zu schließen, und dann auf Bargeld zu bewegen. Die Strategie (wie die Bollinger-Bandvariation) ist im Kreisverkehr eine Impulsstrategie. Die Strategie ist der Kauf XIV, wenn seine jüngsten Stärke, und halten, bis XIV bewegt sich zurück unter seinem mittelfristigen Durchschnitt. Beachten Sie, dass sich unser Backtest auf drei Arten von Logical-Invests unterscheidet: Der LIs-Test begann Anfang 2009. Weve hinzugefügt fast 5-Jahre zusätzliche simulierte Daten (1). LIs Test angenommen, dass wir kurzgeschlossen VXX. In der Erwägung, dass Ive Ergebnisse gezeigt, die lange XIV handeln, um einen Äpfel-Äpfel-Vergleich mit anderen Backtests hier bei Volatility Made Simple zu ermöglichen. LIs-Test ging davon aus, dass wir Trades an den nächsten Tagen geöffnet haben, anstatt am heutigen Abschluss. Ich teste am Ende, denn es gibt keine zuverlässige Methode für die Simulation von Pre-2009-Daten für die offenen. Wie Sie erwarten würden intuitiv auf der Grundlage der Strategien Regeln, seine getan einen guten Job, die meisten der XIVs erhebliche Drawdowns, weil seine zwingen die Strategie zu Bargeld, wenn XIV beginnt, sich gegen den Händler zu bewegen, unabhängig von allen anderen Überlegungen wie der Zustand der VIX-Futures Term-Struktur, etc. Aber die Eifer, um Positionen schnell zu verlassen, lässt auch eine Menge Gewinne auf dem Tisch, wenn XIV in einem konsequenten Aufwärtstrend ist (dh VXX ist in einem starken Abwärtstrend), wie es der Fall der letzten 2 Jahre war. Die Bollinger-Bandstrategie, die wir zuvor getestet haben, half, das zu beantworten, indem es es etwas schwieriger machte, Positionen zu verlassen (siehe Post für Details). Basierend auf den viel längeren Tests, die ich hier vorgestellt habe, der beiden Varianten, bevorzuge ich die Bollinger Band eins. Ein großes Dankeschön an Logical-Invest für die Veröffentlichung dieser Strategie. Wenn die Strategien, die wir auf unserem Blog (einschließlich dieser ein) signalisieren neue Trades, wir eine Warnung auf dem Tagesbericht an Abonnenten geschickt. Dies ist völlig unabhängig von unseren eigenen Strategien signalisiert es dient nur ein wenig Farbe in den täglichen Bericht hinzufügen und ermöglicht es Abonnenten zu sehen, was andere quantitative Strategien über den Markt sagen. Click to see Volatility Made Simples eigene elegante Lösung für das VIX ETP Puzzle. Good Trading, Volatility Made Simple Wonk Hinweis: Daten vor dem Start von XIV wurde simuliert. In der Lage, dies genau zu tun, mit einer Kombination der Indizes und die Futures-Daten, auf denen diese ETP basiert. Lesen Sie mehr über die Simulation von Daten für VIX ETPs. Post navigation Kategorien Aktuelle Beiträge

No comments:

Post a Comment