Trading System Mit R
Finanzmathematik und Modellierung II (FINC 621) ist eine Absolventenstufe, die derzeit an der Loyola University in Chicago im Winterquartier angeboten wird. FINC 621 erforscht Themen der quantitativen Finanzierung, Mathematik und Programmierung. Die Klasse ist praktischer Natur und besteht sowohl aus einer Vorlesung als auch aus einer Laborkomponente. Die Labore verwenden die Programmiersprache R und die Studierenden sind verpflichtet, ihre einzelnen Aufgaben am Ende jeder Klasse einzureichen. Das Ziel von FINC 621 ist es, den Studierenden praktische Werkzeuge zur Verfügung zu stellen, mit denen sie einfache Handlungsstrategien erstellen, modellieren und analysieren können. Einige nützliche R-Links Über den Instructor Harry G. ist ein älterer quantitativer Trader für ein HFT-Handelsunternehmen in Chicago. Er hält einen master8217s Grad in der Elektrotechnik und ein master8217s Grad in der Finanzmathematik von der Universität von Chicago. In seiner Freizeit unterrichtet Harry einen Graduiertenkurs in Quantitative Finance an der Loyola University in Chicago. Er ist auch der Autor von Quantitative Trading mit R. Slideshare verwendet Cookies, um Funktionalität und Leistung zu verbessern und Ihnen relevante Werbung zu bieten. Wenn Sie fortfahren, die Website zu durchsuchen, stimmen Sie der Verwendung von Cookies auf dieser Website zu. Siehe unsere Benutzervereinbarung und Datenschutzbestimmungen. Slideshare verwendet Cookies, um Funktionalität und Leistung zu verbessern und Ihnen relevante Werbung zu bieten. Wenn Sie fortfahren, die Website zu durchsuchen, stimmen Sie der Verwendung von Cookies auf dieser Website zu. Siehe unsere Datenschutzrichtlinie und Benutzervereinbarung für Details. Entdecken Sie alle Ihre Lieblingsthemen in der SlideShare App Holen Sie sich die SlideShare App zu speichern für später sogar offline Weiter zur mobilen Website Upload Anmelden Signup Doppel-Tipp zum Verkleinern Preis Headleyx27s Einfache Trading System: Mit Beschleunigung Bands amp R BigTrends Preis Headley Share this SlideShare LinkedIn Corporation Kopie 2017November 30, 2016, 12:34 pm Vor ein paar Monaten ein Leser zeigen mir diese neue Art der Verbindung R und Excel. Ich don8217t wissen, wie lange das schon um, aber ich kam nie darüber und I8217ve noch nie einen Blog-Post oder einen Artikel darüber gesehen. So entschied ich mich, einen Pfosten zu schreiben, da das Werkzeug es wirklich wert ist und bevor jemand fragt, I8217m nicht mit dem Unternehmen in irgendeiner Weise verwandt. BERT steht für Basic Excel R Toolkit. It8217s kostenlos (lizenziert unter der GPL v2) und wurde von Structured Data LLC entwickelt. Zum Zeitpunkt des Schreibens der aktuellen Version von BERT ist 1.07. Weitere Informationen finden Sie hier. Aus technischer Sicht ist BERT dafür ausgelegt, laufende R-Funktionen aus Excel-Tabellenzellen zu unterstützen. In Excel Begriffe, es8217s für das Schreiben von benutzerdefinierten Funktionen (UDFs) in R. In diesem Beitrag I8217m nicht zeigen, wie R und Excel interagieren über BERT. Es gibt sehr gute Tutorials hier. Hier und hier. Stattdessen möchte ich Ihnen zeigen, wie ich BERT verwendet, um eine 8220control tower8221 für meinen Handel zu bauen. Meine Trading-Signale werden mit einer langen Liste von R-Dateien erzeugt, aber ich brauche die Flexibilität von Excel, um Ergebnisse schnell und effizient anzuzeigen. Wie oben gezeigt, kann BERT dies für mich tun, aber ich möchte auch die Anwendung auf meine Bedürfnisse anpassen. Durch die Kombination der Power von XML, VBA, R und BERT kann ich eine gut aussehende, aber leistungsstarke Anwendung in Form einer Excel-Datei mit minimalem VBA-Code erstellen. Letztendlich habe ich eine einzige Excel-Datei, die alle notwendigen Aufgaben, um mein Portfolio zu verwalten sammeln: Datenbank-Update, Signalerzeugung, Bestellungen Vorlage etc8230 Mein Ansatz könnte in den 3 Schritten unten aufgeteilt werden: Verwenden Sie XML, um benutzerdefinierte Menüs und Schaltflächen in einem Excel zu erstellen Datei. Die obigen Menüs und Schaltflächen sind im Wesentlichen Aufrufe von VBA-Funktionen. Diese VBA-Funktionen sind Wrapup um R-Funktionen definiert mit BERT. Mit diesem Ansatz kann ich eine klare Unterscheidung zwischen dem Kern meines Codes gehalten in R, SQL und Python und alles, was zum Anzeigen und Formatieren von Ergebnissen in Excel, VBA amp XML gehalten gehalten. In den folgenden Abschnitten präsentiere ich die Voraussetzung für einen derartigen Ansatz und eine Schritt-für-Schritt-Anleitung, die erklärt, wie BERT für die einfache Übergabe von Daten von R an Excel mit minimalem VBA-Code verwendet werden könnte. 1 8211 Laden und installieren Sie BERT von diesem Link. Sobald die Installation abgeschlossen ist, sollten Sie ein neues Add-Ins Menü in Excel mit den Schaltflächen wie unten gezeigt haben. Dies ist, wie BERT in Excel materialisiert. 2 8211 Herunterladen und Installieren von benutzerdefiniertem UI-Editor. Mit dem Custom UI Editor können Sie benutzerdefinierte Menüs und Schaltflächen im Excel-Farbband erstellen. Eine Schritt-für-Schritt-Prozedur ist hier erhältlich. Schritt-für-Schritt-Anleitung 1 8211 R Code: Die untenstehende R-Funktion ist ein sehr einfaches Codebeispiel. Sie berechnet und gibt die Residuen aus einer linearen Regression zurück. Dies ist, was wir in Excel abrufen möchten. Speichern Sie diese in einer Datei namens myRCode. R (ein anderer Name ist fein) in einem Verzeichnis Ihrer Wahl. 2 8211 Funktionen. R in BERT. Aus Excel wählen Sie Add-Ins - gt Home Directory und öffnen Sie die Datei mit dem Namen functions. R. Fügen Sie in dieser Datei den folgenden Code ein. Stellen Sie sicher, dass Sie den korrekten Pfad einfügen. Dies ist nur Sourcing in BERT die R-Datei, die Sie oben erstellt. Dann speichern und schließen Sie die Datei functions. R. Wenn Sie die in Schritt 1 erstellte R-Datei ändern möchten, müssen Sie sie mit der BERT-Schaltfläche 8220Reload Startup File8221 aus dem Menü Add-Ins in Excel 3 neu laden. 8211 In Excel: Erstellen und speichern Sie eine Datei namens myFile. xslm (Jeder andere Name ist fein). Dies ist eine Makro-aktivierte Datei, die Sie im Verzeichnis Ihrer Wahl speichern. Sobald die Datei gespeichert ist schließen Sie es. 4 8211 Öffnen Sie die oben im Custom UI-Editor erstellte Datei: Sobald die Datei geöffnet ist, fügen Sie den folgenden Code ein. Sie sollten so etwas im XML-Editor haben: Grundsätzlich erzeugt dieses Stück XML-Code ein zusätzliches Menü (RTrader), eine neue Gruppe (My Group) und eine benutzerdefinierte Schaltfläche (New Button) im Excel-Band. Sobald you8217re getan, öffnen Sie myFile. xslm in Excel und schließen Sie den Benutzerdefinierten Benutzeroberflächen-Editor. Sie sollten so etwas sehen. 5 8211 VBA-Editor öffnen. Fügen Sie in myFile. xlsm ein neues Modul ein. Fügen Sie den Code unten in das neu erstellte Modul ein. Dadurch werden vorherige Ergebnisse im Arbeitsblatt gelöscht, bevor neue verwaltet werden. 6 8211 Klicken Sie auf Neue Schaltfläche. Gehen Sie nun zur Tabellenkalkulation zurück und klicken Sie im RTrader-Menü auf die Schaltfläche 8220New Button8221. Sie sollten etwas wie das unten erscheinende sehen. Der Leitfaden oben ist eine sehr grundlegende Version dessen, was mit BERT erreicht werden kann, aber es zeigt Ihnen, wie die Macht der mehrere spezifische Werkzeuge zu kombinieren, um Ihre eigene benutzerdefinierte Anwendung zu bauen. Aus meiner Sicht ist das Interesse eines solchen Ansatzes die Möglichkeit, R und Excel offensichtlich miteinander zu verkleben, aber auch über XML - (und Batch-) Stücke von Code aus Python, SQL und mehr aufzunehmen. Das ist genau das, was ich brauchte. Schließlich würde ich neugierig sein, um zu wissen, wenn jemand irgendeine Erfahrung mit BERT hat, 19. August 2016, 9:26 am Wenn das Testen der Handelsstrategien ein allgemeiner Ansatz ist, den Anfangsdatensatz in Beispieldaten zu teilen: der Teil der Daten, die entworfen sind, um zu kalibrieren Das Modell und aus den Beispieldaten besteht: der Teil der Daten, der für die Validierung der Kalibrierung verwendet wird, und um sicherzustellen, dass die in der Stichprobe erzeugte Leistung sich in der realen Welt widerspiegelt. Als Faustregel können etwa 70 der Anfangsdaten für die Kalibrierung (d. h. in der Probe) und 30 für die Validierung (d. H. Aus der Probe) verwendet werden. Dann hilft ein Vergleich der In-und Out der Beispieldaten zu entscheiden, ob das Modell robust genug ist. Dieser Beitrag zielt darauf ab, einen Schritt weiter zu gehen und stellt eine statistische Methode zur Verfügung, um zu entscheiden, ob die Out of Sample-Daten mit dem übereinstimmen, was in Sample erstellt wurde. In der Tabelle unten zeigt die blaue Fläche die Out-of-Sample-Performance für eine meiner Strategien. Eine einfache visuelle Inspektion zeigt eine gute Passform zwischen der in und aus der Probe Leistung aber welches Maß an Vertrauen habe ich in diesem In diesem Stadium nicht viel und das ist das Problem. Was wirklich benötigt wird, ist ein Maß für die Ähnlichkeit zwischen dem Ein - und Auslesen von Beispieldatensätzen. In statistischer Hinsicht könnte dies als die Wahrscheinlichkeit, dass die in-und aus der Probe Leistung Zahlen aus der gleichen Verteilung übersetzt werden. Es gibt einen nichtparametrischen statistischen Test, der genau das macht: den Kruskall-Wallis-Test. Eine gute Definition dieses Tests konnte auf R-Tutor 8220A Sammlung von Daten-Proben gefunden werden unabhängig, wenn sie aus unabhängigen Populationen kommen und die Proben nicht aufeinander einwirken. Mit dem Kruskal-Wallis-Test. Können wir entscheiden, ob die Populationsverteilungen identisch sind, ohne sie der Normalverteilung zu folgen.8221 Der zusätzliche Nutzen dieses Tests geht nicht von einer Normalverteilung aus. Es gibt andere Tests der gleichen Art, die in diesem Rahmen passen könnte. Der Mann-Whitney-Wilcoxon-Test oder die Kolmogorov-Smirnov-Tests würde perfekt auf den Rahmen beschreibt hier aber dies ist über den Rahmen dieses Artikels zu diskutieren, die Vor-und Nachteile der einzelnen Tests. Eine gute Beschreibung zusammen mit R Beispielen finden Sie hier. Hier8217s der Code, der verwendet wird, um das Diagramm oben und die Analyse zu generieren: Im obigen Beispiel ist die Abtastperiode länger als die außerhalb der Abtastperiode, daher habe ich zufällig 1000 Teilmengen der In-Abtastdaten erstellt, von denen jeder die gleiche Länge wie das Out hat Von Probendaten. Dann prüfte ich jede im Beispieluntersatz gegen die aus Beispieldaten heraus und ich notierte die p-Werte. Dieser Prozess erzeugt keinen einzigen p-Wert für den Kruskall-Wallis-Test, sondern eine Verteilung, die die Analyse robuster macht. In diesem Beispiel liegt der Mittelwert der p-Werte deutlich über Null (0,478), was darauf hinweist, dass die Nullhypothese akzeptiert werden sollte: Es gibt starke Beweise dafür, dass das Ein - und Auslesen von Probendaten aus derselben Verteilung stammt. Wie üblich, was in diesem Beitrag ist ein Spielzeugbeispiel, dass nur Kratzer auf der Oberfläche des Problems und sollte auf die individuellen Bedürfnisse zugeschnitten werden. Allerdings denke ich, dass es einen interessanten und rationalen statistischen Rahmen vorschlägt, um die Ergebnisse der Ergebnisse zu bewerten. Dieser Beitrag wird von den beiden folgenden Beiträgen inspiriert: Vigier Alexandre, Chmil Swann (2007), Effekte verschiedener Optimierungsfunktionen auf die Out of Sample Performance genetisch entwickelter Handelsstrategien, Forecasting Financial Markets Konferenz Vigier Alexandre, Chmil Swann (2010), An Optimierung Prozess zur Verbesserung der Probenqualität Konsistenz, ein Stock Market Fall, JP Morgan Cazenove Equity Quantitative Konferenz, London Oktober 2010 Dezember 13, 2015, 2:03 pm Doing quantitative Forschung impliziert eine Menge Daten knirscht und man braucht saubere und zuverlässige Daten zu Dies erreichen. Was wirklich benötigt wird, sind saubere Daten, die leicht zugänglich sind (auch ohne Internetverbindung). Der effizienteste Weg, dies zu tun, für mich war es, eine Reihe von CSV-Dateien zu halten. Offensichtlich kann dieser Prozess in vielerlei Hinsicht behandelt werden, aber ich fand sehr effiziente und einfache Überstunden, um ein Verzeichnis, in dem ich speichern und aktualisieren CSV-Dateien zu halten. Ich habe eine CSV-Datei pro Instrument und jede Datei ist nach dem Instrument, das sie enthält benannt. Der Grund, warum ich das tue, ist zweifach: Zuerst möchte ich (Preis-) Daten von Yahoo, Google etc8230 jedes Mal herunterladen, wenn ich eine neue Idee testen möchte, aber noch wichtiger, sobald ich ein Problem identifiziert und behoben habe, möchte ich es haben Tun Sie es wieder das nächste Mal brauche ich das gleiche Instrument. Einfach und dennoch sehr effizient. Der Prozess ist in der folgenden Tabelle zusammengefasst. In alles, was folgt, nehme ich an, dass Daten von Yahoo kommen. Der Code muss für Daten von Google geändert werden, Quandl etc8230 Darüber hinaus präsentiere ich den Prozess der Aktualisierung der täglichen Preisdaten. Das Setup ist für höhere Frequenzdaten und andere Arten von Datensätzen unterschiedlich (d. h. von den Preisen verschieden). 1 8211 Initialdatendownload (listOfInstruments. R amp historicalData. R) Die DateilisteOfInstruments. R ist eine Datei, die nur die Liste aller Instrumente enthält. Wenn ein Instrument isn8217t Teil meiner Liste (d. H. Keine csv-Datei in meinem Datenordner) oder wenn Sie es tun, zum ersten Mal müssen Sie den ursprünglichen historischen Datensatz herunterladen. Das Beispiel unten lädt eine Menge von ETFs Tagespreise von Yahoo Finance zurück bis Januar 2000 und speichern Sie die Daten in einer CSV-Datei. 2 8211 Vorhandene Daten aktualisieren (updateData. R) Der folgende Code startet von vorhandenen Dateien im dedizierten Ordner und aktualisiert alle nacheinander. Ich laufe in der Regel diesen Prozess Alltag außer wenn I8217m im Urlaub. Um ein neues Instrument hinzuzufügen, führen Sie einfach nur den Schritt 1 für dieses Instrument aus. 3 8211 Erstellen einer Batchdatei (updateDailyPrices. bat) Ein weiterer wichtiger Teil des Jobs ist die Erstellung einer Batch-Datei, die den oben beschriebenen Aktualisierungsvorgang automatisiert (I8217m ein Windows-Benutzer). Dies vermeidet das Öffnen von RRStudio und starten Sie den Code von dort aus. Der unten stehende Code wird auf einer. bat-Datei platziert (der Pfad muss mit dem reader8217s-Setup geändert werden). Beachten Sie, dass ich eine Ausgabedatei (updateLog. txt) hinzugefügt, um die Ausführung verfolgen. Das oben genannte Verfahren ist extrem einfach, da es nur beschreibt, wie die täglichen Preisdaten aktualisiert werden. I8217ve verwendet diese für eine Weile und es hat funktioniert sehr reibungslos für mich so weit. Für fortgeschrittenere Daten und höhere Frequenzen können die Dinge viel schwieriger werden. Wie üblich alle Kommentare begrüßen 15. August 2015, 21:03 Die Asset Management-Branche ist am Rande einer großen Veränderung. In den letzten Jahren sind Robots Advisors (RA) als neue Spieler entstanden. Der Begriff selbst ist schwer zu definieren, da er eine breite Palette von Dienstleistungen umfasst. Einige sind entworfen, um traditionelle Berater zu helfen, ihre Klienten Geld zuzuteilen und einige sind reales 8220black box8221. Der Benutzer gibt ein paar Kriterien ein (Alter, Einkommen, Kinder etc.8230) und der Roboter schlägt eine maßgeschneiderte Zuordnung vor. Zwischen diesen beiden Extremen steht eine breite Palette von Angeboten zur Verfügung. Ich fand die Wikipedia-Definition ziemlich gut. 8220Die sind eine Klasse von Finanzberater, die Portfolio-Management online mit minimalem menschlichen Eingriff8221 bietet. Genauer gesagt nutzen sie das Algorithmus-basierte Portfolio-Management, um das gesamte Leistungsspektrum eines traditionellen Beraters anzubieten: Dividenden-Reinvestition, Compliance-Berichte, Portfolio-Rebalancing, Steuererleichterungen etc8230 (das ist es, was die quantitative Investitionsgemeinschaft seit Jahrzehnten tut). Die Industrie ist noch in den Kinderschuhen mit den meisten Spielern noch verwalten eine kleine Menge an Geld, aber ich nur realisiert, wie tief die Veränderung war, wenn ich in New York vor ein paar Tagen war. Wenn RA ihre Namen auf TV-Hinzufügungen oder auf dem Dach der NYC-Kabine bekommt, weiß man, dass etwas Großes passiert8230 es wird immer mehr Aufmerksamkeit von den Medien und vor allem macht es viel Sinn aus der Perspektive eines Investors. Es gibt tatsächlich zwei Hauptvorteile bei der Verwendung von RA: Deutlich niedrigere Gebühren gegenüber traditionellen Berater Investition wird transparenter und einfacher, die attraktiver für Menschen mit begrenzten finanziellen Kenntnisse ist In diesem Beitrag R ist nur eine Entschuldigung, schön zu präsentieren, was ist ein wichtiger Trend in Die Asset-Management-Branche. Die Grafik unten zeigt die Marktanteile der beliebtesten RA am Ende des Jahres 2014. Der Code verwendet, um das Diagramm unten zu erstellen finden Sie am Ende dieser Stelle zu finden und die Daten sind hier. Diese Zahlen sind ein wenig datiert gegeben, wie schnell diese Branche entwickelt, sind aber immer noch sehr informativ. Es überrascht nicht, dass der Markt von US-Anbietern wie Wealthfront und Betterment dominiert wird, aber RA auf der ganzen Welt auftauchen: Asien (8Now), Schweiz (InvestGlass), Frankreich (Marie Quantier) 8230. Es fängt an, wesentlich zu beeinflussen, wie traditionelle Vermögensverwalter Geschäfte machen. Ein herausragendes Beispiel ist die Partnerschaft zwischen Fidelity und Betterment. Seit Dezember 2014 Betterment an der 2-Milliarden-Marke AUM. Trotz alledem denke ich, dass die wirkliche Veränderung vor uns liegt. Weil sie weniger Vermittler und niedrige Provisionsprodukte (wie ETFs) verwenden, verlangen sie viel niedrigere Gebühren als traditionelle Berater. RA wird sicherlich gewinnen erhebliche Marktanteile, aber sie werden auch senkt Gebühren von der Industrie als Ganzes berechnet. Letztendlich wird es die Art und Weise beeinflussen, wie traditionelle Wertpapierfirmen Geschäfte tätigen. Ein aktives Portfoliomanagement, das seit einigen Jahren eine harte Zeit hat, wird noch mehr leiden. Die hohen Gebühren wird es noch schwerer zu rechtfertigen, es sei denn, es neu erfindet. Eine weitere potenzielle Auswirkung ist der Anstieg der ETFs und der niedrigen Provisions-Finanzprodukte im Allgemeinen. Offensichtlich hat dies vor einer Weile begonnen, aber ich denke, der Effekt wird noch mehr ausgeprägt sein in den kommenden Jahren. Neue Generationen von ETFs verfolgen komplexere Indizes und maßgeschneiderte Strategien. Dieser Trend wird unweigerlich stärker. Wie üblich alle Kommentare willkommen Juli 7, 2015, 8:04 Uhr Es gibt viele R-Zeitreihen Tutorials schwimmenden auf dem Internet dieser Beitrag ist nicht entworfen, um einer von ihnen sein. Stattdessen möchte ich eine Liste der nützlichsten Tricks vorstellen, die ich im Umgang mit finanziellen Zeitreihen in R. stieß. Einige der hier präsentierten Funktionen sind unglaublich mächtig, aber leider in der Dokumentation begraben daher mein Wunsch, einen dedizierten Beitrag zu schaffen. Ich habe nur Adresse täglich oder niedrigere Frequenz mal Serie. Der Umgang mit höherfrequenten Daten erfordert spezielle Werkzeuge: data. table oder Hochfrequenzpakete sind einige davon. Xts. Das xts-Paket ist das Muss, wenn es um Zeitreihen in R geht. Das Beispiel unten lädt das Paket und schafft eine tägliche Zeitreihe von 400 Tagen normal verteilten Renditen merge. xts (Paket xts): Das ist unglaublich mächtig, wenn es dazu kommt Binden zwei oder mehrmals zusammen, ob sie die gleiche Länge haben oder nicht. Das Join-Argument tut die Magie, die er bestimmt, wie die Bindung getan wird apply. yearlyapply. monthly (package xts): Wenden Sie eine bestimmte Funktion auf jede einzelne Periode in einem gegebenen Zeitreihenobjekt an. Im folgenden Beispiel werden die monatlichen und jährlichen Ergebnisse der zweiten Serie im tsInter-Objekt berechnet. Beachten Sie, dass ich die Summe der Renditen (keine Compoundierung) Endpunkte (Paket xts) verwenden: Extrahieren Sie Indexwerte eines gegebenen xts-Objekts entsprechend den letzten Beobachtungen, Das Beispiel gibt den letzten Tag der Monatsrenditen für jede Serie im tsInter-Objekt mit Endpunkt an, um das Datum auszuwählen. Na. locf (package zoo): Generische Funktion zum Ersetzen jedes NA mit dem letzten Nicht-NA vor ihm. Extrem nützlich beim Umgang mit einer Zeitreihe mit ein paar 8220holes8221 und wenn diese Zeitreihe wird anschließend als Eingabe für eine R-Funktionen, die nicht akzeptiert, Argumente mit NAs verwendet. Im Beispiel erstelle ich eine Zeitreihe von zufälligen Preisen, dann künstlich ein paar NAs in sie und ersetzen sie mit dem jüngsten Wert. Charts. PerformanceSummary (Paket PerformanceAnalytics): Für eine Reihe von Renditen erstellen Sie ein Reichtum-Index-Diagramm, Balken für Per-Periode Leistung und Unterwasser-Diagramm für Drawdown. Dies ist unglaublich nützlich, da es in einem einzigen Fenster alle relevanten Informationen für eine schnelle Sichtprüfung einer Handelsstrategie anzeigt. Im folgenden Beispiel wird die Preisreihe in ein xts-Objekt umgewandelt und dann ein Fenster mit den oben beschriebenen 3 Diagrammen angezeigt. Die Liste oben ist nicht erschöpfend, aber sobald Sie beherrschen die Funktionen beschreiben in diesem Post macht es die Manipulation von finanziellen Zeitreihen viel einfacher, der Code kürzer und die Lesbarkeit des Codes besser. Wie üblich alle Kommentare begrüßen 23. März, 2015, 20.55 Uhr Wenn es um die Verwaltung ein Portfolio von Aktien im Vergleich zu einem Benchmark geht, ist das Problem ganz anders als die Definition einer absoluten Rendite Strategie. In der ehemaligen muss man mehr Aktien halten als in den späteren, wo überhaupt keine Aktien gehalten werden können, wenn es nicht genug Gelegenheit gibt. Der Grund dafür ist der Tracking Error. Dies ist definiert als die Standardabweichung der Portfolio-Rendite abzüglich der Benchmark-Rendite. Je weniger Aktien gehalten werden, desto höher der Tracking Error (z. B. höheres Risiko). Die folgende Analyse ist weitgehend vom Buch 8220Active Portfolio Management8221 von Grinold amp Kahn inspiriert. Dies ist die Bibel für alle, die daran interessiert sind, ein Portfolio gegen eine Benchmark auszuführen. Ich ermutige jedermann mit Interesse am Thema, das Buch vom Anfang bis zum Ende zu lesen. It8217s sehr gut geschrieben und legt die Grundlagen des systematischen aktiven Portfoliomanagements (ich habe keine Zugehörigkeit zum Herausgeber oder den Autoren). 1 8211 Factor Analysis Hier versuchen wir, die Bestände des Anlageuniversums so genau wie möglich zu platzieren. Viele Menschen kamen mit vielen Werkzeugen und unzählige Variante dieser Werkzeuge wurden entwickelt, um dies zu erreichen. In diesem Beitrag konzentriere ich mich auf zwei einfache und weit verbreitete Metriken: Informationskoeffizient (IC) und Quantiles Return (QR). 1.1 8211 Informationskoeffizient Der Horizont für die Forward Return muss vom Analysten definiert werden und es ist eine Funktion der Strategie8217s Umsatz und der Alpha-Zerfall (dies war Gegenstand umfangreicher Forschung). Offensichtlich müssen die ICs in absoluten Werten so hoch wie möglich sein. Für den scharfen Leser wird in dem Buch von Grinold amp Kahn eine Formel, die Information Ratio (IR) und IC verbindet, gegeben: wobei die Breite der Anzahl der unabhängigen Wetten (Trades) ist. Diese Formel ist als das Grundgesetz der aktiven Verwaltung bekannt. Das Problem ist, dass oft, definieren Breite genau ist nicht so einfach wie es klingt. 1.2 8211 Quantiles Return Um eine genauere Schätzung der Faktorvorhersagekraft zu haben, ist es notwendig, einen Schritt weiter zu gehen und die Gruppenbestände durch Quantil von Faktorwerten zu analysieren und dann die durchschnittliche Vorwärts-Rückkehr (oder jede andere zentrale Tendenzmetrik) jedes dieser zu analysieren Quantilen. Die Nützlichkeit dieses Tools ist einfach. Ein Faktor kann eine gute IC haben, aber seine prädiktive Macht kann auf eine kleine Anzahl von Aktien beschränkt sein. Dies ist nicht gut, da ein Portfoliomanager Aktien im gesamten Universum auswählen muss, um seinen Tracking-Error-Constraint zu erfüllen. Gute Quantilrücksendungen zeichnen sich durch eine monotone Beziehung zwischen den einzelnen Quantilen und den Forward Returns aus. Alle Bestände im SampP500-Index (zum Zeitpunkt des Schreibens). Offensichtlich gibt es eine Überlebens-Schiff Bias: die Liste der Aktien im Index hat sich zwischen dem Beginn und dem Ende der Stichprobenperiode erheblich geändert, aber es ist gut genug, um nur zu illustrieren. Der unten stehende Code lädt einzelne Aktienkurse im SampP500 zwischen Januar 2005 und heute (es dauert eine Weile) und verwandelt die Rohpreise in die letzten 12 Monate und in den letzten Monat. Ersteres ist unser Faktor, letzterer wird als Vorwärtsbewegungsmaßnahme verwendet. Unten ist der Code zur Berechnung des Informationskoeffizienten und Quantiles Return. Beachten Sie, dass ich in diesem Beispiel Quintile verwendet habe, aber jede andere Gruppierungsmethode (terciles, deciles etc8230) verwendet werden kann. Es hängt wirklich von der Stichprobengröße, was Sie erfassen möchten und ob Sie einen breiten Überblick oder Fokus auf Verteilungsschwänze haben möchten. Für die Schätzung der Retouren innerhalb jedes Quintils wurde der Median als zentraler Tendenzschätzer verwendet. Diese Maßnahme ist weit weniger empfindlich gegenüber Ausreißern als arithmetisches Mittel. Und schließlich der Code, um die Quantiles Return-Diagramm zu produzieren. 3 8211 Ausnutzen der oben genannten Informationen In der obigen Tabelle ist Q1 am niedrigsten nach 12 Monaten und am höchsten in Q5. Es gibt eine fast monotone Zunahme der Quantilrückkehr zwischen Q1 und Q5, die eindeutig anzeigt, daß Aktien, die in Q5 fallen, jene übersteigen, die in Q1 durch ungefähr 1 pro Monat fallen. Das ist sehr wichtig und mächtig für so einen einfachen Faktor (nicht wirklich eine Überraschung though8230). Daher gibt es größere Chancen, um den Index durch Übergewichtung der Bestände fallen in Q5 und Untergewichtung diejenigen, die in Q1 relativ zur Benchmark zu schlagen. Ein IC von 0,0206 könnte nicht bedeuten, viel in sich, aber es8217s deutlich anders als 0 und zeigt eine gute Vorhersagekraft der letzten 12 Monate Rückkehr insgesamt. Formale Signifikanztests können ausgewertet werden, aber dies geht über den Rahmen dieses Artikels hinaus. 4 8211 Praktische Einschränkungen Das vorstehende Rahmenprogramm eignet sich hervorragend für die Bewertung der Investitionen, aber es gibt eine Reihe praktischer Einschränkungen, die für die Umsetzung im realen Leben angegangen werden müssen: Rebalancing. In der obigen Beschreibung wurde davon ausgegangen, dass am Ende eines jeden Monats das Portfolio vollständig ausgeglichen ist. Dies bedeutet, dass alle Aktien im Q1 untergewichtet sind und alle Aktien, die in Q5 fallen, im Vergleich zur Benchmark übergewichtet sind. Dies ist aus praktischen Gründen nicht immer möglich: Manche Bestände könnten aus dem Anlageuniversum ausgeschlossen werden, es bestehen Einschränkungen für das Branchen - oder Sektorgewicht, es gibt Einschränkungen für den Umsatz etc8230 Transaktionskosten. Dies ist in der obigen Analyse nicht berücksichtigt worden, und dies ist eine ernsthafte Bremse für die praktische Umsetzung. Umsatzüberlegungen werden in der Regel im realen Leben in Form einer Strafe auf Faktorqualität umgesetzt. Übertragungskoeffizient. Dies ist eine Erweiterung des Grundgesetzes des aktiven Managements und es entspannt die Annahme von Grinold8217s Modell, dass Führungskräfte keine Zwänge, die sie aus der Umsetzung ihrer Investitionen Einblicke direkt in Portfolio-Wetten auszuschließen. Und schließlich, I8217m überrascht, was in weniger als 80 Zeilen Code mit R8230 erreicht werden kann Wie üblich alle Kommentare willkommen
Comments
Post a Comment