Friday 14 July 2017

Exponentielle Gleitende Durchschnittliche Pandas

Exponential Moving Average Der exponentielle Moving Average Der exponentielle Moving Average unterscheidet sich von einem Simple Moving Average sowohl nach Berechnungsmethode als auch in der Preisgestaltung. Der Exponential Moving Average (verkürzt auf die Initialen EMA) ist effektiv ein gewichteter gleitender Durchschnitt. Mit der EMA ist die Gewichtung so, dass die letzten Tage Preise mehr Gewicht als ältere Preise gegeben werden. Die Theorie dahinter ist, dass jüngere Preise als wichtiger als ältere Preise angesehen werden, zumal ein langfristiger einfacher Durchschnitt (zum Beispiel ein 200-tägiger Tag) gleiches Gewicht auf Preisdaten hat, die über 6 Monate alt sind und gedacht werden könnten Von so wenig veraltet. Die Berechnung der EMA ist ein wenig komplexer als die Simple Moving Average, hat aber den Vorteil, dass eine große Aufzeichnung von Daten, die jeden Schlusskurs der letzten 200 Tage abdeckt (oder aber viele Tage betrachtet werden) nicht beibehalten werden muss . Alles was Sie brauchen sind die EMA für den Vortag und den heutigen Schlusskurs, um den neuen Exponential Moving Average zu berechnen. Berechnen des Exponenten Anfänglich muss für die EMA ein Exponent berechnet werden. Um zu beginnen, nehmen Sie die Anzahl der Tage EMA, die Sie berechnen wollen und fügen Sie ein, um die Anzahl der Tage, die Sie in Erwägung ziehen (zum Beispiel für einen 200-Tage gleitenden Durchschnitt, fügen Sie einen zu 201 als Teil der Berechnung zu erhalten). Nennen Sie diese Tage1. Dann, um den Exponenten zu erhalten, nehmen Sie einfach die Zahl 2 und teilen sie durch Days1. Zum Beispiel wäre der Exponent für einen 200 Tage gleitenden Durchschnitt: 2 201. Das entspricht 0,01 Vollberechnung, wenn der exponentielle gleitende Durchschnitt Nachdem wir den Exponenten erhalten haben, brauchen wir nur noch zwei weitere Informationen, um die vollständige Berechnung durchführen zu können . Die erste ist gestern Exponential Moving Average. Wir gehen davon aus, dass wir das schon wissen, wie wir es gestern berechnet haben. Allerdings, wenn Sie arent bereits Kenntnis von gestern EMA, können Sie durch die Berechnung der Simple Moving Average für gestern beginnen und verwenden diese anstelle der EMA für die erste Berechnung (dh heute Berechnung) der EMA. Dann können Sie morgen die EMA verwenden, die Sie heute berechnet haben, und so weiter. Die zweite Information, die wir brauchen, ist der heutige Schlusskurs. Wir gehen davon aus, dass wir den heutigen 200 Tage Exponential Moving Average für eine Aktie oder Aktie berechnen wollen, die eine vorhergehende EMA von 120 Pence (oder Cent) und einen aktuellen Tages-Schlusskurs von 136 Pence hat. Die vollständige Berechnung ist immer wie folgt: Heutige Exponential Moving Average (aktuelle Tage Schlusskurs x Exponent) (vorherige Tage EMA x (1- Exponent)) Also, mit unserem Beispiel Zahlen oben, heute 200 Tage EMA wäre: (136 x 0,01 ) (120 x (1- 0,01)) Das entspricht einer EMA für heute von 120.16.Backtesting eines Moving Average Crossover in Python mit Pandas Im vorherigen Artikel über Research Backtesting Umgebungen In Python Mit Pandas haben wir ein objektorientiertes forschendes Backtesting erstellt Umwelt und testete es auf einer zufälligen Prognose-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 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 kurze gleitende Durchschnitt größer ist als der langgängige 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 nachfolgenden Artikeln werden wir ein anspruchsvolleres Verfahren zur Leistungsanalyse erstellen sowie die Optimierung der Rückblickperioden der einzelnen gleitenden Durchschnittssignale beschreiben. Vielen Dank für die Buchung der EMA. Und ja, TAlib sollte wirklich verfügbar sein. There39s etwas Arbeit auf diesem, die wirklich sehr vielversprechend aussieht (githubquantopianziplinepull100). Ich werde versuchen, dies in Kürze zu ziehen, um es für ein größeres Publikum zugänglich zu machen. Das Material auf dieser Website dient nur zu Informationszwecken und stellt weder ein Angebot zum Verkauf noch eine Aufforderung zum Kauf oder eine Empfehlung oder Anerkennung für Sicherheit oder Strategie dar, noch stellt es ein Angebot zur Anlageberatung durch Quantopian dar. Darüber hinaus bietet das Material keine Stellungnahme in Bezug auf die Eignung von Sicherheiten oder spezifischen Investitionen. Quantopian übernimmt keine Gewähr für die Richtigkeit und Vollständigkeit der auf der Website dargestellten Ansichten. Die Ansichten sind freibleibend und können aus verschiedenen Gründen unzuverlässig geworden sein, unter anderem Änderungen der Marktbedingungen oder der wirtschaftlichen Verhältnisse. Bei allen Anlagen handelt es sich um Risiken einschließlich des Verlustes des Kapitalbetrags. Bevor Sie Investitionsentscheidungen treffen, sollten Sie sich mit einem Anlageberater beraten. Es tut. Aber die meisten der Arbeit der Herausbildung der beste Weg ist bereits getan. Wir müssen es nur fertig stellen. Danach ist es nur eine Menge von copyamppaste, um die gesamte TAlib Bibliothek zu wickeln. Es gibt viele gute Dinge in den Arbeiten, um bestimmte Mängel zu beheben. Es ist eine Frage der Ressourcen zum größten Teil. Das Material auf dieser Website dient nur zu Informationszwecken und stellt weder ein Angebot zum Verkauf noch eine Aufforderung zum Kauf oder eine Empfehlung oder Anerkennung für Sicherheit oder Strategie dar, noch stellt es ein Angebot zur Anlageberatung durch Quantopian dar. Darüber hinaus bietet das Material keine Stellungnahme in Bezug auf die Eignung von Sicherheiten oder spezifischen Investitionen. Quantopian übernimmt keine Gewähr für die Richtigkeit und Vollständigkeit der auf der Website dargestellten Ansichten. Die Ansichten sind freibleibend und können aus verschiedenen Gründen unzuverlässig geworden sein, unter anderem Änderungen der Marktbedingungen oder der wirtschaftlichen Verhältnisse. Bei allen Anlagen handelt es sich um Risiken einschließlich des Verlustes des Kapitalbetrags. Bevor Sie Investitionsentscheidungen treffen, sollten Sie sich mit einem Anlageberater beraten.


No comments:

Post a Comment