Saturday 4 November 2017

Umsetzung Von Handelsstrategien Für Prognosemodelle


Forecasting Financial Time Series - Teil I In dieser Artikelserie werden wir einen statistisch robusten Prozess zur Prognose von finanziellen Zeitreihen erstellen. Diese Prognosen bilden die Basis für eine Gruppe automatisierter Handelsstrategien. Der erste Artikel der Serie wird den Modellierungsansatz und eine Gruppe von Klassifizierungsalgorithmen diskutieren, die es uns ermöglichen, die Marktrichtung vorherzusagen. Innerhalb dieser Artikel werden wir nutzen scikit-lernen. Eine maschinelle Lernbibliothek für Python. Scikit-Learn enthält Implementierungen vieler maschineller Lerntechniken. Das spart nicht nur das uns sehr viel Zeit, um unsere eigenen bei der Umsetzung, aber es minimiert das Risiko von Fehlern durch unseren eigenen Code eingeführt und ermöglicht eine zusätzliche Verifikation gegen Bibliotheken in anderen Paketen geschrieben, wie R. Das gibt uns viel Wenn wir unsere eigene benutzerdefinierte Implementierung erstellen müssen (aus Gründen der Ausführungsgeschwindigkeit, sagen wir). Prozess für die Prognose Eine detaillierte Erklärung des Feldes der statistischen maschinellen Lernen ist jenseits dieses Artikels. Um Techniken wie Logistische Regression zu nutzen. Lineare Diskriminanzanalyse und Quadratische Diskriminanzanalyse müssen wir einige grundlegende Konzepte skizzieren. Betreute Lerntechniken Betreute Lerntechniken beinhalten eine Reihe von bekannten Tupel (xi, yi), i in, mit xi, die die Vorhersagevariablen (zB verzögerte Aktienmarktrenditen oder Volumen gehandelt werden) und yi repräsentieren die zugehörigen responseobservation Variablen (wie die Lager Marktrückkehr heute). In dieser Situation interessieren wir uns für die Vorhersage. Bei zukünftigen Vorhersagevariablen wollen wir die Antworten dieser Prädiktoren abschätzen. Dies steht im Gegensatz zur Schlussfolgerung, wo wir mehr an der Beziehung zwischen den Variablen interessiert sind. Alle Algorithmen, die wir in diesem Artikel verwenden, zusammen mit vielen anderen, die wir in Zukunft verwenden werden, sind aus der überwachten Lerndomäne. Messung der Vorhersagegenauigkeit Die besondere Klasse von Methoden, die wir interessieren, beinhaltet binäre Klassifizierung. Das heißt, wir werden versuchen, die prozentuale Rendite für einen bestimmten Tag in zwei Buckets zuzuordnen: Up oder Down. In einem Produktionsprognostiker würden wir sehr mit der Größe dieser Vorhersage und den Abweichungen der Vorhersage vom tatsächlichen Wert beschäftigen. In solchen Fällen können wir den Mean-Squared Error nutzen. Mittlerer Absolutabweichungs - und Root-Mean-Squared-Fehler, um eine Schätzung der Prognosegenauigkeit bereitzustellen. Die Literatur bietet zahlreiche weitere Beispiele für die Prognose von Genauigkeitsmaßnahmen. In diesem Fall werden wir uns nur mit der Trefferquote befassen. Was einfach der prozentuale Anteil ist, zu dem der Prognostiker eine genaue Vorhersage erreicht hat (d. h., wenn der Tag ansteht und umgekehrt). In späteren Beispielen werden wir eine Konfusionsmatrix verwenden, um die Vorhersageleistung klassenbasiert zu bestimmen. Darüber hinaus werden wir die oben genannten Werte berechnen und in unseren Handelsforschungsprozess einfließen lassen. Prognosefaktoren Eine Prognosemethode ist nur so gut wie die Faktoren, die als Prädiktoren gewählt werden. Es gibt eine erstaunliche Zahl der möglichen Faktoren, zum von zu wählen, wenn Vorhersage Börse Indexrückkehr. In diesem Artikel werden wir die Faktoren auf Zeitverzögerungen der aktuellen Prozentsatzrenditen beschränken. Dies ist nicht, weil sie die besten Prädiktoren sind, sondern es ist, weil es einfach ist, den Prozess der Prognose auf einem leicht erhalten Dataset zu demonstrieren. Prognose Faktor Wahl ist äußerst wichtig, wenn nicht die wichtigste Komponente des Prognosters. Auch einfache maschinelle Lerntechniken werden gute Ergebnisse auf gut gewählten Faktoren zu produzieren. Beachten Sie, dass die Umkehrung nicht oft der Fall ist. Werfen Sie einen Algorithmus auf ein Problem wird in der Regel zu einer schlechten Prognose Genauigkeit. Für diesen Prognostiker habe ich speziell die ersten und zweiten Zeitverzögerungen der prozentualen Renditen als Prädiktoren für die aktuelle Börsenrichtung gewählt. Dies ist eine relativ willkürliche Wahl und es gibt viel Spielraum für Änderungen, zum Beispiel durch Hinzufügen von zusätzlichen Verzögerungen oder des Volumens der gehandelten Aktien. Es ist im Allgemeinen besser, weniger Prädiktoren in einem Modell zu haben, obwohl es statistische Tests gibt, die die prädiktive Fähigkeit jedes Faktors nachweisen können. Forecasting SampP500 mit logistische Regression, LDA und QDA Der SampP500 ist ein gewichteter Index der 500 größten börsennotierten Unternehmen (nach Marktkapitalisierung) in den US-Aktienmarkt. Es wird oft als Aktien-Benchmark. Viele derivative Produkte existieren, um Spekulationen oder Absicherungen auf dem Index zu ermöglichen. Insbesondere ist der SampP500 E-Mini Index-Futures-Kontrakt ein äußerst liquides Mittel, um den Index zu handeln. In diesem Abschnitt werden wir drei Klassifizierer verwenden, um die Richtung des Schlusskurses am Tag N, basierend auf den am Tag N-1 bekannten Preisinformationen, vorherzusagen. Eine nach oben gerichtete Bewegung bedeutet, dass der Schlusskurs bei N höher ist als der Preis bei N-1, während eine Abwärtsbewegung einen Schlusskurs bei N niedriger als bei N-1 impliziert. Wenn wir die Bewegungsrichtung in einer Weise bestimmen können, die eine 50 Trefferquote mit einem niedrigen Fehler und einer guten statistischen Signifikanz signifikant übersteigt, dann sind wir auf dem Weg zu einer grundlegenden systematischen Handelsstrategie, die auf unseren Prognosen basiert. In diesem Stadium befassten sich nicht mit den modernsten Maschinellen Lernklassifikationsalgorithmen. Im Moment waren nur die Einführung von Konzepten und so gut beginnen die Diskussion über die Prognose mit einigen elementaren Methoden. Logistische Regression Die erste Technik, die wir betrachten, ist logistische Regression (LR). In unserem Fall werden wir LR verwenden, um die Beziehung zwischen einer binär kategorialen abhängigen Variablen (Up oder Down) und mehreren unabhängigen kontinuierlichen Variablen (den verzögerten Prozentsatzrenditen) zu messen. Das Modell liefert die Wahrscheinlichkeit, dass ein bestimmter (nachfolgender) Tag als Up oder Down kategorisiert wird. In dieser Implementierung haben wir gewählt, jeden Tag als Up zuzuweisen, wenn die Wahrscheinlichkeit 0,5 übersteigt. Wir könnten von einer anderen Schwelle Gebrauch machen, aber der Einfachheit halber habe ich 0,5 gewählt. LR verwendet die Logistikformel, um die Wahrscheinlichkeit des Erhaltens eines Aufwärtstags (YU) basierend auf den Lagfaktoren (L1, L2) zu modellieren: Die logistische Funktion wird verwendet, weil sie eine Wahrscheinlichkeit zwischen 0,1 für alle Werte von L1 und L2 liefert, Im Gegensatz zu einer linearen Regression, bei der negative Wahrscheinlichkeiten in derselben Einstellung erzeugt werden können. Um das Modell anzupassen (d. H. Die Beta-Koeffizienten zu schätzen), wird das Maximum-Likelihood-Verfahren verwendet. Zum Glück für uns wird die Implementierung der Anpassung und Vorhersage des LR-Modells von der scikit-learn-Bibliothek übernommen. Lineare Diskriminanzanalyse Die nächste verwendete Methode ist die lineare Diskriminanzanalyse (LDA). LDA unterscheidet sich von LR in, weil in LR Modell P (YUL1, L2) als eine bedingte Verteilung der Antwort Y bei den Prädiktoren Li unter Verwendung einer logistischen Funktion modelliert wird. In LDA wird die Verteilung der Li-Variablen separat modelliert, wenn Y gegeben wird und P (YUL1, L2) über den Bayes-Satz erhalten wird. Im Wesentlichen geht LDA davon aus, dass Prädiktoren aus einer multivariaten Gaußschen Verteilung gezogen werden. Nach Berechnen von Schätzungen für die Parameter dieser Verteilung können die Parameter in den Bayes-Theorem eingegeben werden, um Vorhersagen darüber zu treffen, zu welcher Klasse eine Beobachtung gehört. LDA geht davon aus, dass alle Klassen die gleiche Kovarianzmatrix haben. Ich werde nicht auf die Formeln für die Schätzung der Verteilung oder posterior Wahrscheinlichkeiten, die benötigt werden, um Vorhersagen, wie noch einmal scikit-lernen behandelt dies für uns. Quadratische Diskriminanzanalyse Quadratische Diskriminanzanalyse (QDA) ist eng mit LDA verwandt. Der wesentliche Unterschied besteht darin, dass jede Klasse nun eine eigene Kovarianzmatrix besitzen kann. QDA führt im Allgemeinen besser, wenn die Entscheidungsgrenzen nicht-linear sind. LDA führt im Allgemeinen besser, wenn es weniger Trainingsbeobachtungen gibt (d. H. Wenn es erforderlich ist, die Varianz zu verringern). QDA auf der anderen Seite führt gut aus, wenn das Trainingsset groß ist (d. H. Die Varianz ist weniger von Interesse). Die Verwendung der einen oder anderen letztlich kommt auf die Bias-Varianz-Trade-off. Wie bei LR und LDA kümmert sich scikit-learn um die QDA-Implementierung, so dass wir nur Trainingsdaten für die Parameterschätzung und - vorhersage benötigen. Python Implementation Für die Umsetzung dieser Prognostiker werden wir von NumPy Gebrauch machen. Pandas und Scikit-lernen. Ive vorher ein Tutorial geschrieben, wie man diese Bibliotheken anbringt. Ive stark kommentierte den Code selbst, so sollte es einfach sein, festzustellen, was geschieht. Der erste Schritt besteht darin, die entsprechenden Module und Bibliotheken zu importieren. Waren die LogisticRegression importieren. LDA - und QDA-Klassifikatoren für diesen Prognostiker: Nachdem die Bibliotheken importiert wurden, müssen wir ein Pandas DataFrame erstellen, das die verzögerten Prozentsätze für eine vorherige Anzahl von Tagen enthält (standardmäßig auf fünf). Createlaggedseries wird ein Lager-Symbol (wie von Yahoo Finanzen erkannt) und erstellen Sie eine verzögerte DataFrame über den angegebenen Zeitraum: Die nächste Helferfunktion ist entworfen, um eine prozentuale Hitrate für jedes Modell, durch die Beseitigung von duplizierten Code zu erstellen. Es beruht auf der Tatsache, dass die logistischen Regression, LDA und QDA-Objekte haben die gleichen Methoden (passen und vorherzusagen). Die Trefferquote wird an das Terminal ausgegeben: Schließlich binden wir es zusammen mit einer Hauptfunktion. In diesem Fall wurde versucht, die US-Aktienmarkt-Richtung im Jahr 2005 mit Rückkehrdaten von 2001 bis 2004 zu prognostizieren: Die Ausgabe des Codes ist wie folgt: Es ist ersichtlich, dass die logistische Regression und der lineare Diskriminanzanalysator beide in der Lage waren Gewinnen eine 56 Trefferquote. Der quadratische Diskriminanzanalysator war jedoch in der Lage, beide zu verbessern, um eine 60 Trefferrate zu erzeugen. Für den bestimmten analysierten Zeitraum ist dies wahrscheinlich aufgrund der Tatsache, dass es eine gewisse Nichtlinearität in der Beziehung zwischen den verzögerten Faktoren und der Richtung gibt, die in der linearen Analyse nicht gut erfasst ist. So gibt es Hoffnung, dass wir vielleicht in der Lage, die US-Aktienmarkt vorherzusagen. Es gibt ein paar Einschränkungen für diese Prognosemethode: Wir haben keine Form der Kreuzvalidierung verwendet, um Anpassungsfehler zu reduzieren. Ein Produktionsprognostiker würde eine solche Analyse als robust erachten. Der Prognostiker wurde nur auf Daten zwischen 2001-2004 einschließlich geschult. Neuere Aktienmarktdaten können eine wesentlich andere Prädiktionsgenauigkeit aufweisen. Wir haben tatsächlich versucht, diese Informationen auszutauschen. Insbesondere, wie würden wir tatsächlich handeln. Würden wir die US-e-mini Zukunft nutzen Wir würden von Market-On-Open (MOO) oder Market-On-Close (MOC) Bestellungen Gebrauch machen Wir müssten auch Transaktionskosten berücksichtigen. In den folgenden Artikeln werden wir diese Fragen ausführlicher behandeln. Eine Warnung zur zufälligen Prognose In diesem Abschnitt möchte ich das Problem der statistischen Signifikanz im Umgang mit Prognostikern deutlich hervorheben. Zusätzlich zu dem oben beschriebenen Prognosemodell habe ich auch eine Prognosereihe erstellt, die ausschließlich auf dem Vorzeichen von Zufallszahlen aus einer Normalnormalverteilung basiert. Beachten Sie, dass im selben Zeitraum hat es eine Prognose Hit-Rate von 53,4 produziert und doch die Methode verwendet, um die Serie zu generieren ist im Wesentlichen nicht anders als das Werfen einer Münze Beachten Sie dies, wenn Sie die Durchführung von Prognoseverfahren, wie es oft zu düster führen kann Wenn nicht berücksichtigt. In den folgenden Artikeln betrachten wir erweiterte überwachte nichtlineare Vorhersageklassifizierer wie künstliche neuronale Netze (ANN) und Unterstützungsvektormaschinen (SVM). Mit einem stabilen maschinellen Lernverfahren werden wir dann in der Lage sein, Ensemble-Methoden zu nutzen, um eine Prognosegenauigkeit und Robustheit zu erzeugen, die manchmal die eines einzelnen Prognostikers übersteigen können. ARIMAGARCH Handelsstrategie auf dem SampP500 Börsenindex unter Verwendung von R In Diesem Artikel möchte ich Ihnen zeigen, wie die Anwendung aller der gewonnenen Erkenntnisse in der Vergangenheit Zeitreihe Analyse Beiträge zu einer Handelsstrategie auf dem SampP500 US-Aktienmarkt-Index. Wir werden sehen, dass wir durch die Kombination der ARIMA - und GARCH-Modelle langfristig einen Buy-and-Hold-Ansatz deutlich übertreffen können. Strategie-Überblick Die Idee der Strategie ist relativ einfach, aber wenn du mit ihm experimentieren willst, schlage ich vor, die vorherigen Beiträge auf Zeitreihenanalyse zu lesen, um zu verstehen, was du ändern würdest. Die Strategie wird auf einer rollenden Basis durchgeführt: Für jedes Tag, n werden die vorangegangenen k Tage der differenzierten logarithmischen Renditen eines Börsenindex als Fenster für die Anpassung eines optimalen ARIMA - und GARCH-Modells verwendet. Das kombinierte Modell wird verwendet, um eine Vorhersage für den nächsten Tag Rückkehr zu machen. Wenn die Vorhersage negativ ist, wird die Aktie beim vorigen Schließen kurzgeschlossen, wenn sie positiv ist, ist sie sehnlich. Wenn die Vorhersage die gleiche Richtung wie der Vortag ist, dann wird nichts geändert. Für diese Strategie habe ich die maximal verfügbaren Daten von Yahoo Finance für den SampP500 verwendet. Ich habe k500 genommen, aber dies ist ein Parameter, der optimiert werden kann, um die Leistung zu verbessern oder reduzieren Drawdown. Der Backtest wird in einer geradlinigen vektorisierten Weise unter Verwendung von R ausgeführt. Es wurde nicht in dem Python-Ereignis-getriebenen Backtester implementiert. Daher würde die Performance, die in einem echten Handelssystem erzielt wird, wahrscheinlich etwas geringer sein, als Sie hier erreichen könnten, aufgrund von Provisionen und Schlupf. Strategie Umsetzung Zur Umsetzung der Strategie werden wir einige der Code, den wir zuvor in der Zeitreihe Analyse Artikel-Serie sowie einige neue Bibliotheken einschließlich Rugarch erstellt haben. Die mir von Ilya Kipnis bei QuantStrat Trader vorgeschlagen wurde. Ich gehe die Syntax Schritt für Schritt durch und präsentiere dann die vollständige Implementierung am Ende sowie einen Link zu meinem Datensatz für den ARIMAGARCH-Indikator. Ive eingeschlossen das Letztere, weil es mich ein paar Tage auf meinem dekstop PC genommen hat, um die Signale zu erzeugen Sie sollten in der Lage sein, meine Resultate in der Gesamtheit zu replizieren, da der Code selbst nicht zu komplex ist, obwohl es einige Zeit dauert, zu simulieren, wenn Sie Führen Sie es in voller Höhe. Die erste Aufgabe besteht darin, die notwendigen Bibliotheken in R zu installieren und zu importieren: Wenn Sie bereits die Bibliotheken installiert haben, können Sie sie einfach importieren: Damit werden die Strategien für den SampP500 angewendet. Wir können quantmod verwenden, um Daten ab 1950 für den Index zu erhalten. Yahoo Finance nutzt das Symbol GPSC. Wir können dann die differenzierten logarithmischen Renditen des Schlusskurses des SampP500 erstellen und den anfänglichen NA-Wert ausstreifen: Wir müssen einen Vektor erstellen, um die Prognosewerte zu bestimmten Terminen zu speichern. Wir setzen die Länge foreLength gleich der Länge der Handelsdaten, die wir minus k haben, die Fensterlänge: In diesem Stadium müssen wir jeden Tag in den Handelsdaten durchlaufen und ein passendes ARIMA - und GARCH-Modell in das rollende Fenster von Länge k. Angesichts der Tatsache, dass wir versuchen, 24 separate ARIMA passt und passen ein GARCH-Modell, für jeden Tag kann die Indikator kann eine lange Zeit zu generieren. Wir verwenden den Index d als Schleifenvariable und Schleife von k auf die Länge der Handelsdaten: Wir erstellen dann das Rollfenster, indem wir die SampP500-Renditen nehmen und die Werte zwischen 1d und kd wählen, wobei k500 für diese Strategie: Wir verwenden die Dieselbe Prozedur wie im ARIMA-Artikel, um alle ARMA-Modelle mit p in und q in, mit Ausnahme von p, q0, zu durchsuchen. Wir wickeln den arimaFit-Aufruf in einem R tryCatch-Ausnahmebehandlungsblock um sicherzustellen, dass, wenn wir keine Anpassung für einen bestimmten Wert von p und q erhalten, wir ihn ignorieren und zur nächsten Kombination von p und q übergehen. Beachten Sie, dass wir den integrierten Wert von d0 setzen (dies ist ein anderer d zu unserem Indexierungsparameter) und als solche passen wir wirklich zu einem ARMA-Modell. Eher als ein ARIMA. Das Looping-Verfahren wird uns das am besten passende ARMA-Modell im Sinne des Akaike-Informationskriteriums liefern, das wir dann für unser GARCH-Modell einsetzen können: Im nächsten Codeblock werden wir die Rugarch-Bibliothek verwenden GARCH (1,1) - Modell. Die Syntax dafür erfordert, dass wir ein ugarchspec Spezifikationsobjekt aufbauen, das ein Modell für die Varianz und den Mittelwert annimmt. Die Varianz empfängt das GARCH (1,1) - Modell, während der Mittelwert ein ARMA (p, q) - Modell annimmt, wobei p und q oben gewählt sind. Wir wählen auch die gesendete Verteilung für die Fehler. Sobald wir die Spezifikation ausgewählt haben, führen wir die eigentliche Anpassung von ARMAGARCH mit dem Befehl ugarchfit aus, der das Spezifikationsobjekt, die k Rückkehr des SampP500 und einen numerischen Optimierungslöser übernimmt. Wir haben uns für Hybrid entschieden. Die verschiedene Löser versucht, um die Wahrscheinlichkeit der Konvergenz zu erhöhen: Wenn das GARCH-Modell nicht konvergiert, dann setzen wir einfach den Tag, um eine lange Vorhersage zu erzeugen, was eindeutig eine Vermutung ist. Wenn jedoch das Modell konvergiert, geben wir die Datums - und Morgenvorhersagerichtung (1 oder -1) als String aus, an welchem ​​Punkt die Schleife geschlossen ist. Um die Ausgabe für die CSV-Datei vorzubereiten, habe ich einen String erstellt, der die Daten durch ein Komma getrennt mit der Prognose-Richtung für den folgenden Tag enthält: Der vorletzte Schritt ist die Ausgabe der CSV-Datei auf den Datenträger. Dies ermöglicht es uns, die Indikator zu nehmen und es in alternative Backtesting-Software für die weitere Analyse verwenden, wenn dies gewünscht: Es gibt jedoch ein kleines Problem mit der CSV-Datei, wie es jetzt steht. Die Datei enthält eine Liste von Daten und eine Vorhersage für die Richtung von morgen. Wenn wir diese in den darunter liegenden Backtest-Code laden würden, würden wir tatsächlich eine Vorausschau-Bias einführen, da der Vorhersagewert Daten darstellen würde, die zum Zeitpunkt der Vorhersage nicht bekannt waren. Um dies zu berücksichtigen, müssen wir einfach den vorhergesagten Wert um einen Tag verschieben. Ich habe dies mit Python einfacher gefunden. Da ich nicht annehmen möchte, dass du irgendwelche speziellen Bibliotheken (wie Pandas) installiert hast, hielt Ive es zu reinem Python. Hier ist das kurze Skript, das dieses Verfahren ausführt. Stellen Sie sicher, dass es im gleichen Verzeichnis wie die Datei "forecasts. csv" ausgeführt wird: An dieser Stelle haben wir nun die korrigierte Indikatordatei, die in forecastsnew. csv gespeichert ist. Da dies eine beträchtliche Menge an Zeit zur Berechnung benötigt, stellte Ive die vollständige Datei hier zur Verfügung, damit Sie sich herunterladen können: Strategieergebnisse Nachdem wir unsere CSV-Indikator-Datei generiert haben, müssen wir ihre Performance mit Buy amp Hold vergleichen. Zuerst lesen wir das Kennzeichen aus der CSV-Datei und speichern es als spArimaGarch: Wir erstellen dann einen Schnittpunkt der Daten für die ARIMAGARCH-Prognosen und den ursprünglichen Satz von Renditen aus dem SampP500. Wir können dann die Rendite für die ARIMAGARCH-Strategie berechnen, indem wir das Prognosezeichen (oder -) mit der Rendite selbst multiplizieren: Wenn wir die Renditen aus der ARIMAGARCH-Strategie haben, können wir Eigenkapitalkurven sowohl für das ARIMAGARCH-Modell als auch für Buy amp Hold erstellen. Schließlich kombinieren wir sie zu einer einzigen Datenstruktur: Schließlich können wir den Xyplot-Befehl verwenden, um beide Eigenkapitalkurven auf demselben Grundstück darzustellen: Die Eigenkapitalkurve bis zum 6. Oktober 2015 ist wie folgt: Wie Sie sehen können, über 65 Jahre Periode hat die ARIMAGARCH-Strategie den Buy amp Hold deutlich übertroffen. Allerdings können Sie auch sehen, dass die Mehrheit der Gewinn zwischen 1970 und 1980. Beachten Sie, dass die Volatilität der Kurve ist sehr minimal, bis die frühen 80er Jahre, an welcher Stelle die Volatilität deutlich erhöht und die durchschnittlichen Renditen sind weniger beeindruckend. Die Eigenkapitalkurve verspricht für die gesamte Periode eine sehr gute Performance. Allerdings wäre diese Strategie wirklich handelbar Zunächst einmal können wir die Tatsache, dass die ARMA-Modell wurde nur im Jahr 1951 veröffentlicht. Es war nicht wirklich weit verbreitet, bis die 1970er Jahre, wenn Box amp Jenkins diskutiert es in ihrem Buch. Zweitens wurde das ARCH-Modell bis Anfang der 80er Jahre von Engle nicht entdeckt und GARCH selbst wurde 1986 von Bollerslev veröffentlicht. Drittens wurde dieser Backtest tatsächlich an einem Börsenindex durchgeführt und ist kein physisch handelbares Instrument. Um Zugang zu einem solchen Index zu erhalten, wäre es notwendig gewesen, SampP500-Futures oder einen replizierten Exchange Traded Fund (ETF) wie SPDR zu handeln. Daher ist es wirklich so angebracht, solche Modelle auf eine historische Serie vor ihrer Erfindung anzuwenden. Eine Alternative ist, die Anwendung der Modelle auf neuere Daten zu beginnen. In der Tat können wir die Performance in den letzten zehn Jahren betrachten, vom 1. Januar 2005 bis heute: Wie Sie sehen können, die Equity-Kurve bleibt unter einem Buy amp Hold Strategie für fast 3 Jahre, aber während der Börsencrash von 20082009 es tut Außerordentlich gut. Dies macht Sinn, weil es wahrscheinlich ist, eine signifikante serielle Korrelation in diesem Zeitraum und es wird gut durch die ARIMA und GARCH Modelle erfasst werden. Sobald sich der Markt nach dem Jahr 2009 wieder erholt hat und in den scheinbar stochastischeren Trend eintritt, beginnt die Modellleistung wieder zu leiden. Beachten Sie, dass diese Strategie leicht auf verschiedene Börsenindizes, Aktien oder andere Anlageklassen angewendet werden kann. Ich ermutige Sie dringend, die Erforschung anderer Instrumente auszuprobieren, da Sie wesentliche Verbesserungen der hier präsentierten Ergebnisse erhalten können. Nächste Schritte Nachdem wir nun über die ARIMA - und GARCH-Modellfamilie diskutiert haben, möchte ich die Analyse der Zeitreihenanalyse fortsetzen, indem ich Langzeitgedächtnisprozesse, Zustandsraummodelle und kointegrierte Zeitreihen betrachte. Diese nachfolgenden Bereiche der Zeitreihen werden uns Modelle vorstellen, die unsere Prognosen über jene Ive, die hier vorgestellt werden, verbessern können, die unsere Handelsergeb - nisse signifikant erhöhen und Risiken reduzieren werden. Hier ist die vollständige Liste für die Indikatorgenerierung, Backtesting und Plotten: Und der Python-Code auf Prognosen. csv vor dem Reimporting gelten: Implementierung von Handelsstrategien für die Prognose Modelle Zitate Zitate 6 Referenzen Referenzen 7 quotIt wurde seitdem in vielen Studien zur Vorhersage der verwendet Tay und Cao, 2001 Kim, 2003 Huang et al., 2005 Chen und Shih, 2006). Für die Prognose der Finanzmärkte wurde eine Vielzahl anderer maschineller Lernansätze eingesetzt, darunter das Verstärkungslernen (O et al. 2006), das evolutionäre Bootstrapping (Lebaron, 1998) und die prinzipielle Komponentenanalyse (Towers und Burgess, 1999). Obwohl viele dieser Studien zeigen, dass sie ihre Benchmarks übertreffen, haben wir festgestellt, dass die meisten Ansätze große Drawdowns 2 in Gewinnen zeigen und großes und exzessives Schaltverhalten, das zu sehr hohen Transaktionskosten führt. Zusammenfassung Zusammenfassung Abstrakte Zusammenfassung ABSTRAKT: Saisonale Effekte und empirische Regelmäßigkeiten in finanziellen Daten wurden gut in der Finanzwirtschaft Literatur für mehr als sieben Jahrzehnten dokumentiert. Dieses Papier schlägt ein Expertensystem vor, das neuartige maschinelle Lerntechniken einsetzt, um die Preisrückkehr über diesen Saisonereignissen vorherzusagen, und verwendet dann diese Vorhersagen, um eine rentable Handelstrategie zu entwickeln. Während einfache Ansätze für den Handel mit diesen Regelmässigkeiten sich als rentabel erweisen können, führt ein solcher Handel zu potenziellen großen Verlusten (Spitzen - bis Tiefstand einer Investition, gemessen als Prozentsatz zwischen dem Spitzenwert und dem Tiefstand) im Ergebnis. In dieser Arbeit stellen wir ein automatisiertes Handelssystem vor, das auf leistungsgewichteten Ensembles von zufälligen Wäldern basiert, die die Rentabilität und Stabilität der jahreszeitlichen Ereignisse im Handel verbessern. Eine Analyse der verschiedenen Regressionstechniken wird durchgeführt, sowie eine Erforschung der Verdienste der verschiedenen Techniken für Experten Gewichtung. Die Performance der Modelle wird mit einer großen Stichprobe des DAX analysiert. Die Ergebnisse zeigen, dass recency-gewichtet Ensembles von zufälligen Wäldern überlegene Ergebnisse in Bezug auf die Rentabilität und Vorhersage Genauigkeit im Vergleich zu anderen Ensemble-Techniken. Es wird auch festgestellt, dass die Verwendung von Saisonalitätseffekten überlegene Ergebnisse liefert, als sie nicht explizit modelliert zu haben. Volltext-Artikel Juni 2014 Ash Booth Enrico Gerding Frank McGroarty quotLeBaron 47 angewendet bootstrapping auf Arbitrage-Chancen auf dem Devisenmarkt zu erfassen, und dann ein neuronales Netzwerk, wo seine Netzwerk-Architektur wurde durch einen evolutionären Prozess bestimmt. Schließlich nutzten Towers und Burgess 62 hauptsächlich Komponenten, um Arbitragemöglichkeiten zu erfassen. ZUSAMMENFASSUNG: Wir schlagen ein automatisches Handelssystem mit mehreren Beständen vor, das auf einer mehrschichtigen Struktur beruht, die aus einem maschinellen Lernalgorithmus, einem Online-Lernprogramm und einem Risikomanagement-Overlay besteht. Alternativer Entscheidungsbaum (ADT), der mit Logitboost implementiert wird, wurde als der zugrunde liegende Algorithmus gewählt. Eine der Stärken unseres Ansatzes ist, dass der Algorithmus in der Lage ist, die beste Kombination von Regeln auszuwählen, die aus bekannten technischen Analyseindikatoren abgeleitet werden, und ist auch in der Lage, die besten Parameter der technischen Indikatoren auszuwählen. Zusätzlich kombiniert die Online-Lernschicht die Ausgabe von mehreren ADTs und schlägt eine kurze oder lange Position vor. Schließlich kann die Risikomanagement-Schicht das Handelssignal validieren, wenn sie einen festgelegten Schwellenwert ungleich Null überschreitet und die Anwendung unserer Handelsstrategie begrenzt, wenn sie nicht rentabel ist. Wir testen den Expertengewichtungsalgorithmus mit Daten von 100 zufällig ausgewählten Unternehmen des SampP 500 Index im Zeitraum 2003-2005. Wir finden, dass dieser Algorithmus abnormale Renditen während der Testperiode erzeugt. Unsere Experimente zeigen, dass der Boosting-Ansatz in der Lage ist, die prädiktive Kapazität zu verbessern, wenn Indikatoren kombiniert und als ein einzelner Prädiktor zusammengefasst werden. Darüber hinaus zeigte die Kombination von Indikatoren verschiedener Bestände als ausreichend, um die Verwendung von Rechenressourcen zu reduzieren und dennoch eine angemessene Vorhersagekapazität aufrechtzuerhalten. Artikel Apr 2010 Deutsche Creamer Yoav Freund

No comments:

Post a Comment