Ich bin sehr neu bei R und versuche, eine Strategie, die bereits in WealthLab programmiert wurde, zu backtest. Mehrere Sachen, die ich nicht verstehe (und es funktioniert nicht offensichtlich :) Ich bekomme nicht die Close Preise schön in einen Vektor. Oder irgendeine Art von Vektor, aber es beginnt mit Struktur und ich verstehe nicht wirklich, was diese Funktion tut. Das ist, warum meine Serie, 1 Anruf wahrscheinlich nicht funktioniert. N-lt-nrow (Serie) funktioniert auch nicht, aber ich brauche das für die Loop Also ich vermute, wenn ich diese 2 Fragen beantwortet meine Strategie sollte funktionieren. Ich bin sehr dankbar für jede Hilfe .. R scheint ziemlich kompliziert auch mit Programmier-Erfahrung in anderen Sprachen yeah Ich Art von kopiert einige Zeilen Code aus diesem Tutorial und don39t wirklich verstehen, diese Zeile. Ich meine, Serie, ich dachte, ich würde die Funktion f auf quotcolumnquot 1 der Serie anwenden. Aber da diese Serie ist etwas komplett mit Struktur etc. es doesn39t Arbeit. I39m reden über dieses Tutorial: r-bloggersbacktesting-a-Trading-Strategie ndash MichiZH Jun 6 13 bei 14: 22Backtesting: Interpretation The Past Backtesting ist ein wichtiger Bestandteil der effektiven Handelssystem-Entwicklung. Es wird erreicht durch Rekonstruktion, mit historischen Daten, Trades, die in der Vergangenheit mit Regeln durch eine gegebene Strategie definiert aufgetreten wäre. Das Ergebnis bietet Statistiken, die verwendet werden können, um die Wirksamkeit der Strategie zu messen. Mit diesen Daten können Händler ihre Strategien optimieren und verbessern, technische oder theoretische Mängel finden und Vertrauen in ihre Strategie gewinnen, bevor sie sie auf die realen Märkte anwenden. Die zugrundeliegende Theorie ist, dass jede Strategie, die in der Vergangenheit gut funktionierte, in der Zukunft gut funktionieren wird, und umgekehrt wird jede Strategie, die in der Vergangenheit schlecht geführt hat, wahrscheinlich in der Zukunft schlecht sein. Dieser Artikel nimmt einen Blick auf, welche Anwendungen verwendet werden, um Backtest, welche Art von Daten erhalten wird, und wie man es verwenden Die Daten und die Tools Backtesting kann viel wertvolle statistische Rückmeldung über ein bestimmtes System. Einige universelle Backtesting-Statistiken beinhalten: Nettogewinn oder Verlust - Netto-Prozentsatz Gewinn oder Verlust. Zeitrahmen - Vergangene Termine, in denen ein Test durchgeführt wurde. Universum - Aktien, die in den Backtest aufgenommen wurden. Volatilitätsmaßnahmen - Maximaler Prozentsatz nach oben und nach unten. Mittelwerte - Prozentualer durchschnittlicher Gewinn und durchschnittlicher Verlust, durchschnittliche Stäbe gehalten. Exposure - Prozentsatz des investierten Kapitals (oder dem Markt ausgesetzt). Verhältnisse - Gewinne-Verluste-Verhältnis. Annualisierte Rendite - Prozentuale Rendite über ein Jahr. Risikoadjustierte Rendite - Prozentuale Rendite als Funktion des Risikos In der Regel wird Backtesting-Software haben zwei Bildschirme, die wichtig sind. Der erste erlaubt dem Händler, die Einstellungen für das Backtesting anzupassen. Diese Anpassungen beinhalten alles von der Zeit bis zur Provisionskosten. Hier ist ein Beispiel für einen solchen Bildschirm in AmiBroker: Der zweite Bildschirm ist der eigentliche Backtesting Ergebnis Bericht. Hier finden Sie alle oben genannten Statistiken. Auch hier ist ein Beispiel für diesen Bildschirm in AmiBroker: Im Allgemeinen enthält die meisten Trading-Software ähnliche Elemente. Einige High-End-Software-Programme enthalten auch zusätzliche Funktionalität, um automatische Positionsabmessung, Optimierung und andere erweiterte Funktionen durchzuführen. Die 10 Gebote Es gibt viele Faktoren, die Händler darauf achten, wenn sie Backtesting Handelsstrategien sind. Hier ist eine Liste der 10 wichtigsten Dinge zu erinnern, während Backtesting: Berücksichtigen Sie die breite Markttrends in der Zeitrahmen, in dem eine gegebene Strategie getestet wurde. Zum Beispiel, wenn eine Strategie wurde nur von 1999-2000 zurückgestellt, kann es nicht gut in einem Bärenmarkt. Es ist oft eine gute Idee, über einen langen Zeitrahmen zu backtest, der verschiedene Arten von Marktbedingungen umfasst. Berücksichtigen Sie das Universum, in dem das Backtesting aufgetreten ist. Zum Beispiel, wenn ein breites Marktsystem mit einem Universum aus Tech-Aktien getestet wird, kann es nicht gut in verschiedenen Sektoren zu tun. Grundsätzlich, wenn eine Strategie auf ein bestimmtes Genre der Bestände ausgerichtet ist, beschränken Sie das Universum auf dieses Genre, aber in allen anderen Fällen ein großes Universum für Testzwecke aufrecht zu erhalten. Volatilitätsmaßnahmen sind bei der Entwicklung eines Handelssystems äußerst wichtig. Dies gilt insbesondere für Leveraged-Konten, die Margin-Anrufe unterworfen werden, wenn ihr Eigenkapital unter einen bestimmten Punkt fällt. Händler sollten versuchen, die Volatilität niedrig zu halten, um das Risiko zu reduzieren und einen leichteren Übergang in und aus einer bestimmten Aktie zu ermöglichen. Die durchschnittliche Anzahl der gehaltenen Stäbe ist auch sehr wichtig, um bei der Entwicklung eines Handelssystems zu sehen. Obwohl die meisten Backtesting-Software Provisionskosten in den endgültigen Berechnungen enthält, bedeutet das nicht, dass Sie diese Statistik ignorieren sollten. Wenn möglich, kann die Erhöhung der durchschnittlichen Anzahl der gehaltenen Bars die Provisionskosten senken und die Gesamtrendite verbessern. Belichtung ist ein zweischneidiges Schwert. Eine erhöhte Exposition kann zu höheren Gewinnen oder höheren Verlusten führen, während eine verminderte Exposition niedrigere Gewinne oder geringere Verluste aufweist. Allerdings ist es im Allgemeinen eine gute Idee, die Exposition unter 70 zu halten, um das Risiko zu reduzieren und einen leichteren Übergang in und aus einer bestimmten Aktie zu ermöglichen. Die durchschnittliche Ertragsstatistik, kombiniert mit dem Gewinn-Verlust-Verhältnis, kann für die Bestimmung der optimalen Positionsbestimmung und des Geldmanagements mit Techniken wie dem Kelly Criterion nützlich sein. (Siehe Geldmanagement mit dem Kelly Criterion.) Händler können größere Positionen einnehmen und die Provisionskosten senken, indem sie ihre durchschnittlichen Gewinne erhöhen und ihr Gewinn-Verlust-Verhältnis erhöhen. Die annualisierte Rendite ist wichtig, weil sie als Instrument zur Benchmark eines Systemrenditen gegen andere Anlageorte verwendet wird. Es ist wichtig, nicht nur die Gesamtrendite zu betrachten, sondern auch das erhöhte oder verminderte Risiko zu berücksichtigen. Dies geschieht durch die risikoadjustierte Rendite, die für verschiedene Risikofaktoren verantwortlich ist. Bevor ein Handelssystem verabschiedet wird, muss es alle anderen Anlagegeschäfte gleich oder weniger gefährden. Backtesting Anpassung ist extrem wichtig. Viele Backtesting-Anwendungen haben Input für Provisionsbeträge, runde (oder gebrochene) Losgrößen, Tickgrößen, Margin-Anforderungen, Zinssätze, Schlupfannahmen, Positionsgrößenregeln, Gleichbezugsregelungen, (nachlaufende) Stopp-Einstellungen und vieles mehr. Sie erhalten die genauesten Backtesting-Ergebnisse, ich bin wichtig, um diese Einstellungen zu stimmen, um den Makler nachzuahmen, der verwendet wird, wenn das System in Betrieb geht. Backtesting kann manchmal zu etwas bekannt als Überoptimierung führen. Dies ist ein Zustand, in dem die Leistungsergebnisse so weit in die Vergangenheit abgestimmt sind, dass sie in der Zukunft nicht mehr so genau sind. Es ist in der Regel eine gute Idee, Regeln zu implementieren, die für alle Aktien oder einen ausgewählten Satz von zielgerichteten Aktien gelten und nicht so weit optimiert sind, dass die Regeln vom Schöpfer nicht mehr verständlich sind. Backtesting ist nicht immer der genaueste Weg, um die Effektivität eines bestimmten Handelssystems abzuschätzen. Manchmal laufen Strategien, die in der Vergangenheit gut verstanden haben, in der Gegenwart nicht gut. Die Wertentwicklung in der Vergangenheit ist kein Hinweis auf zukünftige Ergebnisse. Achten Sie darauf, Papierhandel ein System, das erfolgreich zurückgezählt wurde, bevor Sie live gehen, um sicherzustellen, dass die Strategie noch in der Praxis gilt. Schlussfolgerung Backtesting ist einer der wichtigsten Aspekte der Entwicklung eines Handelssystems. Wenn es richtig erstellt und interpretiert wird, kann es den Händlern helfen, ihre Strategien zu optimieren und zu verbessern, technische oder theoretische Fehler zu finden sowie Vertrauen in ihre Strategie zu gewinnen, bevor sie sie auf die realen Weltmärkte anwenden. Resources Tradecision (Tradecision) - High-End Trading System Entwicklung AmiBroker (Amibroker) - Budget Trading System Entwicklung. Eine ökonomische Theorie der Gesamtausgaben in der Wirtschaft und ihre Auswirkungen auf die Produktion und Inflation. Keynesianische Wirtschaft wurde entwickelt. Ein Bestand eines Vermögenswerts in einem Portfolio. Eine Portfolioinvestition erfolgt mit der Erwartung, eine Rendite zu erzielen. Dies. Ein von Jack Treynor entwickeltes Verhältnis, das die Erträge übertrifft, die über das hinausgekommen sind, was im risikolosen verdient werden könnte. Der Rückkauf ausstehender Aktien (Rückkauf) durch eine Gesellschaft, um die Anzahl der Aktien auf dem Markt zu reduzieren. Firmen. Eine Steuererstattung ist eine Erstattung für Steuern, die an eine Einzelperson oder einen Haushalt gezahlt werden, wenn die tatsächliche Steuerpflicht weniger als der Betrag ist. Der monetäre Wert aller fertigen Waren und Dienstleistungen, die innerhalb eines Landes erstellt wurden, grenzt in einer bestimmten Zeitspanne. Backtesting eine einfache Stock Trading-Strategie Hinweis: Dieser Beitrag ist nicht finanzielle Beratung Dies ist nur eine unterhaltsame Art und Weise zu erkunden einige der Fähigkeiten, die R hat für Importieren und Manipulieren von Daten. Ich habe vor kurzem einen Beitrag auf ETF Prophet gelesen, der eine interessante Aktienhandelsstrategie in Excel erforschte. Die Strategie ist einfach: Finden Sie den Höhepunkt der Aktie über die letzten 200 Tage, und zählen Sie die Anzahl der Tage, die seit diesem hohen verstrichen sind. Wenn es mehr als 100 Tage, besitzen die Aktie. Wenn es mehr als 100 Tage dauert, ist es nicht so. Diese Strategie ist sehr einfach, aber es gibt einige beeindruckende Ergebnisse. (Beachten Sie jedoch, dass dieses Beispiel Daten verwendet, die nicht von Splits oder Dividenden angepasst wurden und andere Fehler enthalten könnten. Darüber hinaus ignorieren wir die Handelskosten und Ausführungsverzögerungen, die beide die Strategieleistung beeinflussen.) Die Implementierung dieser Strategie in R ist einfach, Und bietet zahlreiche Vorteile gegenüber Excel, die primäre davon ist, dass das Ziehen Börsen-Daten in R ist einfach, und wir können diese Strategie auf eine breite Palette von Indizes mit relativ geringem Aufwand zu testen. Zuerst laden wir Daten für GSPC mit quantmod herunter. (GSPC steht für den SampP 500 Index). Als nächstes konstruieren wir eine Funktion zur Berechnung der Anzahl der Tage seit dem n-Tage-Hoch in einer Zeitreihe und eine Funktion zur Umsetzung unserer Handelsstrategie. Die letztere Funktion dauert 2 Parameter: die n-Tage hoch, die du verwenden möchtest, und die Anzahl der Tage, die so hoch sind, dass du die Aktie halten wirst. Das Beispiel ist 200 und 100, aber man könnte leicht ändern, um die 500-Tage-Hoch und sehen, was passiert, wenn Sie die Aktie halten 300 Tage nach dem vor dem Rettung. Da diese Funktion parametriert ist, können wir viele andere Versionen unserer Strategie leicht testen. Wir legen den Anfang unserer Strategie mit Nullen fest, so dass es die gleiche Länge wie unsere Eingangsdaten haben wird. (Wenn Sie eine ausführlichere Erläuterung der daySinceHigh-Funktion wünschen, sehen Sie die Diskussion über Cross-validated). Wir multiplizieren unsere Position (0,1) Vektor durch die Renditen aus dem Index, um unsere Strategie8217s Renditen zu erhalten. Jetzt konstruieren wir eine Funktion, um einige Statistiken über eine Handelsstrategie zurückzugeben und unsere Strategie mit der Benchmark zu vergleichen. Etwas willkürlich hat ich mich entschlossen, die kumulative Rendite zu betrachten, durchschnittliche jährliche Rendite, Sharpe Ratio, Gewinne, mittlere jährliche Volatilität, max. Drawdown und max. Andere Stats wäre einfach zu implementieren. Wie Sie sehen können, verhält sich diese Strategie günstig mit dem Standard-8220buy-and-hold8221-Ansatz. Schließlich testen wir unsere Strategie auf 3 weitere Indizes: FTSE, die Irland und Großbritannien, den Dow Jones Industrial Index, repräsentiert. Die bis 1896 zurückgeht, und die N225. Was Japan darstellt. I8217ve funktionalisiert den gesamten Prozess, so können Sie jede neue Strategie mit 1 Zeile Code testen: Verpassen Sie nie ein Update Abonnieren Sie R-Blogger, um E-Mails mit den neuesten R-Posts zu erhalten. (Du wirst diese Nachricht nicht wieder sehen.) 30. November 2016, 12:34 Uhr Vor ein paar Monaten zeige mir ein Leser diese neue Art, R und Excel zu verbinden. Ich weiß nicht, wie lange das schon gewesen ist, aber ich habe nie darauf gekommen und ich habe nie einen Blog-Post oder Artikel darüber gesehen. Also habe ich beschlossen, einen Beitrag zu schreiben, da das Tool 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 entworfen, um laufende R-Funktionen aus Excel-Tabellenkalkulationen zu unterstützen. In Excel-Begriffen, it8217s für das Schreiben von benutzerdefinierten Funktionen (UDFs) in R. In diesem Beitrag I8217m nicht zeigen, wie R und Excel über BERT interagieren. Es gibt hier sehr gute Tutorials. Hier und hier Stattdessen möchte ich dir zeigen, wie ich BERT benutzt habe, um einen 8220control tower8221 für meinen Handel zu bauen. Meine Trading-Signale werden mit einer langen Liste von R-Dateien generiert, 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 und dennoch leistungsstarke Anwendung in Form einer Excel-Datei mit minimalem VBA-Code erstellen. Letztlich habe ich eine einzige Excel-Datei, die alle notwendigen Aufgaben sammelt, um mein Portfolio zu verwalten: Datenbank-Update, Signalerzeugung, Auftragsvorlage etc8230 Mein Ansatz könnte in den folgenden 3 Schritten abgebaut werden: Verwenden Sie XML, um benutzerdefinierte Menüs und Schaltflächen in einem Excel zu erstellen Datei. Die oben genannten Menüs und Tasten sind im Wesentlichen Anrufe an VBA-Funktionen. Diese VBA-Funktionen werden um R-Funktionen, die mit BERT definiert sind, umbrochen. Mit diesem Ansatz kann ich eine klare Unterscheidung zwischen dem Kern meines Codes, der in R, SQL und Python gehalten wird, und alles, was verwendet wird, um Ergebnisse anzuzeigen und zu formatieren, die in Excel, VBA amp XML gespeichert sind. In den folgenden Abschnitten stelle ich die Voraussetzung für die Entwicklung eines solchen Ansatzes und eine Schritt für Schritt Anleitung, die erklärt, wie BERT verwendet werden könnte, um einfach Daten von R nach Excel mit minimalem VBA-Code zu übergeben. 1 8211 BERT von diesem Link herunterladen und installieren. 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 des benutzerdefinierten UI-Editors. Der benutzerdefinierte UI-Editor ermöglicht das Erstellen von benutzerdefinierten Menüs und Schaltflächen im Excel-Band. Hier finden Sie eine Schritt-für-Schritt-Prozedur. Schritt für Schritt Anleitung 1 8211 R Code: Die untenstehende R-Funktion ist ein sehr einfaches Stück Code zur Veranschaulichung nur. Es berechnet und gibt die Residuen aus einer linearen Regression zurück. Das wollen wir in Excel abrufen. Speichern Sie diese in einer Datei namens myRCode. R (jeder andere Name ist in Ordnung) in einem Verzeichnis Ihrer Wahl. 2 8211 funktionen. R in BERT. Wählen Sie aus Excel das Add-Ins - gt Home Directory aus und öffnen Sie die Datei function. R. Fügen Sie in dieser Datei den folgenden Code ein. Stellen Sie sicher, dass Sie den richtigen 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. Sollten Sie die in Schritt 1 erstellte R-Datei ändern wollen, müssen Sie sie mit dem BERT-Button 8220Reload Startup File8221 aus dem Add-Ins-Menü in Excel 3 8211 in Excel neu laden: Eine Datei mit dem Namen myFile. xslm erstellen und speichern (Jeder andere name ist gut). Dies ist eine Makro-fähige Datei, die Sie im Verzeichnis Ihrer Wahl speichern. Sobald die Datei gespeichert ist, schließen Sie es. 4 8211 Öffnen Sie die oben erstellte Datei im Custom UI Editor: Sobald die Datei geöffnet ist, fügen Sie den folgenden Code ein. Sie sollten so etwas im XML-Editor haben: Im Wesentlichen erstellt dieses Stück XML-Code ein zusätzliches Menü (RTrader), eine neue Gruppe (Meine Gruppe) und eine benutzerdefinierte Schaltfläche (New Button) im Excel-Band. Sobald you8217re getan ist, öffnen Sie myFile. xslm in Excel und schließen Sie den benutzerdefinierten Benutzeroberteil-Editor. Du solltest so etwas sehen 5 8211 VBA-Editor öffnen In myFile. xlsm füge ein neues Modul ein. Fügen Sie den Code unten im neu erstellten Modul ein. Dadurch werden die bisherigen Ergebnisse im Arbeitsblatt gelöscht. 6 8211 Klicken Sie auf Neue Schaltfläche. Gehen Sie nun wieder in die Kalkulationstabelle und klicken Sie im RTrader-Menü auf die Schaltfläche 8220New Button8221. Du solltest so etwas wie das unten erscheinen lassen. Der Leitfaden oben ist eine sehr grundlegende Version dessen, was mit BERT erreicht werden kann, aber es zeigt Ihnen, wie Sie die Kraft von mehreren spezifischen Werkzeugen kombinieren können, um Ihre eigene benutzerdefinierte Anwendung zu erstellen. Aus meiner Perspektive ist das Interesse eines solchen Ansatzes die Fähigkeit, zusammen R und Excel offensichtlich zusammenzukleben, aber auch über XML (und Batch) Stücke von Code von Python, SQL und mehr einzuschließen. Das ist genau das, was ich brauchte Schließlich wäre ich neugierig zu wissen, ob jemand irgendwelche Erfahrungen mit BERT hat. 19. August 2016, 9:26 Uhr Beim Testen von Handelsstrategien ist ein gemeinsamer Ansatz, den Anfangsdatensatz in die Beispieldaten aufzuteilen: den Teil der Daten, der entworfen ist, um zu kalibrieren Das Modell und aus den Beispieldaten: der Teil der Daten, die verwendet werden, um die Kalibrierung zu validieren und sicherzustellen, dass die Leistung, die in der Probe erstellt wird, in der realen Welt reflektiert wird. 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 von 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 aus den Beispieldaten im Einklang mit dem war, was in der Stichprobe erstellt wurde. In der Grafik unterhalb der blauen Bereich stellt die aus der Probe Leistung für eine meiner Strategien. Eine einfache visuelle Inspektion zeigt eine gute Passform zwischen der in und aus der Probe Leistung aber welchen Grad des Vertrauens 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 In und aus den 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 übersetzt werden. Es gibt einen nicht parametrischen statistischen Test, der genau das tut: der Kruskall-Wallis Test. Eine gute Definition dieses Tests konnte auf R-Tutor gefunden werden 8220A Sammlung von Datenproben sind unabhängig, wenn sie aus nicht verwandten Populationen kommen und die Proben sich nicht gegenseitig beeinflussen. Mit dem Kruskal-Wallis-Test. Können wir entscheiden, ob die Populationsverteilungen identisch sind, ohne davon auszugehen, dass sie der Normalverteilung folgen.8221 Der zusätzliche Vorteil dieses Tests nimmt keine normale Verteilung an. Es gibt andere Tests der gleichen Art, die in diesen Rahmen passen könnte. Der Mann-Whitney-Wilcoxon-Test oder die Kolmogorov-Smirnov-Tests passen perfekt zu dem Rahmen, der hier beschrieben wird, aber das geht über den Rahmen dieses Artikels hinaus, um die Vor - und Nachteile von jedem dieser Tests zu besprechen. Eine gute Beschreibung zusammen mit R-Beispielen finden Sie hier. Hier ist der Code, der verwendet wird, um das obige Diagramm und die Analyse zu erzeugen: Im obigen Beispiel ist die Abtastperiode länger als die aus der Stichprobenperiode, daher habe ich zufällig 1000 Teilmengen der in Beispieldaten erstellt, die jeweils dieselbe Länge haben wie die aus Der Beispieldaten. Dann habe ich jede in Probe Teilmenge gegen die aus der Probe Daten getestet und ich habe die p-Werte aufgezeichnet. Dieser Prozess schafft nicht einen 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 weit über null (0,478), was anzeigt, dass die Nullhypothese akzeptiert werden sollte: Es gibt starke Hinweise darauf, dass die Ein - und Ausstiegsproben aus derselben Verteilung stammen. Wie üblich, was in diesem Beitrag präsentiert wird, ist ein Spielzeugbeispiel, das nur die Oberfläche des Problems kratzt und auf individuelle Bedürfnisse zugeschnitten werden sollte. 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 folgenden zwei Beiträgen inspiriert: Vigier Alexandre, Chmil Swann (2007), Auswirkungen verschiedener Optimierungsfunktionen auf die Out-of-Sample-Performance von genetisch entwickelten Handelsstrategien, Prognose der Finanzmärkte Konferenz Vigier Alexandre, Chmil Swann (2010), An Optimierungsprozess zur Verbesserung der Stichprobenkonsistenz, ein Börsenkoffer, JP Morgan Cazenove Equity Quantitative Konferenz, London Oktober 2010 13. Dezember 2015, 14:03 Uhr Die quantitative Forschung impliziert viel Daten knirscht und man braucht saubere und zuverlässige Daten zu Dies erreichen. Was wirklich benötigt wird, ist saubere Daten, die leicht zugänglich sind (auch ohne Internetverbindung). Der effizienteste Weg, dies für mich zu tun, war, einen Satz von csv-Dateien zu pflegen. Offensichtlich kann dieser Prozess in vielerlei Hinsicht behandelt werden, aber ich fand sehr effiziente und einfache Überstunden, um ein Verzeichnis zu pflegen, in dem ich csv-Dateien speichere und aktualisiere. Ich habe eine csv datei pro instrument und jede datei benannt nach dem instrument es enthält. Der Grund, warum ich das tue, ist zweifach: Zuerst möchte ich keine Daten von Yahoo, Google etc8230 herunterladen, jedes Mal, wenn ich eine neue Idee testen möchte, aber noch wichtiger, sobald ich ein Problem erkannt und behoben habe, muss ich das auch nicht haben Mach das mal wieder das nächste Mal, wenn ich das gleiche Instrument brauche. Einfach und doch sehr effizient. Der Prozess ist in der folgenden Tabelle zusammengefasst. In allem, was folgt, nehme ich an, dass Daten von Yahoo kommen. Der Code muss für Daten von Google, Quandl etc8230 geändert werden. Darüber hinaus stelle ich den Prozess der Aktualisierung der täglichen Preisdaten vor. Das Setup wird für höhere Frequenzdaten und andere Arten von Datensätzen unterschiedlich sein (d. h. abweichend von den Preisen). 1 8211 Erstmaliges Herunterladen (listOfInstruments. R amp historicData. R) Die Datei listOfInstruments. R ist eine Datei, die nur die Liste aller Instrumente enthält. Wenn ein Instrument nicht Teil meiner Liste ist (d. h. keine csv-Datei in meinem Datenordner) oder wenn Sie es zum ersten Mal tun, müssen Sie den ursprünglichen historischen Datensatz herunterladen. Das Beispiel unten lädt eine Reihe von ETFs Tagespreise von Yahoo Finance zurück bis Januar 2000 und speichern Sie die Daten in einer CSV-Datei. 2 8211 Aktualisieren vorhandener Daten (updateData. R) Der untenstehende Code startet von vorhandenen Dateien im dedizierten Ordner und aktualisiert sie alle nacheinander. Ich laufe diesen Prozeß jeden Tag, außer wenn ich im Urlaub bin. Um ein neues Instrument hinzuzufügen, führen Sie einfach Schritt 1 oben für dieses Instrument allein. 3 8211 Erstellen einer Batch-Datei (updateDailyPrices. bat) Ein weiterer wichtiger Teil des Jobs ist die Erstellung einer Batch-Datei, die den Aktualisierungsprozess oben automatisiert (I8217m ein Windows-Benutzer). Dies vermeidet das Öffnen von RRStudio und führt den Code von dort aus. Der Code unten ist 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 habe, um die Ausführung zu verfolgen. Der Prozess oben ist extrem einfach, weil er nur beschreibt, wie man tägliche Preisdaten aktualisiert. Ich habe das schon seit einiger Zeit benutzt und es hat mich schon sehr gut für mich gearbeitet. Für fortgeschrittenere Daten und höhere Frequenzen können die Dinge viel schwieriger werden. Wie üblich alle Kommentare begrüßen 23. März 2015, 20:55 Uhr Wenn es darum geht, ein Portfolio von Aktien zu versichern, ist ein Problem, dass es sich um eine absolute Rückkehrstrategie handelt. In der ehemaligen muss man mehr Aktien halten als in den späteren, wo überhaupt keine Aktien vorhanden sind, wenn es nicht gut genug 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 Bestände gegenüber einem Benchmark gehalten werden, desto höher ist der Tracking-Error (z. B. höheres Risiko). Die nachfolgende Analyse ist weitgehend durch das Buch 8220Active Portfolio Management8221 von Grinold amp Kahn inspiriert. Dies ist die Bibel für alle, die daran interessiert sind, ein Portfolio gegen einen Benchmark zu führen. Ich ermutige jeden mit einem Interesse an dem Thema, das Buch von Anfang bis Ende zu lesen. It8217s sehr gut geschrieben und legt die Grundlagen des systematischen aktiven Portfoliomanagements (ich habe keine Zugehörigkeit zum Redakteur oder den Autoren). 1 8211 Faktoranalyse Hier versuchen wir, die Bestände im Anlageuniversum so genau wie möglich auf eine Forward-Return-Basis zu richten. Viele Menschen kamen mit vielen Werkzeugen und unzählige Varianten dieser Werkzeuge wurden entwickelt, um dies zu erreichen. In diesem Beitrag konzentriere ich mich auf zwei einfache und weit verbreitete Metriken: Information Coefficient (IC) und Quantiles Return (QR). 1.1 8211 Informationskoeffizient Der Horizont für die Forward Return muss vom Analytiker und it8217s eine Funktion der Strategie8217s Umsatz und der Alpha-Zerfall definiert werden (dies wurde Gegenstand umfangreicher Forschung). Offensichtlich müssen ICs in absoluten Zahlen so hoch wie möglich sein Für den scharfen Leser, im Buch von Grinold amp Kahn, wird eine Formel verknüpft Information Ratio (IR) und IC gegeben: mit der Breite ist die Anzahl der unabhängigen Wetten (Trades). Diese Formel ist als Grundgesetz des aktiven Managements bekannt. Das Problem ist, dass oft, definieren Breite genau ist nicht so einfach wie es klingt. 1.2 8211 Quantile Rückkehr Um eine genauere Schätzung der Faktor-Vorhersagekraft zu erhalten, ist es notwendig, einen Schritt weiter zu gehen und Gruppenbestände durch Quantil von Faktorwerten zu analysieren und dann die durchschnittliche Vorwärtsrendite (oder jede andere zentrale Tendenzmetrik) von jedem zu analysieren Quantile Die Nützlichkeit dieses Werkzeuges ist einfach. Ein Faktor kann einen guten IC haben, aber seine prädiktive Kraft könnte auf eine kleine Anzahl von Aktien begrenzt sein. Das ist nicht gut, da ein Portfoliomanager innerhalb des gesamten Universums Aktien auswählen muss, um seinen Tracking-Fehler-Constraint zu erfüllen. Gute Quantile Rückkehr sind durch eine monotone Beziehung zwischen den einzelnen Quantilen und Forward Returns gekennzeichnet. Alle Bestände im SampP500 Index (zum Zeitpunkt des Schreibens). Offensichtlich gibt es eine Überlebensschifffahrt: Die Liste der Bestände im Index hat sich zwischen dem Beginn und dem Ende der Stichprobenperiode deutlich verändert, aber es ist nur für die Veranschaulichung gut genug. Der Code unten lädt einzelne Aktienkurse im SampP500 zwischen Jan 2005 und heute (es dauert eine Weile) und verwandelt die Rohpreise in den letzten 12 Monaten und im letzten Monat. Der erstere ist unser Faktor, dieser wird als Vorwärtsrückmeldung verwendet. Unten ist der Code zur Berechnung von Information Coefficient 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 ab, was Sie erfassen möchten und ob Sie einen breiten Überblick haben oder sich auf Vertriebsschwänze konzentrieren möchten. Für die Schätzung der Renditen innerhalb jedes Quintils wurde Median als zentraler Tendenzschätzer verwendet. Diese Maßnahme ist viel weniger empfindlich gegenüber Ausreißern als arithmetisches Mittel. Und schließlich der Code, um die Quantiles Return Chart zu produzieren. 3 8211 Wie man die oben genannten Informationen ausnutzt In der Grafik oben Q1 ist die letzte nach 12 Monaten Rückkehr und Q5 am höchsten. Es gibt eine fast monotone Zunahme der Quantile Rückkehr zwischen Q1 und Q5, die deutlich zeigt, dass Aktien, die in Q5 fallen, übertreffen diejenigen, die in Q1 um etwa 1 pro Monat fallen. Dies ist sehr wichtig und mächtig für solch einen einfachen Faktor (nicht wirklich eine Überraschung though8230). Daher gibt es größere Chancen, den Index zu übertreffen, indem sie die Bestände, die in Q5 fallen, überlagern und die im Vergleich zum Benchmark in Q1 fallenden Personen untergewichten. Ein IC von 0,0206 könnte nicht viel in sich selbst bedeuten, aber es8217s signifikant von 0 und zeigt eine gute prädiktive Macht der letzten 12 Monate Rückkehr insgesamt. Formale Signifikanztests können ausgewertet werden, aber das geht über den Rahmen dieses Artikels hinaus. 4 8211 Praktische Einschränkungen Das obige Rahmenwerk eignet sich hervorragend für die Bewertung von Investitionen Faktor8217s Qualität jedoch gibt es eine Reihe von praktischen Einschränkungen, die für die Umsetzung des realen Lebens angegangen werden müssen: Rebalancing. In der obigen Beschreibung hat it8217s davon ausgegangen, dass das Portfolio am Ende eines jeden Monats vollständig ausgeglichen wird. Dies bedeutet, dass alle Aktien, die in Q1 fallen, 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 die Industrie oder das Sektorgewicht, es bestehen Einschränkungen für den Umsatz usw8230 Transaktionskosten. Dies ist bei der obigen Analyse nicht berücksichtigt worden. Dies ist eine ernsthafte Bremse für die Umsetzung des realen Lebens. 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 Manager keine Einschränkungen, die sie von der Übersetzung ihrer Investitionen Einblicke direkt in Portfolio-Wetten auszuschließen. Und schließlich, ich bin begeistert von dem, was in weniger als 80 Zeilen Code mit R8230 erreicht werden kann. Wie üblich alle Kommentare willkommen 14. März 2014, 13:07 Die Frage sollte man sich immer fragen, wenn man technische Indikatoren verwendet, was wäre ein Ziel Kriterien, um Indikatorparameter auszuwählen (zB warum mit 14 Tagen RSI anstatt 15 oder 20 Tage). Genetische Algorithmen (GA) sind gut geeignet Werkzeuge, um diese Frage zu beantworten. In diesem Beitrag I8217ll zeigen Sie, wie Sie das Problem in R einrichten. Bevor ich die übliche Erinnerung vorangehe: Was ich in diesem Beitrag präsentiere, ist nur ein Spielzeugbeispiel und keine Einladung zu investieren. Es ist auch keine fertige Strategie, sondern eine Forschungsidee, die weiter erforscht, entwickelt und auf individuelle Bedürfnisse zugeschnitten werden muss. Was sind genetische Algorithmen Die beste Beschreibung von GA, auf die ich stieß, kommt von Cybernatic Trading ein Buch von Murray A. Ruggiero. 8220Genetische Algorithmen wurden von John Holland Mitte 1970 erfunden, um harte Optimierungsprobleme zu lösen. Diese Methode verwendet natürliche Auswahl, Überleben der fittest8221. Der allgemeine Prozess folgt den folgenden Schritten: Kodieren Sie das Problem in Chromosomen Verwenden Sie die Codierung, entwickeln Sie eine Fitness-Funktion für die Verwendung bei der Bewertung jedes Chromosomen8217s Wert bei der Lösung eines gegebenen Problems Initialisieren Sie eine Population von Chromosomen Auswerten jedes Chromosom in der Bevölkerung Erstellen Sie neue Chromosomen durch Paarung von zwei Chromosomen Dies geschieht durch Muting und Rekombination von zwei Eltern, um zwei Kinder zu bilden (Eltern werden zufällig ausgewählt, aber durch ihre Fitness vorgespannt) Bewerten Sie das neue Chromosom Löschen Sie ein Mitglied der Bevölkerung, das weniger fit ist als das neue Chromosom und legen Sie das neue Chromosom in die Bevölkerung ein . Wenn die Stop-Kriterien erreicht sind (maximale Anzahl von Generationen, Fitness-Kriterien ist gut genug8230) dann wieder das beste Chromosom alternativ gehen Sie zu Schritt 4 Aus einer Handelsperspektive GA sind sehr nützlich, weil sie gut im Umgang mit hoch nichtlinearen Problemen sind. Allerdings zeigen sie einige böse Features, die erwähnenswert sind: Über Montage: Dies ist das Hauptproblem und it8217s hinunter zum Analytiker, um das Problem in einer Weise einzurichten, die dieses Risiko minimiert. Rechenzeit. Wenn das Problem nicht richtig definiert ist, kann es extrem lang sein, eine anständige Lösung zu erreichen, und die Komplexität steigt exponentiell mit der Anzahl der Variablen an. Daher die Notwendigkeit, die Parameter sorgfältig auszuwählen. Es gibt mehrere R-Pakete, die sich mit GA beschäftigen, ich entschied mich für die häufigsten: rgenoud Tägliche Schlusskurse für die meisten flüssigen ETFs von Yahoo Finanzen gehen zurück bis Januar 2000. Die in der Probe Zeitraum geht von Januar 2000 bis Dezember 2010. Die Out of Die Sample-Periode beginnt im Januar 2011. Die Logik ist wie folgt: Die Fitness-Funktion wird über die im Sample-Zeitraum optimiert, um eine Reihe von optimalen Parametern für die ausgewählten technischen Indikatoren zu erhalten. Die Performance dieser Indikatoren wird dann in der Periodendauer ausgewertet. Aber vorher müssen die technischen Indikatoren ausgewählt werden. Der Aktienmarkt weist zwei Hauptmerkmale auf, die jedem mit einigen Handelserfahrungen bekannt sind. Langfristige Dynamik und kurzfristige Umkehrung. Diese Features können in der Zeit der technischen Indikatoren übersetzt werden durch: gleitende Durchschnitte kreuzen und RSI. Dies stellt einen Satz von 4 Parametern dar: Rückblickperioden für lange und kurzfristige Bewegungsdurchschnitte, Rückblickzeit für RSI und RSI-Schwelle. Die Sätze von Parametern sind die Chromosomen. Das andere Schlüsselelement ist die Fitnessfunktion. Vielleicht möchten wir so etwas wie: maximale Rendite oder Sharpe-Verhältnis oder minimale durchschnittliche Drawdown verwenden. Im folgenden entschied ich mich, das Sharpe-Verhältnis zu maximieren. Die R-Implementierung ist ein Satz von 3 Funktionen: fitnessFunction. Definiert die Fitness-Funktion (z. B. maximale Sharpe-Ratio), die innerhalb der GA-Engine-TradingStatistics verwendet werden soll. Zusammenfassung der Handelsstatistiken für die Ein - und Ausstiegsphasen für Vergleichszwecke genoud. Der GA-Motor aus dem rgenoud-Paket Die genoud-Funktion ist ziemlich komplex, aber ich werde nicht erklären, was jeder Parameter bedeutet, wie ich diesen Beitrag kurz halten will (und die Dokumentation ist wirklich gut). In der nachstehenden Tabelle präsentiere ich für jedes Instrument die optimalen Parameter (RSI Rückblickperiode, RSI Schwelle, Short Term Moving Average und Long Term Moving Average) zusammen mit dem In und Out der Musterhandelsstatistik. Bevor ich die obigen Ergebnisse kommentiere, möchte ich einige wichtige Punkte erklären. Um die oben definierte Logik anzupassen, habe ich die Parameter begrenzt, um sicherzustellen, dass die Rückblickperiode für den langfristig gleitenden Durchschnitt immer länger ist, dass der kürzere gleitende Durchschnitt. Ich habe auch den Optimierer eingeschränkt, nur die Lösungen mit mehr als 50 Trades in der Probeperiode (z. B. statistische Signifikanz) zu wählen. Insgesamt sind die Stichproben von weitem nicht beeindruckend. Die Renditen sind niedrig, auch wenn die Anzahl der Trades klein ist, um das Ergebnis wirklich bedeutend zu machen. Allerdings gibt es einen erheblichen Verlust an Effizienz zwischen in und außerhalb der Probe Zeitraum für Japan (EWJ), die sehr wahrscheinlich bedeutet, über Montage. Dieser Beitrag soll dem Leser die Werkzeuge geben, um GA in einem quantitativen Handelsrahmen richtig zu nutzen. Noch einmal ist es ein Beispiel, das weiter verfeinert werden muss. Ein paar potenzielle Verbesserung zu erforschen wäre: Fitness-Funktion. Die Maximierung des Sharpe-Verhältnisses ist sehr einfach. Eine Funktion von 8220smarter8221 würde sicherlich das Stichprobenmusterprotokoll verbessern. Wir versuchen, ein sehr einfaches Muster zu erfassen. Eine genauere Musterforschung ist definitiv erforderlich. Optimierung Es gibt viele Möglichkeiten, die Art und Weise, wie die Optimierung durchgeführt wird, zu verbessern. Dies würde sowohl die Berechnungsgeschwindigkeit als auch die Rationalität der Ergebnisse verbessern. Der in diesem Beitrag verwendete Code steht auf einem Gist-Repository zur Verfügung. Wie üblich alle Kommentare willkommen 28. Februar 2014, 15:52 Uhr Es gibt eine enorme Literatur sowohl akademisch als auch empirisch über die Marktprognose. Die meiste Zeit vermischt es zwei Marktmerkmale: Größe und Richtung. In diesem Artikel möchte ich mich auf die Ermittlung der Marktrichtung konzentrieren. Das Ziel, das ich mich gesetzt habe, ist es, Marktbedingungen zu identifizieren, wenn die Chancen deutlich auf einen Auf - oder Abwärtsmarkt vorgespannt sind. Dieser Beitrag gibt ein Beispiel dafür, wie CART (Klassifikation und Regressionsbäume) in diesem Zusammenhang verwendet werden kann. Bevor ich die übliche Erinnerung vorangehe: Was ich in diesem Beitrag präsentiere, ist nur ein Spielzeugbeispiel und keine Einladung zu investieren. Es ist auch keine fertige Strategie, sondern eine Forschungsidee, die weiter erforscht, entwickelt und auf individuelle Bedürfnisse zugeschnitten werden muss. 1 8211 Was ist CART und warum benutzt es aus Statistiken, CART sind eine Reihe von Techniken für die Klassifizierung und Vorhersage. Die Technik zielt darauf ab, Regeln zu erstellen, die den Wert einer Outcome - (Ziel-) Variablen aus bekannten Werten von Prädiktor - (erläuternden) Variablen vorhersagen. Es gibt viele verschiedene Implementierungen, aber sie sind alle teilen ein allgemeines Merkmal und das ist, was ich interessiert in. Aus Wikipedia, Algorithmen für den Bau von Entscheidungsbäumen in der Regel arbeiten top-down, indem Sie eine Variable in jedem Schritt, der am besten Splitt der Satz von Elementen. Verschiedene Algorithmen verwenden unterschiedliche Metriken für die Messung von 8220best8221. Diese messen im Allgemeinen die Homogenität der Zielvariablen innerhalb der Teilmengen. Diese Metriken werden auf jede Kandidatensatzmenge angewendet, und die resultierenden Werte werden kombiniert (z. B. gemittelt), um ein Maß für die Qualität des Splits zu liefern. CART-Methodik zeigt einige Eigenschaften, die für die Marktanalyse sehr gut geeignet sind: Nicht parametrisch. CART kann jede Art von statistischen Verteilungen behandeln Nicht linear. CART kann ein großes Spektrum der Abhängigkeit zwischen Variablen verarbeiten (z. B. nicht auf lineare Beziehungen beschränkt) Robust zu Ausreißern Es gibt verschiedene R-Pakete, die sich mit rekursiver Partitionierung beschäftigen, ich benutze hier für die Bäume Schätzung und rpart. plot für Bäume Zeichnung. 2 8211 Datenverstärker Experiment Design Tägliche OHLC Preise für die meisten flüssigen ETFs von Januar 2000 bis Dezember 2013 extrahiert aus Google Finanzen. Die Stichprobenperiode geht von Januar 2000 bis Dezember 2010, der Rest des Datensatzes ist der Stichzeitraum. Vor dem Ausführen einer Art von Analyse muss der Datensatz für die Aufgabe vorbereitet werden. Die Zielvariable ist die ETF-wöchentliche Vorwärtsrendite, die als zwei Zustände des Weltergebnisses (UP oder DOWN) definiert ist. Wenn wöchentlich vorwärts gt 0 dann der Markt im UP-Zustand, DOWN-Staat ansonsten Die erklärenden Variablen sind eine Reihe von technischen Indikatoren aus dem anfänglichen täglichen OHLC-Datensatz abgeleitet. Jeder Indikator stellt ein gut dokumentiertes Marktverhalten dar. Um das Rauschen in den Daten zu reduzieren und zu versuchen, robuste Beziehungen zu identifizieren, wird jede unabhängige Variable als ein binäres Ergebnis betrachtet. Volatilität (VAR1). Hohe Volatilität ist in der Regel mit einem Down-Markt und niedrige Volatilität mit einem up-Markt verbunden. Die Volatilität ist definiert als die 20 Tage rohe ATR (Average True Range) auf ihren gleitenden Durchschnitt (MA) verbreitet. Wenn roh ATR gt MA dann VAR1 1, sonst VAR1 -1. Kurzfristiger Impuls (VAR2). Der Aktienmarkt weist kurzfristiges Impulsverhalten auf, das hier durch eine 5 Tage einfache gleitende Durchschnitte (SMA) erfasst wird. Wenn Preis gt SMA dann VAR2 1 sonst VAR2 -1 Langzeitmoment (VAR3). Der Aktienmarkt zeigt ein langfristiges Impulsverhalten, das hier durch eine 50 Tage einfache gleitende Durchschnitte (LMA) erfasst wird. Wenn Preis gt LMA dann VAR3 1 sonst VAR3 -1 Kurzfristige Umkehr (VAR4). Dies wird von der CRTDR erfasst, die für Close Relative to Daily Range steht und wie folgt berechnet wird:. Wenn CRTDR gt 0,5, dann VAR4 1 sonst VAR4 -1 Autokorrelation Regime (VAR5). Der Aktienmarkt tendiert dazu, durch Perioden negativer und positiver Autokorrelationsregelungen zu gehen. Wenn die Autokorrelation über die letzten 5 Tage gt 0 zurückgekehrt wird, dann VAR5 1 sonst VAR5 -1 stelle ich ein Baumbeispiel mit einigen Erklärungen an. Im obigen Baum ist der Weg zum Knoten 4: VAR3 gt0 (Langzeitmomentum gt 0) und VAR4 Gt 0 (CRTDR gt 0). Das rote Rechteck zeigt an, dass es sich um ein DOWN-Blatt handelt (z. B. Terminalknoten) mit einer Wahrscheinlichkeit von 58 (1 8211 0,42). In Marktbegriffen bedeutet dies, dass, wenn Long Term Momentum ist und CRTDR ist gt 0,5 dann die Wahrscheinlichkeit einer positiven Rendite nächste Woche ist 42 auf der Grundlage der in Beispiel Probe Daten. 18 gibt den Anteil des Datensatzes an, der in diesen Endknoten fällt (z. B. Blatt). Es gibt viele Möglichkeiten, den oben genannten Ansatz zu verwenden, ich entschied mich, alle möglichen Bäume zu schätzen und zu kombinieren. Von den in Beispieldaten sammle ich alle Blätter von allen möglichen Bäumen und ich sammle sie in eine Matrix. Dies ist die 8220rules Matrix8221 geben die Wahrscheinlichkeit der nächsten Woche beeing UP oder DOWN. Ich verwende die Regeln in der obigen Matrix auf die aus Beispieldaten (Januar 2011 8211 Dez 2013) und ich vergleiche die Ergebnisse mit dem realen Ergebnis. Das Problem mit diesem Ansatz ist, dass ein einzelner Punkt (Woche) in mehrere Regeln fallen kann und sogar zu UP - und DOWN-Regeln gleichzeitig gehören kann. Deshalb wende ich ein Abstimmungsverfahren an. Für eine gegebene Woche summiere ich alle Regeln, die für diese Woche gelten, was eine 1 für eine UP-Regel und -1 für eine DOWN-Regel gibt. Wenn die Summe größer als 0 ist, wird die Woche als UP klassifiziert, wenn die Summe negativ ist it8217s eine DOWN-Woche und wenn die Summe gleich 0 ist, wird es in dieser Woche keine Position geben (return 0). Die obige Methodik wird auf a angewendet Satz von sehr flüssigen ETFs. Ich zeichne unterhalb der Stichproben-Equity-Kurven zusammen mit der Buy-and-Hold-Strategie im gleichen Zeitraum. Die anfänglichen Ergebnisse scheinen ermutigend zu sein, auch wenn die Qualität des Ergebnisses durch das Instrument sehr unterschiedlich ist. Allerdings gibt es einen riesigen Raum für Verbesserungen. Ich stelle noch einige Richtungen für weitere Analyse Path Optimalität. Der hier verwendete Algorithmus zur Definition der Bäume ist bei jedem Split optimal, aber er garantiert die Optimalität des Weges. Das Hinzufügen einer Metrik zur Messung der Optimalität des Pfades würde sicherlich die obigen Ergebnisse verbessern. Andere Variablen. Ich wählte die erklärenden Variablen ausschließlich auf Erfahrung. Es ist sehr wahrscheinlich, dass diese Wahl weder gut noch optimal ist. Backtest-Methodik Ich habe eine einfache In und Out der Beispielmethodik verwendet. In einem formelleren Backtest würde ich lieber ein rollenden oder expandierenden Fenster von in und aus Beispiel Sub-Perioden (z. B. Walk-Forward-Analyse) Wie üblich, alle Kommentare willkommen
No comments:
Post a Comment