Wednesday, 28 December 2016

Pca Trading Signale

Sie haben ein multifaktorielles Modell, das als Input von 10 20 exogenen schwach 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, so dass Nachrichtenvektoren Orthogonale sind und den Hauptteil der Varianz des ersten Satzes erklären. 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 geben Korrelation zwischen verschiedenen technischen Indikatoren einer Aktie. 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 Gewinn / Risiko-Kurven abzuschätzen. Aber Sie können auch komplexere Nachbehandlung. Hier: th-if. uj. edu. pl/acta/vol36/pdf/v36p2767.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 die R-Code: Laden Sie die Bibliothek Bibliothek (tseries) Lesen Sie eine CSV-Datei mit dem Namen test2.csv in R Definieren Sie die beiden Variablen verwendet, um die Paar Handelsstrategie swndataS zu testen, 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 in 5-Ebene durchführen, resCADFlt-adf. test (Spread, alternativestationary, k0) if (resCADFp. value lt; 0,05) Katze (Die Ausbreitung wahrscheinlich Mittelwert-umkehrbare n) sonst Katze (Die Ausbreitung nicht meine - ist Rücktransfer 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 Training Set Trainset 1: 100 1: (Länge (dataS, 1) / 2) testset (Länge (Trainset) 1 ): Länge (Daten aufrufen, 1) die Hedge-Ratio 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 set bestimmt, ) 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 fällt verbreitet, wenn ihr Wert steigt über 2 Standardabweichungen zcore Standard deviation1 Exir Positionen hat, wenn die Ausbreitung innerhalb 1 Standardabweichungen von seinem Mittelwert definieren die Positionen posMatrixmatrix (NaN, Länge (Daten aufrufen, 1), 2) Matrix posMatrixlongPos, 11 posMatrixlongPos, 2-1 posMatrixshortPos, (DataS, 2: 3)) / lagg (dataS, 2: 3) pnlas. vector (rowSums (lagG (posMatrix) Rückgabe, na. rmTRUE )) SharpeTrainsetsqrt (Länge (Trainset)) Durchschnitt (pnl2: Länge (Trainset)) / sd (pnl2: Länge (Trainset)) Katze (das Sharpe Verhältnis auf Trainingsset ist:, sharpeTrainset, n) Sharpe Ratio auf testset sharpeTestsetsqrt (Länge (Pnltestset) / sd (pnltestset) cat (das Sharpe-Verhältnis am Testset ist:, sharpeTestset, n) Lagg-Funktion lagglt-Funktion (x) y-Matrix (NaN, Länge (dataS, 1), 2) Y2: Länge (dataS, 1) -1), 2x1: (Länge (dataS, 1) -1), 2 Rückkehr (y)


No comments:

Post a Comment