Einfache Moving Averages - Trading Backtests Welche gleitenden durchschnittlichen Parameter 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 habe. Diese Tests wurden unter Verwendung unterschiedlicher Signalstrategien durchgeführt: Einfache Expositions - und Crossover-Varianten und verschiedene Indizes für einen Zeitraum von 1000 Handelstagen. Im Gegensatz zu anderen Webseiten habe ich alle gleitenden durchschnittlichen Tag-Fenster-Werte von 1 - 1000 Tagen getestet, für die Cross-Over-Strategien auch in Kombination Diese Daten sind auch unnötig, da ich versucht habe, realistische Tests durchzuführen, die die Buysell-Spreads und Steuern zu simulieren Vergleich mit einer Referenz-Hold-Strategie. Ein schnell reagierender Fensterwert sieht in der Theorie gut aus und mit einem einfachen Test. Aber die Ausbreitung, Gebühren und Steuern werden alle Leistungen in der praktischen Anwendung zerstören. Deshalb sind diese realistischen Tests so wertvoll. Ich hoffe, diese Seite kann Ihnen helfen, mit Ihren Trades, genießen Sie esBacktesting ein Moving Average Crossover in Python mit Pandas Im vorherigen Artikel über Research Backtesting Umgebungen In Python Mit Pandas haben wir eine objektorientierte forschungsorientierte Backtesting-Umgebung erstellt und es auf einer zufälligen getestet Vorhersagestrategie In diesem Artikel werden wir von der Maschine Gebrauch machen, die wir eingeführt haben, um die Forschung über eine tatsächliche Strategie durchzuführen, nämlich die Moving Average Crossover auf AAPL. Moving Average Crossover-Strategie Die Moving Average Crossover-Technik ist eine äußerst bekannte, vereinfachte Impulsstrategie. Es wird oft als das Hallo-Welt-Beispiel für den quantitativen Handel betrachtet. Die hier beschriebene Strategie ist nur langwierig. Zwei separate, einfach gleitende Durchschnittsfilter werden mit unterschiedlichen Lookback-Perioden einer bestimmten Zeitreihe erstellt. Signale zum Kauf des Vermögenswertes treten auf, wenn der kürzere Rückblick gleitende Durchschnitt den längeren Rückblick gleitenden Durchschnitt überschreitet. Wenn der längere Durchschnitt später den kürzeren Durchschnitt übersteigt, wird der Vermögenswert zurückverkauft. Die Strategie funktioniert gut, wenn eine Zeitreihe einen starken Trend einbringt und dann langsam den Trend rückgängig macht. Für dieses Beispiel habe ich Apple, Inc. (AAPL) als Zeitreihe gewählt, mit einem kurzen Rückblick von 100 Tagen und einem langen Rückblick von 400 Tagen. Dies ist das Beispiel der zipline algorithmischen Handelsbibliothek. Wenn wir also unseren eigenen Backtester umsetzen wollen, müssen wir sicherstellen, dass er mit den Ergebnissen in der Zipline übereinstimmt. Implementierung Achten Sie darauf, dem vorherigen Tutorial zu folgen. Die beschreibt, wie die anfängliche Objekthierarchie für den Backtester aufgebaut wird, andernfalls wird der unten stehende Code nicht funktionieren. 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 Strategy abstract Basisklasse unterteilen, um MovingAverageCrossStrategy zu produzieren. Die alle Details enthält, wie man die Signale erzeugt, wenn die gleitenden Mittelwerte von AAPL einander kreuzen. Das Objekt erfordert ein kurzes Fenster und ein langes Fenster, auf dem es zu bedienen ist. Die Werte wurden auf Vorgaben von 100 Tagen bzw. 400 Tagen gesetzt, wobei die gleichen Parameter im Hauptbeispiel der Zipline verwendet wurden. Die gleitenden Durchschnitte werden durch die Verwendung der Pandas Rollingmean-Funktion auf den Bars erstellt. Schließen Sie den Preis der AAPL-Aktie. Sobald die einzelnen sich bewegenden Mittelwerte konstruiert worden sind, wird die Signalreihe erzeugt, indem die Kolonne gleich 1,0 eingestellt wird, wenn der kurze gleitende Durchschnitt größer ist als der lange gleitende Durchschnitt oder 0,0 ansonsten. Daraus können die Positionen Aufträge erzeugt werden, um Handelssignale darzustellen. Das MarketOnClosePortfolio ist aus dem Portfolio untergeordnet. Die in backtest. py gefunden wird. Es ist fast identisch mit der im vorigen 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. Weitere Informationen darüber, wie das Portfolio-Objekt definiert ist, finden Sie im vorherigen Tutorial. Ive verließ den Code in Vollständigkeit und behalte dieses Tutorial in sich geschlossen: Jetzt, da die MovingAverageCrossStrategy und MarketOnClosePortfolio Klassen definiert wurden, wird eine Hauptfunktion aufgerufen, um alle Funktionalität zusammen zu binden. Darüber hinaus wird die Performance der Strategie über eine Kurve der Eigenkapitalkurve untersucht. Das Pandas DataReader-Objekt lädt OHLCV-Preise von AAPL-Aktien für den Zeitraum vom 1. Januar 1990 bis zum 1. Januar 2002 zu, an welchem Punkt die Signale DataFrame erstellt werden, um die Langzeitsignale zu erzeugen. Anschließend wird das Portfolio mit einer Anfangskapitalbasis von 100.000 USD erwirtschaftet und die Renditen werden auf der Eigenkapitalkurve berechnet. Der letzte Schritt ist es, matplotlib zu verwenden, um ein zweidimensionales Diagramm von beiden AAPL-Preisen zu zeichnen, überlagert mit den gleitenden Durchschnitten und Buysell-Signalen sowie die Eigenkapitalkurve mit den gleichen Buysell-Signalen. Der Plottencode wird aus dem Zipline-Implementierungsbeispiel genommen (und modifiziert). Die grafische Ausgabe des Codes ist wie folgt. Ich habe von der IPython-Paste-Befehl Gebrauch gemacht, um diese direkt in die IPython-Konsole zu setzen, während in Ubuntu, so dass die grafische Ausgabe im Blick blieb. Die rosa upticks stellen den Kauf der Aktie dar, während die schwarzen Abschlüsse den Verkauf wieder verkaufen: Wie man sieht, verliert die Strategie im Laufe der Zeit Geld mit fünf Hin - und Rückfahrten. Dies ist nicht verwunderlich angesichts des Verhaltens von AAPL über den Zeitraum, der auf einem leichten Abwärtstrend war, gefolgt von einem erheblichen Aufschwung, der 1998 begann. Die Rückblickperiode der gleitenden Durchschnittssignale ist ziemlich groß und dies hat den Gewinn des Endhandels beeinflusst , Die sonst die Strategie rentabel gemacht haben könnte. In den folgenden Artikeln werden wir ein anspruchsvolleres Mittel zur Leistungsanalyse schaffen und beschreiben, wie man die Lookback-Perioden der einzelnen gleitenden Mittelsignale optimiert. Just Getting Started mit quantitativen TradingMoving Durchschnittliche Backtest-Symbol - Geben Sie jedes Symbol in unserer Datenbank verfolgt, oder verwenden Sie ein Verhältnis zwischen Symbolen durch die Eingabe von zwei Symbolen wie sym1: sym2. Verschieben von Durchschnittswerten - kann entweder einfach oder exponentiell für die Anzahl der angegebenen Tage sein. Bei einer einzigen MA wird der Betrieb durch den Wert des Preises relativ zum Moving Average bestimmt. Wenn zwei MAs verwendet werden, wird der Betrieb durch die Beziehung zwischen den beiden Moving Averages bestimmt. Holdings - Der Fonds, der gehalten werden soll, kann gleich oder verschieden sein von dem Fonds, der für die obigen Berechnungen verwendet wird. Zum Beispiel könnten Sie den Kauf eines gehebelten Fonds auf der Grundlage der gleitenden Durchschnitt der unleveraged Fonds modellieren. Benchmark - SPY ist die Voreinstellung, aber jedes Symbol kann verwendet werden. Statistiken - Die Stats beinhalten drei Volatilitätsmaße, die Sie niedrig haben möchten, die Standardabweichung, den Ulkusindex und den Max Drawdown. Zusätzlich gibt es drei Rendite: Risikomaßnahmen, wo höher besser ist. Dazu gehören die Sharpe Ratio, Sortino Ratio und Martin Ratio. Von den aktuellen Bildschirmen ETF Market View ab nah, Mo, Mar 6 Wichtiger Haftungsausschluss: Die von ETFScreen zur Verfügung gestellten Informationen dienen ausschließlich zu Informationszwecken und sind nicht als Beratung oder Aufforderung zum Kauf oder Verkauf von Sicherheiten zu verstehen. Der Inhaber von ETFScreen übernimmt keine Haftung, die sich aus der Verwendung des hierin enthaltenen Materials für irgendwelche Zwecke einschließlich Anlagezwecken ergibt. Datenschutzerklärung DisclaimerNutzungsbedingungen Wenn Sie einen Kommentar haben, kontaktieren Sie uns bitte. BackTesting Moving Averages Warum Moving Averages Als Trader oder Investor ist der einzige Grund, um gleitende Durchschnitte zu untersuchen, um Wissen zu gewinnen, um die Gewinne zu steigern. Wie viele andere technische Indikatoren sind gleitende Durchschnitte dazu bestimmt, uns objektiv den Marktstatus zu einem bestimmten Zeitpunkt zu erzählen. Dies hilft uns, durch die Emotionen des Tages zu sehen und rationale Entscheidungen zu treffen, die wir zu größeren Gewinnen und weniger Verlusten auf lange Sicht führen werden. Moving Averages (MAs) glatt die Serie von Preisen für eine Aktie. MAs werden am häufigsten verwendet, um den Trend der Marktrichtung zu identifizieren und werden als Trend-Indikator klassifiziert. Das bedeutet, dass MAs nur für langfristige Investoren sind. 8211 Kurzfristige Händler nutzen sie auch. Durchgehende Durchschnitte können verwendet werden, um Bestände für gute Kandidaten zu screenen, Signalkaufmöglichkeiten zu erwerben und Verkaufssignale anzubieten. Warum Backtest 8211 A Story Das Ziel der Backtesting ist es, herauszufinden, ob gleitende Durchschnitte wirklich zu besseren Ergebnissen führen und was sind die vielversprechendsten Möglichkeiten, um MAs anzuwenden. Lassen Sie mich Ihnen eine kurze Geschichte erzählen. Während ich die Ergebnisse für einen der gleitenden durchschnittlichen BackTesting Report Probleme zusammensetzte, war ich zufällig ein Freund zu besuchen. In ihrem Haus stieß ich auf ein gelesenes Material von einem gut beworbenen Discount-Börsenmakler. In ihm war ein Artikel, der seinen Kunden berät, eine bestimmte gleitende durchschnittliche Länge zu verwenden, die in einer bestimmten Weise angewendet wird, um die besten Resultate zu erhalten. Ich hatte meine umfangreichen Tests direkt vor mir und ich kann Ihnen sagen, dass Broker8217s Methode nicht die besten Ergebnisse, obwohl sie erwähnen eine MA-Länge, die auf andere Weise nützlich ist. Ich hatte in meiner Hand Testergebnisse, die zeigten, dass die Art und Weise, dass Broker den gleitenden Durchschnitt angewendet hatte eine Gewinnrate schlechter als die Grundlinie bei der Prüfung auf 7147 Aktien über 14 Jahre Börsen-Daten. Klar, dass der Makler diese Art von Testen lief. Es8217s bis zu den Kunden 8211 uns 8211 zu verteidigen für uns selbst und finden Sie heraus, was funktioniert im Vergleich zu was doesn8217t. Wie man MAs berechnet Wenn beim Übersetzen der gleitenden Mittelwerte die erste Entscheidung ist, wie man den gleitenden Durchschnitt berechnet. Möchten Sie einen einfachen gleitenden Durchschnitt (SMA) oder etwas, um den Preis besser zu verfolgen, wie ein exponentieller gleitender Durchschnitt (EMA) Sie könnten ein Experiment betrachten, um die Gewinnraten der beiden verschiedenen Mittelwerte zu vergleichen. Ich habe gerade das vor ein paar Jahren gemacht, und während ich die Ergebnisse nicht veröffentlichen musste, kam ich mit der Vorstellung, dass es keinen großen Unterschied gemacht hat, ob ich mich für SMA oder EMA 8212 entschieden habe, nur einen auswählen und ihn konsequent einsetzen. Also für dieses Projekt, ich wähle, um einfache gleitende Durchschnitte zu verwenden, weil ich sie in den Kommentaren am häufigsten erwähnt sehe. Um die Berechnung tatsächlich durchzuführen, verließ ich mich auf die eingebaute Funktion, die mit TradeStation kam. (Die Wahl der Backtesting-Engine ist eine weitere Entscheidung, die allgemein genug ist, um in einem anderen Post zu schreiben.) Wie man MAs verwendet. Weiterhin musst du festlegen, wie genau du gleitende Durchschnitte anwenden möchtest. Wie werden Sie interpretieren die Beziehung zwischen Preis und gleitenden Durchschnitt Welche Regeln werden Sie verwenden, um zu entscheiden, wann zu kaufen und zu verkaufen Sie don8217t müssen lange über Aktien zu lesen, bevor sie über eine bullish Verweis auf einen Aktienhandel über seinem 200-Tage gleitenden Durchschnitt oder seine 50-Tage-Gleitender Durchschnitt oder sogar der 10- oder 20-Tage-MA. Oder Beratung über den Kauf von Aktien, wie sie ihre 50-Tage oder 200-Tage gleitenden Durchschnitt zu überqueren. Dies sind wichtige Regeln, um in der Backtesting-Engine zu testen. Und dann da8217 die gleitende durchschnittliche Crossover 8211 eine klassische Methode der technischen Analyse. Das macht drei verschiedene Möglichkeiten, mit bewegten Durchschnitten zu testen. In der Tiefe gehen einige Handelstexte über den Hang eines gleitenden Durchschnitts. Wenn du zurück zur Algebra kommst und den MA als Linie betrachtest, um seinen Hang zu finden, würdest du zwei Punkte auf der Linie auswählen und die übliche Formel ((x2-x1) (y2-y1) anwenden. Dies stellt die Frage, wie weit auseinander, um die beiden Punkte, die einen Unterschied machen können, um Ergebnisse. Wirklich, da die MA verwendet wird, um den Trend zu identifizieren, wollen wir nur wissen, ob es nach oben oder unten schräg ist. Dann können wir die ganze Berechnung vereinfachen, indem wir bemerken, dass, wenn der Preis über dem gleitenden Durchschnitt liegt, muss es den Durchschnitt hochziehen, und ein Preis unterhalb der MA zieht es herunter. So ein weiterer Grund, die Wirksamkeit des Preises über dem gleitenden Durchschnitt zu testen. Parametereinstellungen Sobald Sie sich entscheiden, wie Sie die MAs verwenden, müssen Sie eine Auswahl verschiedener Längen auswählen, um zu testen. Vorsicht vor Überoptimierung Irgendwo da draußen ist ein Kerl mit Backtesting-Ergebnisse mit 3895 Gewinn oder was auch immer mit nur den richtigen gleitenden Durchschnitt. Schade, dass er nicht weiß, was MA diese Ergebnisse in der Zukunft produzieren wird. Das heißt, du musst mehr als eine Länge ausprobieren, um sicherzustellen, dass deine Ergebnisse einen Fluch haben. Halten Sie mit den Standardeinstellungen oder denjenigen, die Sie über die meisten in den Medien hören. Das Finden der eine perfekte Parametrierung wird dich nicht reich machen. Finden Sie eine Gruppe von guten, robusten Einstellungen nur Sie können sehr viel gut aber Als praktische Angelegenheit, wenn das Backtesting genügend Datenverzögerung vor dem Messen erlaubt. Alle Tests müssen an der gleichen Stelle für Äpfel-Äpfel-Vergleich zwischen verschiedenen MA-Längen beginnen. Zum Beispiel, wenn Sie einen 200-Tage-gleitenden Durchschnitt testen, wird es die ersten 200-Tage-Daten nehmen, um den ersten Punkt dieses gleitenden Durchschnitts zu berechnen. Das bedeutet, dass der erste Tag, den Sie möglicherweise ein Signal haben könnte, 200-Tage in den Datensatz ist. Um einen fairen Vergleich mit dem 10-tägigen gleitenden Durchschnitt zu machen, müssen Sie sicherstellen, dass keine Signale aus dem 10-tägigen gleitenden Durchschnitt zählen, bevor der 200-Tage bereit ist zu gehen. Glücklicherweise hat TradeStation einen Weg, um die 8220Maximum Anzahl von Bars Studie wird Referenz8221 in 8220Properties für All8221 Strategien, die zwingt die Backtesting-Engine zu warten, dass lange vor Tabulierung von Daten. Mehr Gewinn aus dem Kauf oder Verkauf Umlaufende durchschnittliche Regeln, und insbesondere gleitende durchschnittliche Crossover-Regeln, werden oft als Umkehrsystem diskutiert. Das bedeutet, dass ein Signal, sagen die MAs, die nach oben kreuzen, ein Kaufsignal ist und dann sein Gegenteil, sagen, MA Linien, die sich überqueren, ist nicht nur ein Verkaufssignal, sondern auch der Auslöser, um kurz zu gehen. Theoretisch ist das genau so, aber viele Leute sind nicht daran interessiert, den Markt zu knacken. Sie suchen nach Techniken, um ihnen zu helfen, zu kaufen und vielleicht zu verkaufen. Sogar eine Person, die regelmäßig verkauft und verkauft kurz könnte verschiedene Techniken für den Kauf und Verkauf. Aus diesen Gründen ist es sinnvoll, die Kaufsignale getrennt von den Verkaufssignalen zu testen. Dies stellt ein Dilemma dar, weil es schwierig ist, ein Kaufsignal isoliert zu bewerten. Eine Möglichkeit, dies zu tun ist, um zeitliche Ausgänge zu verwenden 8211 das heißt, verlassen den Handel oder verkaufen die Aktie nach einer gewissen Zeit vergeht. Ich entschied mich, jeden Backtest dreimal mit drei verschiedenen Zeitpunkten zu starten, weil verschiedene Leute unterschiedliche Stile und unterschiedliche Bedürfnisse haben. Um Backtesting-Ergebnisse zu produzieren, die für Swing-Händler nützlich sind, gehe ich nach 2 Tagen aus. Zur Modellierung von Händlern, 20 Tage. Um den Bedürfnissen der aktiven Investoren gerecht zu werden, hält das Backtesting jede Position für 200 Tage. Dies gibt einen Weg, um die Kaufsignale zu isolieren und herauszufinden, wie nützlich der gleitende Durchschnitt ist, um Käufer von verschiedenen Temperamenten zu kaufen. Notwendigkeit, Güte zu definieren Eine weitere sehr wichtige Sache zu prüfen, wenn Sie Backtesting Umzugsdurchschnitte, um herauszufinden, wie gut sie in der Börse tun: Wie werden Sie wissen, was gut ist Sie benötigen objektive Kriterien für den Erfolg. Das bedeutet, die Schlüsselstatistiken wie Win-Rate, Erwartung, hypothetische Eigenkapitalgewinne etc. zu identifizieren. Es bedeutet auch, Standards für eine akzeptable Leistung in jedem dieser Bereiche festzulegen. Ein Beispiel veranschaulicht, warum dies wichtig ist und warum es nicht so einfach ist wie es zuerst erscheint. Sagen Sie Ihre Tests zeigen eine Gewinnrate von 55 für eine bestimmte Indikator. Das mag vielleicht nicht so gut sein, wenn 62 von allen Aktien im selben Zeitraum aufgestiegen sind. Oder wenn nur 25 von Aktien stiegen während dieser Zeit, Ihre 55 Gewinnrate wäre spektakulär. Was gut ist, hängt davon ab, wie es mit der Baseline-Marktleistung unter den gleichen Bedingungen vergleichbar ist. Sie können eine kostenlose Kopie der BackTesting Report Baseline Problem herunterladen, indem Sie hier klicken. Für einen aussagekräftigen Backtest müssen Sie genügend Daten haben, um einen statistisch gültigen Vergleich zu machen. Zumindest bedeutet das 30 Trades. Auch wenn Sie nur ein Instrument 8211 nur einen Bestand oder nur ein Währungspaar 8211 handeln, denke ich it8217s wichtig, um Ihre Trading-Strategie auf viele verschiedene Instrumente zu testen, um seine Robustheit zu beweisen. Ich ging über die Spitze mit einem extrem großen Test-Set 8212 7147 Aktien über 14 Jahre 8212, um sicherzustellen, dass meine Ergebnisse in einer Vielzahl von Marktbedingungen gelten würde. Sie können Ihre Kopie meiner Backtesting Berichte über gleitende durchschnittliche Kaufsignale erhalten, indem Sie hier klicken.
No comments:
Post a Comment