Friday 28 July 2017

Moving Average Trading System Backtesting


DOPPELTES BEWEGENDES DURCHSCHNITT Während die ein - und zweifach gleitenden mittleren Systeme üblich sind, werden sie meistens als Umkehrsysteme erwähnt, die im Markt 100 der Zeit sind. Wir wissen, dass der Markt nicht tendenziell 100 der Zeit so das Beispiel doppelten gleitenden Durchschnitt Crossover-System unten ist eingerichtet, um einen Eintrag auslösen, ist aber nicht immer auf dem Markt. Die Umkehrsystemversion wird als der doppelte gleitende Durchschnitt in der Weise der Schildkröte und der technischen Händler-Führer zur Computer-Analyse des Futures-Marktes erwähnt und geprüft. Das Dual-Moving-Average-Crossover-System ist eine vereinfachte Version des Donchian 5 und 20-Systems, das in den Dow Jones-Irwin Guide To Trading-Systemen erwähnt und getestet wird. Allerdings haben wir auch andere Versionen des Donchian 520 Systems mit zusätzlichen Eintragungsregeln gesehen Einfacher MA-Crossover alleine. LeBeau und Lucas sagen die Donchian 520. Ist kein einfaches Umkehrsystem, sondern nutzt einen aufwändigen Satz von Filtern. Der Grundeintrag des zweifach gleitenden Durchschnittssystems ist, wenn die schnellere Zeitrahmen-Durchschnittslinie die langsamere Zeitrahmen-Mittellinie überquert. Für die Donchian-5-Tage - und 20-Tage-Beispielbewegungsdurchschnitte ergibt sich eine lange Position, wenn der 5-Tage-Gleitdurchschnitt den 20-Tage-Gleitdurchschnitt überschreitet. Eine kurze Position tritt auf, wenn der 5 Tage gleitende Durchschnitt unter dem 20 Tage gleitenden Durchschnitt kreuzt. Sie können wählen, um den Eintrag zu nehmen, sobald die Linien kreuzen oder warten, bis der Preis auf der Seite des Kreuzes schließt. POSITIONSGRÖSSEN Position Sizing und Stopp sind die größten Änderungen aus der Umkehrversion. Nun verwenden Sie einen Stopp und berechnen die Position Größe mit der Volatility-Methode, die ein gesetztes Risiko ist, wenn gestoppt. Für unser Beispiel haben wir einen 14-tägigen ATR 1.5 Stopp, der 2 Kontoguthaben pro Position riskiert. Wenn ein Long-Eintrag bei 10 einen Stopp bei 8,5 hat, wäre bei jeder Aktie bei jedem Aktienkurs ein Risiko von 1,5 zu erwarten. Wenn das Kontostand 10.000 ist und das Risiko pro Position 2 ist, wäre Ihr Risiko 200. Die 200 (10.000 2) geteilt durch 1,50 (von ATR-Wert, wenn der Stopp getroffen wird) wäre eine Position von 133 Aktien. Berechnen Sie die Positionsgröße, indem Sie Ihr Risiko einnehmen und es durch den Wert der Bewegung bis zum Anschlag teilen. Zusammen mit der Berechnung der Position Größe, auch ein Vielfaches der ATR als Stopp. Ein Beispiel ist mit einem 14-Tage-ATR multipliziert mit 1,5 und gut Zahlen hinzufügen. Wenn Sie einen Bestand haben, den Sie bei 10 eingegeben haben und der 14 Tage ATR 1 ist, würden Sie aus einer langen Position bei 8.50 gestoppt werden. Eine kurze Position würde um 11.50 gestoppt. Die Umkehrversionen warten, bis die gleitenden durchschnittlichen Linien den anderen Weg kreuzen, aber abhängig von Ihren Zeitrahmen können Sie bedeutende Verzögerung haben, die zurück viel des Trends profitiert. Ein engerer Ausstieg wie der Preis, der auf eine parabolische SAR trifft, eine Unterbrechung eines Preiskanals oder eine Pause einer anderen gleitenden Durchschnittslinie, kann eine bessere Alternative für Ihr System sein. VARIATIONEN Um einige Peitschen zu vermeiden, wenn sich der Markt seitwärts bewegt, können Sie zusätzliche Filter wie ADX, Stochastics oder RSI hinzufügen. Wenn Sie langsame Zeitrahmen verwenden, werden die gleitenden Durchschnitte die Preisaktion verzögern, so dass ein zusätzlicher Filter zu kompensieren kann ein neuer Preis hoch vor einer langen Position oder ein neuer Preis niedrig vor einer kurzen Position sein kann. WEITERE DATEN Eine Internet-Suche findet viele Seiten im Zusammenhang mit diesem System. Sie können es auch in den drei oben genannten Büchern mit Testergebnissen und Vergleich mit anderen Systemen finden. Way of the Turtle nutzt es als ein Langzeit-System mit 100 Tage und 350 Tage Linien. Technischer Händler Leitfaden für Computer-Analyse der Futures-Markt und der Dow Jones-Irwin Leitfaden für Trading-Systeme verwenden Sie es mit der 5 Tage und 20 Tage Linien. Kopieren Sie 2012 GTV HOLDINGS, LLC. ALLE RECHTE VORBEHALTEN. Über uns Kontaktieren Sie uns ALLE RISIKEN, DIE MIT INVESTITIONEN ENTSCHEIDUNGEN AUF DER GRUNDLAGE VON INFORMATIONEN AUF DIESER WEBSITE ENTHALTEN SIND. TRADING IST SPEKULATIV IN DER NATUR UND NICHT FÜR ALLE INVESTOREN. INVESTOREN SOLLTEN NUR RISIKOKAPITAL BENUTZEN, DASS SIE VORBEREITET ZU VERLIEREN, DASS ES IMMER IMMER DAS RISIKO DES MATERIELLEN VERLUSTES BESTEHT. INVESTOREN SOLLTEN IHRE EIGENE PERSÖNLICHE FINANZLAGE VOR DEM TRADING VOLLSTÄNDIG ÜBERPRÜFEN. SYSTEME AUF DIESER WEBSITE SIND PÄDAGOGISCHE BEISPIELE UND SIND NICHT EMPFEHLUNGEN, KAUFEN ODER VERKAUFEN. PAST LEISTUNG GARANTIERT NICHT ZUKÜNFTIGE ERGEBNISSE. Mit der Gmma-Indikator und die Bedeutung der Backtesting Wenn Theres eine handelsbezogene Aktivität, die ich wirklich gerne tun ist die Schaffung von einfachen mechanischen Strategien, die eine statistische Kante haben, und kann erfolgreich von jedermann verwendet werden, unabhängig davon Der Erfahrung in der Welt des Handels im Allgemeinen und Forex im Besonderen. In diesem Monat habe ich einen Blick auf eine gleitende durchschnittliche Indikator namens GMMA (Guppy Multiple Moving Average), und versuchte, kommen mit einer profitablen Strategie, basierend auf ein paar einfache Regeln. Kurze Einführung in den GMMA-Indikator Obwohl dieses Tool (entwickelt von dem australischen Händler Daryl Guppy) in der Dukascopy jForex-Plattform nicht verfügbar ist, können Sie es problemlos auf Ihre Diagramme anwenden, da es einfach aus zwei Gruppen von exponentiellen gleitenden Durchschnitten (EMA) besteht, . Die schnelleren Mittelwerte sind 3, 5, 8, 10, 12 und 15 EMA, während die langsameren 30, 35, 40, 45, 50 und 60 EMA sind. Die Art, wie Sie mit der GMMA Handel ist nicht durch die typische gleitende Durchschnitt Crossover Sie erwarten würden, sondern durch die Analyse und Interpretation der Interaktion zwischen den beiden Gruppen (zum Beispiel, wenn der Abstand zwischen ihnen komprimiert oder erweitert), und auch unter den verschiedenen EMAs innerhalb jeder Gruppe. Da ich jedoch glaube, dass das Betrachten von Dingen anders als die meisten Menschen eine gute Möglichkeit ist, Ihre Erfolgsquote zu steigern, ignorierte ich die üblichen Interpretationen von GMMA und konzentrierte mich darauf, etwas einfacher zu systematisieren und ohne jede Subjektivität. Zutaten dieses mechanischen Systems Bei der Entwicklung dieser Strategie ersetzte ich die EMAs der schnelleren Gruppe für SMAs (einfacher gleitender Durchschnitt), weil EMAs nervöser auf den Markt reagieren und schließlich zu viele Trades auslösen oder bestehende bereits vorzeitig abschließen. Platz 3, 5, 8, 10, 12 und 15 SMA auf Ihren Karten. Sie können leicht verschiedene Farben verwenden, um sie leicht zu unterscheiden, zum Beispiel, verschiedene Schattierungen von blau. Platz 30, 35, 40, 45, 50 und 60 EMA. Fügen Sie eine ATR 10, dies wird die Volatilität zu messen und helfen uns mit Position Sizing und Stop-Loss-Platzierung. Zeitrahmen: Ich empfehle nicht, etwas kürzer als 1 Stunde Kerzen, weil in kürzeren Zeitrahmen gibt es zu viel Preis Lärm, die immer einen sehr negativen Einfluss haben, wenn mit bewegenden Durchschnitten. Empfehlen Sie Paare: Jedes Paar, das gut Trends, hat viel Liquidität und so wenig Preisspitzen wie möglich, kann verwendet werden. Das sind grundsätzlich alle Majors. Regeln der Strategie Das Ziel dieser Strategie ist es, Trades nur dann auszulösen, wenn es eine klare Tendenz auf dem Markt, in allen Zeitrahmen. LONG gehen, wenn am Ende der aktuellen Kerze alle gleitenden Mittelwerte in aufsteigender Richtung in aufsteigender Reihenfolge korrekt ausgerichtet sind. EMA 3 wird höher sein als EMA 5, diese wird höher sein als EMA 8 und dann EMA 10, bis Sie zu SMA 60 gelangen: Gehen Sie SHORT, wenn das Gegenteil passiert, und alle 12 Bewegungsdurchschnitte werden in absteigender Reihenfolge ausgerichtet: Offene Trades Werden beendet, wenn der anfängliche Stoppverlust getroffen wird oder wahrscheinlicher, wenn einer oder mehrere der sich bewegenden Mittelwerte nicht mehr richtig am Ende der Kerze ausgerichtet sind (warten Sie immer, bis die Kerze geschlossen ist). Zum Beispiel würde eine lange Position geschlossen, wenn die EMA 8 unter die EMA 10 ging, auch wenn alle anderen ihre Ausrichtung beibehielten: Der anfängliche Stopverlust wird bei 2 x ATR 10 platziert Verlust würde 150 Pips aus dem Eintrittspreis platziert werden. Alle Trades werden an der offenen Stelle der nächsten Kerze eingetragen. Zum Beispiel, wenn am Ende der 10 Uhr Kerze alle gleitenden Mittelwerte auf einen Aufwärtstrend zeigen, dann öffnen Sie eine lange Position rechts, wenn die 11 Uhr Kerze beginnt. Money Management und Position Sizing Ich dont empfehlen feste Losgrößen auf allen, die Märkte sind dynamisch und so sollte Ihr Trades werden. Wie üblich mit meinen ganzen Strategien, schließe ich einen Excel Geld-Management-Rechner, die wir verwenden, um die Stop-Loss und bestimmen Position Sizing, basierend auf Volatilität, die Größe des Handelskontos und wie viel wollen wir pro Risiko zu riskieren. Auf diese Weise handeln wir kleinere Positionen, wenn der Markt volatiler ist, und größer, wenn der Markt ruhig ist. Durch die Kombination der Gewinne und des Handels mit größeren Positionen erreichen wir eine höhere Rendite, je größer der Kontostand ist (und umgekehrt, wenn wir anfangen zu verlieren), als wenn wir die gleiche Summe gehandelt haben. Dieser Rechner, den ich entwickelt habe, wurde in anderen Artikeln beschrieben, die ich geschrieben habe, wenn Sie Zweifel haben, überprüfen Sie bitte diesen Artikel Wie Berechnen Position Sizing und Normalize Volatility. Oder einfach eine Frage hier posten. Dies ist, wie der Rechner aussieht: Ich mache immer ein paar Optimierungen, um es besser an jedes System anzupassen, das ich erstelle, können Sie diesen Monat-Rechner HIER herunterladen (Sie benötigen Excel, um es zu öffnen). Ich habe einen manuellen Backtest dieser Strategie auf einer täglichen EURUSD-Chart für die letzten 10 Jahre, vom 17. April 2003 bis zum 17. April 2013, durchgeführt. 1 Pip wurde aus jeder Position, aus Spread und Provisionen entnommen und das Risiko pro Trade betrug 4 Des Kontostands. Beachten Sie, dass diese Strategie auf jedem Zeitrahmen verwendet werden kann, verwendete ich tägliche Diagramme, weil das ist, was ich in meinem Live-Konto handeln, und ich suchte, um zu sehen, ob ich diese Strategie zu meiner Sammlung von Systemen hinzufügen konnte. Diese Strategie hat nicht ausgelöst, dass viele Trades, 120 in 10 Jahren. Wenn man bedenkt, dass es in einem Jahr etwa 250 tägliche Kerzen gibt (2500 für die gesamte Testperiode), so sind es im Durchschnitt etwa 21 Handelskerne. Wenn statt der täglichen Charts, die Sie stündlich eins, könnten Sie erwarten, über 1 Handel Signal pro Tag. Wenn jemand eine Liste einiger Trades wünscht, die im backtest gebildet werden, informieren Sie mich bitte in den Anmerkungen unten. Bei einem Risiko von 4 pro Handel erzielte das System insgesamt eine positive Rendite von 51, was einer durchschnittlichen jährlichen Wachstumsrate (CAGR) von 4,21 entspricht, während der maximale Rückgang bei 32,1 liegt. Im Gegensatz zu den letzten Monaten Artikel, wo die Ergebnisse dieser Strategie meine Erwartungen übertroffen, dieses Mal muss ich zugeben, dass Im enttäuscht. Obwohl die ersten 5-6 Jahre des Tests sehr gut waren, produzierten die folgenden Jahre viele Verluste, die diesen großen Drawdown verursachten. Das System scheint eine positive Flanke zu haben (und in einem Negativ-Markt sogar Brechen ist sogar schon gut), wenn auch eine kleine. Meine größte Enttäuschung stammt aus dem Gewinnfaktor (obwohl alles über 1 rentabel ist), nicht der CAGR, denn wenn ich stündlich Kerzen verwendet hätte, die allein den CAGR signifikant erhöht hätten (und den Drawdown auch ein wenig) Eine Menge mehr Trades und Zeit, um die Gewinne. Wie kann ich das System weiter verbessern? Fast am Ende des Backtests fing ich an zu realisieren, dass die Platzierung der Stopverluste bei ATR 10 mit hoher Wahrscheinlichkeit besser funktioniert als 2 x ATR 10, denn es gab ein paar große Verluste, die hätte sein können Teilweise vermieden. Wenn wir das tun, sollten wir auch das Risiko pro Handel auf 2 reduzieren. Ich dachte auch daran, einen sehr langfristigen gleitenden Durchschnitt, möglicherweise 200 SMA, hinzuzufügen und nur Aufträge in Richtung dieser MA zu öffnen. Ein weiterer Filter könnte Fibonacci Retracements, die uns aus einem Handel halten würde, wenn es eine wichtige Ration in der Nähe des Eröffnungskurses. Alle diese Verbesserungen könnten den Gewinnfaktor potenziell steigern, ich werde wohl in Zukunft mit weiteren Tests auf diese Strategie zurückkommen. Endgültige Worte und warum Backtesting so wichtig ist Nach der Überprüfung der Ergebnisse und der Erkenntnis, dass sie nicht so gut waren, wie ich erwartet hatte (ich zählte auf einen Gewinnfaktor von mindestens 1,5), hatte ich zwei Möglichkeiten: einerseits hätte ich das beschrieben System (ohne die Backtesting-Ergebnisse), sagen, wie gut ich glaubte, es würde funktionieren und die meisten Leute würden es bewerten und beglückwünschen mich für eine so gute Strategie auf der anderen Seite, könnte ich das Backtesting, damit zugeben, es ist nicht so erstaunlich (Obwohl es immer noch schlägt über 95 des Marktes). Aber dabei Id dienen, um einen viel besseren Service für die Gemeinschaft, so dass die richtige Option ist offensichtlich. Die Lektion hier ist einfach, wenn Sie denken, Sie haben eine gute Idee, testen Sie es ausgiebig, bevor Sie es in einem Live-Konto. Und wenn Sie sehen, ein System von einem anderen Händler zu entwickeln, fragen Sie ihn, um einen Backtest, weil ohne eine Sie wirklich nicht wissen, wenn was scheint, wie eine große Strategie ist eigentlich so gut, oder nur eine Möglichkeit, Geld zu verlieren sehr schnell. Kein Backtest keine Strategie. Übersetzen Sie zum russischen Arzt Ja, vergangene Leistung ist keine Garantie für zukünftige Leistung, aber wenn es richtig getan backtesting bietet eine gute Idee, wenn eine gegebene Systemanwendung profitabel ist oder nicht. Denn ohne Backtesting gibt es noch mehr Vertrauen, dass eine Idee funktioniert. ) Oft ist es mir passiert, dass ich hatte, was schien, große Ideen, nur für sie zu sein scheitern vollständig, wenn ein langer Backtest. ) Gleitende Durchschnitte können gefährlich sein, aber wie die meisten Dinge im Handel können sie sich auch als sehr nützlich erweisen, hängt alles davon ab, wie sie verwendet werden :) Zum Beispiel, einige Leute lieben Elliot Waves, aber für mich würde es nie funktionieren, aber Vielleicht eines Tages Ill erklären im Detail, warum ich dont wie Elliot Waves. ) Bewegt sich entlang der gleitenden Durchschnitte: P Guter Artikel, gut erklärt. Ich mochte den Teil der Backtests. Müssen wir berücksichtigen, dass der Markt ändert sich über die Zeit und einige Strategien haben einige gute Ergebnisse in einer Marktsituation, aber nicht auf andere. Der Markt änderte sich in den letzten Jahren, und die alten Strategien, die großen Erfolg haben, arbeiten jetzt nicht. Aber wir können mit ihnen lernen und sie an die neuen Zeiten anpassen :) Halten Sie die gute Arbeit yap sieht sehr professionell diesen Artikel. Ich sehe selten diese Art von Arbeit hier und hoffe für Sie einen besseren Ort in diesem MonatBacktesting ein Moving Average Crossover in Python mit Pandas Im vorherigen Artikel auf Research Backtesting Umgebungen in Python Mit Pandas haben wir eine objektorientierte forschungsbasierte Backtesting-Umgebung und getestet Es auf einer zufälligen Prognosestrategie. 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 besteht darin, 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 durch eine Kurve 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 deutlichen Aufschwung, der 1998 begann. Die Rückblickperiode der gleitenden Durchschnittssignale ist ziemlich groß und dieses beeinflußte den Profit des abschließenden Geschäfts , Die sonst die Strategie rentabel gemacht haben könnte. In nachfolgenden Artikeln werden wir ein anspruchsvolleres Verfahren zur Leistungsanalyse erstellen sowie die Optimierung der Rückblickperioden der einzelnen gleitenden Durchschnittssignale beschreiben.

No comments:

Post a Comment