Zeit Series Trading Strategies


Zeitreihenanalyse und Statistisches Arbitrage G63.2707, Herbst 2009 Wie analysieren wir historische Finanzdaten, um rentable und risikoarme Handelsstrategien zu entwickeln Dieser Kurs ist eine Einführung in die Zeitreihenanalyse, wie er in der Finanzwirtschaft verwendet wird, und Handelsstrategien, Seite und Sell-Side-Marktteilnehmer. Der Kurs wird grob in drei Teile unterteilt: Lineare Modelle: AR und MA für Skalar - und Vektorprozesse sowie einfache Volatilitäts - und Kovarianzschätzungen. Modellauswertung und Restanalyse. Kointegration und ihre Anwendung in der Risikomodellierung und Paarhandelsstrategien. Nichtlineare Modelle: ARCH, GARCH und allgemeinere Volatilitätsmodelle. Anwendungen: Marktmikrostruktur, Transaktionskostenmodellierung und optimale Handelsstrategien für Agentur - und Haupthandel. Instructors Lin Li, ll1084 at nyu Voraussetzungen Der Kurs richtet sich an Studierende des zweiten Studienjahres im Courant Institute MS-Programm für Mathematik in Finance. Von den Studierenden wird erwartet, dass sie eine exzellente Basis in der Finanzmathematik (Stochastische Kalkül und PDEs), einen vernünftigen Hintergrund in der Finanzierung (Portfolio-Theorie und Risikomanagement) und in der EDV, aber nicht unbedingt eine intensive Statistikkenntnis haben. Studierende mit vergleichbarer Vorbereitung können sich einschreiben, wenn Platz vorhanden ist. Etwa 5 Hausaufgaben (insgesamt 40), ein Quiz (30) und ein abschließendes Projekt (30). Referenzen Wir haben ein Klassenkonto bei Wharton Research Data Services. Anmeldeinformationen werden in der Klasse angegeben. Carol Alexander, Marktmodelle. James D. Hamilton, Zeitreihenanalyse, Princeton University Press 1994. Joel Hasbrouck, Empirical Market Microstructure, Oxford University Press 2006 (mehr Infos auf der Hasbroucks Seite). Stephen J. Taylor, Asset Price Dynamics, Volatility und Prediction, Princeton University Press 2005. Ruey S. Tsay, Analyse der finanziellen Zeitreihen, 2. Auflage, Wiley 2005. Forschungsartikel werden bei Bedarf zur Verfügung gestellt. Montag Abend, 7:10 bis 9 PM in Silber 713, vom 14. September bis 7. oder 14. Dezember. (Es gibt keine Columbus Day Urlaub in diesem Jahr.) Der Zeitplan und der Umriss unten sind abhängig von der Art des Kurses Entwickelt, und auf die Lehrer Reiseforderungen. Forecasting Financial Time Series - Teil I In dieser Serie von Artikeln werden wir ein statistisch robustes Verfahren für die Prognose von finanziellen Zeitreihen zu schaffen. Diese Prognosen bilden die Grundlage 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. Dies erspart uns nicht nur viel Zeit in der Implementierung unserer eigenen, sondern minimiert das Risiko von Bugs, die durch unseren eigenen Code eingeführt werden, und ermöglicht eine zusätzliche Überprüfung gegen Bibliotheken, die in anderen Paketen wie R geschrieben sind. Das gibt uns sehr 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. Betrachtete Lerntechniken Die überwachten Lerntechniken beinhalten eine Menge bekannter Tupel (xi, yi), i in, wobei xi die Prädiktorvariablen repräsentiert (z. B. verzögerte Aktienrenditen oder gehandeltes Volumen) und yi, die die zugehörigen Antwort - / Beobachtungsvariablen darstellen (wie z Die Börsenrendite 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 Absolutabweichung 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 Prozeß der Prognose auf einem leicht erhaltenen Datensatz 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. Prognose von SampP500 mit logistischer Regression, LDA und QDA Der SampP500 ist ein gewichteter Index der 500 größten börsennotierten Unternehmen (nach Marktkapitalisierung) am 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 Trainings - / Testdaten zur Parameterschätzung und Vorhersage anbieten müssen. 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 Trefferquote 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 einer stabilen maschinellen Lerntechniken, die wir zur Verfügung haben, werden wir dann in der Lage sein, nutzen Ensemble-Methoden, um eine Prognose Genauigkeit und Robustheit, die manchmal übersteigen können, die von jedem einzelnen prognostizieren. Backtesting einer Trading-Strategie I8217ve bestellt Zeitreihenanalyse und ihre Anwendungen : Mit R-Beispielen (Springer-Texte in Statistik), um mir die Zeitreihen in der R-Lernkurve zu helfen. Soweit, was ich gesehen habe, sieht es gut aus. Der Autor hat eine gute Seite mit den Themen in R und Zeitreihen. Das Buch sollte bis Ende der Woche ankommen. In der Zwischenzeit stieß ich auf eine Handelsstrategie beim Lesen eines Artikels auf John Mauldin8217s 8220Over My Shoulder8221 Service (was ich sehr empfehlen). Der Grund dafür war, dass in der Bären-Markt, die mit dem Tech-Blase Crash begann, eine Strategie der Wetten auf die mittlere Reversion des SampP500 generiert erhebliche Renditen. Natürlich wollte ich testen. Bitte beachten Sie, ich empfehle nichts, was folgt. Machen Sie Ihre Hausaufgaben und sprechen Sie mit einem Investment-Profi, wenn Sie Fragen haben. Die Strategie ist, den SampP500 lange zu gehen, wenn der Markt in den letzten 3 Tagen maximal schließt. Umkehren Sie den Handel und gehen Sie lange, wenn der Markt schließt auf das Minimum in den letzten 3 Tagen. ETFs machen diese Strategie relativ einfach zu handeln. SPY wird unser Fahrzeug sein lange die SampP500 für Sein und SH wird unser Fahrzeug kurz für gehen. Die SH begann den Handel am 21.06.2006. Wir fokussieren unser Backtesting bis dahin. Mit der importSeries () - Funktion, die wir zuvor erstellt haben, erhalten Sie alle Werte für SPY und SH. Spion importSeries (8220spy8221, toto, fromfrom) sh importSeries (8220sh8221, toto, fromfrom) Serie merge (Spion, sh), c (8220spy. Open8221. 8220spy. Close8221. 8220spy. Return8221. 8220sh. Open8221. 8220sh. Close8221. 8220sh. Return8221) Wir brauchen ein paar zusätzliche Zeitreihen zu erstellen Lange zu halten / Short Flag 8212 lässt uns den aktuellen Stand unserer Bestände kennen. Die Handelsmarke 8212 signalisiert, dass wir an diesem Datum einen Handel eingeleitet haben. Strat. Returns 8212 nominal Rückkehr für den Tag mit der Strategie. Dollar-Betrag 8212 ein Brutto-Dollar-Wert des Portfolios auf einen 10.000 Dollar-Wert auf 2006.06.21 und eine 2 Transaktionsgebühr annimmt, wenn wir handeln. Nachdem wir die Strategie berechnet haben, erstellen wir auch eine Brutto-Return-Serie aus der Dollar-Betragsserie. f-Funktion (x) 0 x ls fapply (Serie. 1, FÜNF) So scheint es etwas zu dieser Strategie zu sein. Die jährlichen Rendite - und CAPM-Tabellen liegen in der Nähe der Summe. Einige Jahre sind besser als andere. Ich werde es Ihnen überlassen, sie zu erschaffen und zu studieren (meistens um hier Platz zu sparen). Es gibt Dinge zu denken: Es sollte beachtet werden, dass diese Strategie nicht effizient besteuern 8212 alle Gewinne werden auf der kurzfristige Kapitalgewinne besteuert werden. Es gab 411 Trades. Ein Handel beinhaltet Kauf und Verkauf, so 822 mal würden Sie eine Maklergebühr erhoben werden. Ich nahm 1 Dollar pro Kauf / Verkauf 8212 an, was durch interaktive Vermittler aufgeladen wird. Mit jemandem wie TD Ameritrade kosten würde FAR mehr. Dies geht auch davon aus, dass Sie zum Marktschlusskurs kaufen und verkaufen können. Etwas, das möglich ist, aber Schlupf auftreten wird. Verpassen Sie kein Update Abonnieren Sie R-bloggers um E-mails mit den letzten R Beiträgen zu erhalten. (Diese Meldung wird nicht mehr angezeigt.)

Comments