Friday 27 January 2017

Pca Handelsstrategien

Ive wurde mit der Erforschung von Handelsstrategien in Bezug auf PCA zu handelnde festverzinsliche Futures-Instrumente beauftragt. Anscheinend wird PCA häufig in diesem Bereich verwendet. Im nur auf der Suche nach einigen Referenzen für den Erhalt einer grundlegenden Idee, wie eine Strategie aussehen könnte. Im nicht auf der Suche nach einer Gewinnstrategie - nur eine Skizze, wie PCA könnte nützlich sein, in der Erzeugung von Handelssignalen. Ich verstehe die Mathematik hinter PCA und habe es in anderen Bereichen verwendet, aber seine Anwendungen für die Finanzierung sind neu für mich. Eines der besten Stücke jemals zu diesem Thema geschrieben ist Salomons Principles of Principal Components, die leicht im Internet verfügbar ist. Ich gehe nicht in die Details, da diese Arbeit ist lächerlich umfassend, aber die grundlegende Idee ist einfach - wenn Sie eine PCA basierend auf Erträgen, die ersten drei Komponenten erfassen die meisten der Varianzen, mit den drei Faktoren grob interpretiert als Ebene , Steilheit und Krümmung der Kurve. Die am häufigsten verwendete Anwendung für PCA ist der Schmetterlingshandel (z. B. Sie können den TY Vertrag gegen FV und WN kaufen oder Sie können EDZ6 gegen EDZ5 und EDZ4 kaufen). PCA erlaubt es Ihnen, die benötigten Risikogewichte zu berechnen, so dass die Strukturen für die ersten beiden Hauptkomponenten neutral sind. Dies ermöglicht es Ihnen, sich auf den Handel der Krümmung der Zinsstrukturkurve zu konzentrieren, ohne das Risiko von Risiken zu vermeiden. Es ist eine empirische Beobachtung, aber sehr viel ein Ergebnis, wie die Zinskurve gehandelt wird, verhält sich amp. Wenn zerlegen Bindung Portfolio Renditen über lange Horizonte, you39ll fast immer feststellen, dass die Dauer (d. H. Ertragsniveau) ist ziemlich der einzige wichtigste Faktor ist es auch, was die Leute über die meisten reden (10-Jahres-Rendite hat BLAH heutequot). Slope ist definitiv das nächste Ding, das auf Menschen den Geist (quotThe Renditekurve bull flattenedbear steepenedetc heute). Krümmung ist fast nie in der Presse erwähnt, und ist in der Tat ein viel kleiner Faktor beim Fahren täglich Zinskurven Bewegungen. Ndash Helin Gai Jan 6 15 um 21: 22Sie haben ein multifaktorielles Modell, das als Input von 10 20 exogen schwachen stationären Variablen dient. Dann können Sie PCA verwenden, um nur 3 4 orthogonale Variablen zu erhalten, um Ihr Modell zu vereinfachen, ohne zu viele Informationen zu verlieren (es vielleicht zuerst 3 4 Hauptkomponenten erklären mehr als 90 der 10 20 ursprünglichen Variablen39 Gesamtabweichung). Zum Beispiel, technische Händler oft viel t. a. Indikatoren wie MACD, RSI, stochastische und so weiter: Es ist wahrscheinlich, dass die erste Hauptkomponente dieser Indikatoren mehr als 95 aller Indikatoren39 Varianz erklärt. Ndash Lisa Ann Mai 2 13 at 9:54 Um Ihre Fragen zu beantworten, müssen wir einen Blick darauf werfen, was es tut. PCA wird mathematisch als orthogonale lineare Transformation definiert, die die Daten in ein neues Koordinatensystem umwandelt, sodass Nachrichtenvektoren Orthogonale sind und den Hauptteil der Varianz des ersten Satzes erläutern. Es nahmen eine N x M Matrix als Eingabe, N die differents Wiederholung des Experiments und M die Ergebnisse einer bestimmten Sonde. Es gibt Ihnen Anweisungen (oder Hauptkomponenten), die die Varianz Ihres Datasets erklären. So hängt alles davon ab, was Sie in Ihrem PCA eingeben. Ich verwende PCA, um auf Marktkorrelation zu schauen, also nehme ich M Preise über N Mal ein. Sie können Unterschiede messen (greeks, Futures.) Eines einzelnen Aktien eingeben, um einen Blick auf seine Dynamik. Meine Verwendung wird die Korrelation eines Aktienkurses mit dem Markt, bekannt als beta geben, wird die andere Verwendung Korrelation zwischen den verschiedenen technischen Indikatoren einer Aktie geben. Und gut ich denke, Sie können einige interessante Ergebnisse mit differents Indikatoren über differents Aktien zu bekommen. Vergessen Sie nicht über die Vorverarbeitung. Wie Sie hier sehen können: Datensynchronisation gibt es einige heikle Probleme mit Marktdaten. Es hängt auch davon ab, was Sie mit Ihren Ergebnissen tun. Sie können ein Kriterium verwenden, um Komponenten mit geringer Varianz zu entfernen, um die Dimension Ihres Datasets zu reduzieren. Dies ist das übliche Ziel von PCA. Es gibt Ihnen eine reduzierte Anzahl von Aktien zu einem Portfolio zu bauen, um profitrisk Kurven zu schätzen. Aber Sie können auch komplexere Nachbehandlung. Hier: th-if. uj. edu. plactavol36pdfv36p2767.pdf Sie sehen eine Verwendung von PCA kombiniert mit zufälligen Matrix-Theorie, um das Rauschen des Marktes zu entfernen. PCA ist ein Werkzeug, ein sehr leistungsfähiges Werkzeug, aber nur ein Werkzeug. Ihre Ergebnisse hängt davon ab, wie Sie es verwenden. Das Risiko besteht darin, es zu viel zu benutzen. Sie wissen, was sie sagten, wenn Sie einen Hammer haben, sieht jedes Problem wie ein Nagel aus. In einem früheren Beitrag stelle ich vor, wie man die Hauptkomponente Analyse verwenden kann, um Risikofaktoren abzuleiten. Mit dem PCA kann das unterschiedliche Eigenportfolio auch auf der Ebene der Sektoren als Paar-Handel betrachtet werden. Die Idee stützt sich auf das Kohärenzprinzip (siehe Avellaneda 2002): Wenn Unternehmen nach ihren Koeffizienten in einem gegebenen Eigenvektor sortiert werden, werden Unternehmen derselben Branche oder Branche zusammengefasst. Die Handlung der sortierten Koeffizienten vs die entsprechenden Unternehmen zu beachten, dass die Nachbarn eines bestimmten Unternehmens neigen dazu, in der gleichen Branche werden. In diesem Beitrag stelle ich eine Methode des Paarhandels vor, bei der die Paare nach dem PCA und dem Kohärenzprinzip gebildet werden. Dies ist nur ein, wie zu tun, Im präsentieren eine Methodik. Das Kohärenzprinzip hält in diesem Fall die Bestände der gleichen Branche zusammen. Für Illustrationszwecke verwende ich die obersten Bestände im Dritten Eigenvektor. Diese Bestände gehören zum gleichen Sektor: Grundstoffe. Ich wähle zwei Kandidaten, um die Paar-Trading-Strategie SWN und CNX zu testen: Ich behaupte nicht, dass dies die beste Wahl oder die beste Strategie ist, wie ich schon sagte, dies ist nur ein How-to-Do. Zur Vereinfachung sind die beiden Serien in der gleichen Datei. Hier ist der R-Code: Laden Sie die Bibliothek Bibliothek (tseries) Lesen Sie eine CSV-Datei mit Name test2.csv in R Definieren Sie die beiden Variablen, die zum Testen der Paar Trading-Strategie swndataS, 2 cnxdataS, 3 swnas. matrix (swn) cnxas. matrix (CNX) einfache lineare Regressionsmodell ohne abfangen und den Bau der Ausbreitung Sy-hedgeratiox beta repräsentiert das Modell ersten Koeffizienten ist die hedgeratio cnx0) betacoef (lmresult) 1 spreadswn-betacnx Test auf Kointegration die Augmented Dickey-Fuller-Test (für Einheit Root) Der Test wird auf 5-Ebene durchgeführt, resCADFlt-adf. test (spread, alternativestationary, k0) if (resCADFp. value lt 0,05) cat (Die Ausbreitung ist wahrscheinlich Mittelwertsetzung n) else cat (Die Ausbreitung ist nicht Mittelwert - Reverse n) Trennen Sie die Daten in Trainings-Set und Test-Set auf Backtest die Paar Trading-Strategie und optimieren ihre Parameter definieren Indizes für die Ausbildung Set Trainset 1: 100 1: (Länge (dataS, 1) 2) Testset (Länge (Trainset) 1) : Länge (Daten aufrufen, 1) bestimmt, auf dem Trainings einfache lineare Regressionsmodell auf Triebzug bestimmt die Ausbreitung 0cnxtrainset,) hedgeratiocoef (lmresult) 1 spreadswn-hedgeratiocnx Grundstück (Spread, Typel) Beschreibung des Spread-spreadMeanmean (spreadtrainset gesetzt, der Hedge-Ratio) Katze (Spread Mittlere :, spreadMean, n) spreadStdDevsd (spreadtrainset,) Katze (Spead Standardabweichung:, spreadStdDev, n) Z-Score der Spread: Strategie definiert: Spread kaufen, wenn der Wert unter 2 Standardabweichungen und Shorts, wenn verteilt fällt sein Wert steigt über 2 Standardabweichungen zcore Standard deviation1 Exir Positionen hat, wenn die Ausbreitung innerhalb 1 Standardabweichungen von seinem Mittelwert der Positionen posMatrixmatrix Matrix definieren (NaN, Länge (Daten aufrufen, 1), 2) posMatrixlongPos, 11 posMatrixlongPos, 2-1 posMatrixshortPos, 1 -1 posMatrixshortPos, 21 posMatrixexistPos, 0 Return (datas, 2: 3-lagg (datas, 2: 3)) lagg (datas, 2: 3) pnlas. vector (rowSums (lagg (posMatrix) Return, na. rmTRUE)) sharpeTrainsetsqrt (Länge (Triebzug)) Mittelwert (PNL2: Länge (Triebzug)) sd (PNL2: Länge (Triebzug)) Katze (die Sharpe Ratio auf Trainingssatz ist:, sharpeTrainset, n) Sharpe Ratio auf Testset sharpeTestsetsqrt (Länge (Testset) (X) y-Matrix (NaN, Länge (dataS, 1), 2) y2: Länge (d, s) 1), 2x1: (Länge (dataS, 1) -1), 2 Rückkehr (y)


No comments:

Post a Comment