Monday 9 January 2017

Backtesting Trading Strategien In Matlab

Während ich mag, wo diese Frage geht, würde ich vorschlagen, um es ein wenig konkreter. Welche Teile des Backtesting-Prozesses möchten Sie lernen, Dies kann überall reichen von nur Schätzung einer normalen Rendite, wo das Portfolio zurück aus Ihrer Strategie bereits gegeben werden, um die Umsetzung einer vollständigen Portfolio-Formulierung algorithmisch gegeben. Ndash Constantin Um ehrlich zu sein, weiß ich nicht viel über Backtesting. Mir wurde gesagt, dass ich während meines Praktikums neue Strategien unterstützen oder den aktuellen Kurs verbessern muss. So möchte ich ein bisschen mehr über das Thema wissen, bevor ich anfange. Was sind die verschiedenen Teile davon. ndash Maxime 30. Dezember 14 um 21:31 Uhr Die allgemeine Idee für Beteiligungsrechte, eine einfache Backtest wird in der Regel aus zwei Schritten: Berechnung der Portfoliorendite aus Ihrem Portfolio Bildungsgesetz (oder Handelsstrategie) Risiko Anpassung der Portfoliorenditen eine mit Asset Pricing-Modell Schritt 2 ist einfach eine Regression und rechnerisch sehr einfach in Matlab. Was ist schwieriger ist die Umsetzung von Schritt 1, die Sie benötigen, um sehr bequem in Matlab werden, und es gibt verschiedene Möglichkeiten, dies zu tun. Wenn Sie wissen, wie eine OLS-Regression in Matlab zu tun ist, sollten Sie sich auf alle Arten von Matrixmanipulationen konzentrieren. Implementierung in Matlab Portfolio Bildung und kehrt Berechnung Ihnen ein Beispiel zu geben, wie eine primitive Handelsstrategie in Matlab implementiert werden könnten, lässt monatliche Rendite Daten übernehmen und eine einheitliche Haltedauer von einem Monat auf n Vermögen über k Perioden, in denen ich in und k im . Angenommen, keine Änderungen in der Zusammensetzung Ihres Stock Universums, Ihre returns Matrix X ist von Dimensionen k mal n. X beginnen x amp Punkte amp x amp Punkte amp x vdots amp ddots amp vdots amp ddots amp vdots x amp Punkte amp x amp Punkte amp x vdots amp ddots amp vdots amp ddots amp vdots x amp Punkte amp x Ampere Punkte amp x Ende Wo Renditen Werden als x frac-1 berechnet. Unter der Annahme, dass Ihre Auswahlkriterium eine Art Lager charakteristisch ist, die bei monatlicher Frequenz zur Verfügung steht, finden Sie auch eine Eigenschaften Matrix C haben dann Sie könnten einen Algorithmus schreiben, die die Einträge in C identifiziert, die Ihre Auswahlkriterium erfüllen (zB eine bestimmte Schwelle überschreiten ) Und ersetzen die entsprechenden Einträge (wobei i und t gleich sind) einer Indikatormatrix I (die als Nullmatrix unter Verwendung der Nullenfunktion initialisiert wurde) mit Einsen. Sie können dann die Einträge von I mit denen der Rendite-Matrix X multiplizieren, um eine Matrix R zu erhalten, die die aus Ihren Beständen resultierenden Renditen angibt. Sie können dann den Mittelwert der Nicht-Null-Einträge für jede Zeile von R berechnen, um Ihren Vektor von Portfolio-Renditen zu erhalten. Risikoanpassung und Identifikation von anormalen Renditen In Schritt 2 vergleichen Sie diesen Vektor mit den normalen Renditen aus der Regressionsschätzung eines Asset-Pricing-Modells wie dem Fama-French-Modell. Indem Sie den normalen Rückgabewektor aus Ihrem Portfolio-Rückgabewert subtrahieren, bestimmen Sie, ob Ihre Handelsstrategie zu einer positiven anomalen Rendite geführt hat. Empfehlungen Wenn Sie Matlab neu sind, ich persönlich empfehlen Ihnen, sich damit vertraut machen hinreichend diese simplen Strategie zu implementieren, bevor einige der vereinfachenden Annahmen (wie einheitliche Haltedauer und Periodizität) und Weitergehen zu anspruchsvolleren Implementierungen zu entspannen. Auch hier möchte ich betonen, dass dies erfordert, dass Sie sehr komfortabel mit Matlab und vor allem die verschiedenen Möglichkeiten, um Matrizen zu manipulieren, die einige Zeit dauern kann. Wenn Sie nicht benötigen, um Matlab für Ihr Praktikum zu verwenden und Ergebnisse schnell erhalten möchten, können Sie Schritt 1 in Excel stattdessen tun, die langweilig ist, aber nicht die (lohnende) erste Investition, die Sie für Matlab machen müssen. Um sich mit Matlab vertraut zu machen, bin ich sicher, dass Sie bereits die extrem gute Dokumentation, die mit ihm kommt, entdeckt haben. Das ist für mich die einzige wertvollste Ressource und wahrscheinlich nützlicher als irgendwelche finanzspezifischen Ressourcen (mit denen ich warten würde, bis Sie mit Matlab selbst vertraut sind). Alles, was erforderlich ist, um die normale Rendite zu bestimmen, ist eine OLS-Regression und ein rudimentäres Verständnis von Asset-Pricing-Modellen. Antwort # 2 am 22: 20MatlabTrading Dieser Beitrag ist, wie wichtig es ist, verschiedene Arten von Optimierungsmethoden wie genetische Algorithmen und Parallelisierung verwenden, um Ergebnisse schneller zu erhalten. Genetische Algorithmen Optimierung Trotz der Tatsache, dass das genetische (evolutionäre) Algorithmusprinzip in den MathWorks-Webinars sehr gut erklärt ist, wird es in den Beispielen jedoch nur zur Optimierung der Wahl einer Strategiegruppe aus einem Satz verwendet. Dies ist ein gutes Beispiel für die Verwendung dieser Algorithmen, aber es passiert, dass es notwendig ist, viele Variablen mit erheblichen Intervallen für eine Strategie, die Sie nicht durch mit einer Iteration und die Parallelisierung von Prozessen 8211 Berechnungen kann mehrere Tage dauern . Sicherlich gibt es Strategien in der letzten Phase der Optimierung. Wenn wir fast sicher wissen, dass die Trading-Strategie erfolgreich ist, können wir für mehrere Tage warten oder mieten Sie den gesamten Cluster - das Ergebnis könnte sich lohnen. Allerdings, wenn wir die Ergebnisse einer sperrigen Strategie abschätzen und entscheiden müssen, ob es sich lohnt, die Zeit zu verbringen, dann können genetische Algorithmen perfekt geeignet sein. Wir bieten die Möglichkeit, drei Methoden zur Optimierung der Strategie in WFAToolbox zu verwenden: Lineare Methode 8211 Es ist eine übliche Art der Sortierung, in der Sie alle Zwischenergebnisse (suboptimal) sehen werden. Es gibt maximale Genauigkeit. Parallel-Methode 8211 werden alle Kernel Ihrer CPU verwendet. Es ist nicht erlaubt, Zwischenergebnisse zu sehen, aber erheblich beschleunigt den Betrieb. Es gibt maximale Genauigkeit während Erhöhung der Berechnungsgeschwindigkeit. Genetische Methode 8211 verwendet es den evolutionären Optimierungsalgorithmus. Es erlaubt, suboptimale Werte zu sehen, gibt aber das Ergebnis nahe am besten. Seine nicht eine sehr genaue Methode, aber seine genaue genug für den ersten Lauf der Strategie. Sehr schnell. Wir werden oft gefragt, ob WFAToolbox - Walk-Forward Analysis Toolbox für MATLAB die Möglichkeit hat, die GPU in Berechnungen zu verwenden. Leider ist GPU nicht für alle Aufgaben geeignet und seine Verwendung ist sehr spezifisch. Um es zu benutzen, müssen Sie die Logik und den Code der einzelnen Strategien für Grafikkerne testen. Leider, aufgrund dieser Nicht-Universalität der Methode kann man nicht verwenden GPU in WFAToolbox. Weiterführend Teil 2 der Diskussion von Problemen und Lösungen bei der Prüfung und Analyse der algorithmischen Handelsstrategie in MATLAB, lade ich Sie zu diesem Beitrag über das Problem der Nichtverfügbarkeit der Visualisierung der Prozesse in modernen Software-Lösungen für das Testen von Handelssystemen zu lesen. Visualisierung des Testprozesses In meiner Arbeitserfahrung analysierte ich häufig andere populäre Plattformen für das Trading-Strategie-Testen. Wie zum Beispiel TradeStation. MetaStock. Multicharts etc. und ich war immer überrascht, wie wenig Aufmerksamkeit für die Visualisierung des Testprozesses bezahlt wurde. Die Sache ist, dass, wenn wir nicht sehen, die Ergebnisse der Zwischen-, suboptimale Werte der optimierten Parameter, wir oft wegwerfen Gold zusammen mit dem Schmutz. Die Sache ist, weil eine übermäßig breite Stichprobe, die Strategie passt die Parameter, wie wir entweder sehen, eine perfekte Strategie, die im wirklichen Leben scheitert oder sehen Sie ein oder zwei Angebote, die angeblich die besten sind, weil es solche Zeitintervalldaten, wo die gewählt wurde Beste Handelsstrategie wäre Buy-and-Hold, aber warum sind dann andere Strategien notwendig für die Visualisierung des Trading-Strategie-Testprozess in MATLAB (im Webinar vorgeschlagen) Als Ergebnis, ohne zu sehen, Zwischenergebnisse, müssen wir 171blindly187 ändern Sie die Parameter zu versuchen Um die besseren Daten zu erhalten oder sehen Sie sie in einigen 3D oder 4D (Farbe ist die 4. Dimension), wie in Webinaren vorgeschlagen. Die Analyse der Werte in den N-dimensionalen Räumen kann auf jeden Fall eine Alternative sein, hat aber mehrere Einschränkungen: Was passiert, wenn es mehr als 4 Dimensionen Wenn Sie sehen, welche Signale und mit welcher Frequenz sie in der Preisklasse erscheinen, haben Sie fast alle Notwendige visuelle Darstellung Ihrer Strategie: die Häufigkeit der Transaktionen, ihre Rentabilität (Einkommenskurve), die Genauigkeit der Öffnung, die Ähnlichkeit mit anderen suboptimalen Werten usw., die nicht über die Leistung im N-dimensionalen Raum gesagt werden können, wo alle nützlichen Informationen Ist in der Tat, dass der optimale Wert nicht nur eine ist, sondern es gibt einen ganzen Bereich von suboptimalen Werten in einem oder mehreren Bereichen. Während Optimierung einer Strategie in WFAToolbox 8211 Walk-Forward Analysis Toolbox für MATLAB174. Wenn ein neuer optimaler Wert gefunden wird, werden die Trading-Strategiesignale in der Periode in-sample und out-of-sample sofort auf dem Chart angezeigt, so dass Sie immer kontrollieren können, welchen Bereich von Optionen Sie zuweisen sollten, und Sie können auch die Optimierung anhalten Ohne auf das Ende des Tests warten, wie es klar wird, dass etwas schief ging oder alles in Ordnung ist. Hallo, mein Name ist Igor Volkov. Ich entwickle seit 2006 algorithmische Handelsstrategien und habe in mehreren Hedgefonds gearbeitet. In diesem Artikel möchte ich die Schwierigkeiten auf dem Weg der MATLAB Trading Strategies Entwickler während der Prüfung und Analyse zu diskutieren, sowie mögliche Lösungen zu diskutieren. Seit 2007 nutze ich MATLAB zum Testen von Algorithmusstrategien, und ich bin zu dem Schluss gekommen, dass es sich dabei nicht nur um das geeignetste Forschungswerkzeug handelt, sondern auch um das mächtigste, weil es die Verwendung von komplexen statistischen und ökonometrischen Modellen, Maschine-Lernen, digitale Filter, Fuzzy-Logik, etc, indem Toolbox. Die MATLAB-Sprache ist recht einfach und gut dokumentiert, so dass selbst ein Nichtprogrammierer (wie ich) es beherrschen kann. Wie alles begann. Es war 2008 (wenn ich mich nicht irre), als das erste Webinar über den algorithmischen Handel in MATLAB mit Ali Kazaam veröffentlicht wurde, das das Thema der Optimierung einfacher Strategien basierend auf technischen Indikatoren, etc. trotz eines ziemlich 8220chaotic8221-Codes enthielt, waren Werkzeuge interessant Genug zu bedienen. Sie dienten als Ausgangspunkt für die Erforschung und Verbesserung eines Test - und Analysemodells, das es erlaubte, die gesamte Kraft der Werkzeugkästen und die Freiheit der MATLAB-Aktionen während der Schaffung der eigenen Handelsstrategien zu nutzen und gleichzeitig den Prozess zu kontrollieren Der Tests und die erhaltenen Daten und ihre anschließende Analyse würde ein wirksames Portfolio von robusten Handelssystemen wählen. Anschließend wurden die Mathworks-Webinare jedes Jahr aktualisiert und allmählich mehr und mehr interessante Elemente eingeführt. So wurde im Jahr 2010 das erste Webinar zum Paarenhandel (statistisches Arbitrage) unter Verwendung der Econometric Toolbox abgehalten, obwohl die Toolbox für Testen und Analysen gleich geblieben ist. Im Jahr 2013 erschien Trading Toolbox von Mathworks, die erlaubt, MATLAB an verschiedene Broker für die Ausführung ihrer Anwendungen zu verbinden. Obwohl es automatische Lösungen für die Durchführung der Transaktionen gab, könnte MATLAB von diesem Punkt an ein System für die Entwicklung von Handelsstrategien mit einem vollen Zyklus betrachtet werden: von der Datenverladung bis zur Ausführung automatisierter Handelsstrategien. Warum sollte jeder Algotrader Reinly the Wheel Allerdings hat Mathworks nicht eine komplette Lösung für das Testen und Analysieren der Strategien 8211 angeboten, die Codes, die Sie von Webinaren erhalten konnten, waren die einzigen Elemente eines vollständigen Systemtests, und es war notwendig, sie zu modifizieren , Passen Sie sie an und fügen Sie sie zur GUI für Benutzerfreundlichkeit hinzu. Es war sehr zeitaufwendig, so dass eine Frage zu stellen: Was auch immer die Strategie war, muss sie den gleichen Prozess der Prüfung und Analyse durchlaufen, die sie als stabil eingestuft werden würde ermöglichen und nutzbar 8211 so sollte, warum jedes algotrader das Rad neu erfinden und schreiben Seinen eigenen Code für die richtigen Test-Strategien in MATLAB Also die Entscheidung wurde getroffen, um ein Produkt, das ermöglichen würde, um den gesamten Prozess im Zusammenhang mit der Prüfung und Analyse von algorithmischen Handelsstrategien mit einer einfachen und benutzerfreundlichen Schnittstelle. Zuerst möchte ich die folgenden Fragen beantworten: Was mit dem Blog passiert ist 1. Jev Kuznetsov ist nicht der Eigentümer mehr Der Blog wurde von unserem Freund, Jev Kuznetsov, der zu seinem anderen Blog tradingwithpython. blogspot verschoben hat gekauft. Er kam zu dem Schluss, dass Python besser ist als MATLAB für den Handel, den ich für falsch halte. MATLAB bleibt eine der besten Software der Welt für algorithmische Handelszwecke IMHO (Ich habe einige Tatsachen über dieses zwar für zukünftige Diskussion). 2. Wir haben die Marke verändert Von diesem Moment wird der Blog MatlabTrading genannt werden, was viel verständlicher ist in Bezug auf die Themen, die es enthalten wird. Außerdem wurde der Domänenname in matlabtrading anstelle des ursprünglichen matlab-trading. blogspot geändert. Obwohl die alte Domäne immer noch von dem primären Domänennamen weiterleitet. Was passiert mit dem Blog 1. Mehr Beiträge und Artikel Wir hoffen, das Leben in diesem Blog zu bringen, indem wir relevante Inhalte ein - oder zweimal pro Woche posten. In den ersten Monaten werden wir vor allem die Artikel und Videos posten, die wir bereits haben, um es unseren Lesern einfacher zu machen, nach Informationen über eine Ressource zu suchen und vernetzen zu können. Dann haben wir Pläne, Beiträge über praktische Aspekte des algorithmischen Handels in MATLAB zu schreiben. Wie schafft man moderne automatische Handelsstrategien wie: Statistische Arbitrage Paare Handel bedeuten Reversion marktneutrale Trading-Strategien auf Cointegration bollinger Bands kalman Filter etc für Rohstoffe, Aktien und Forex. Trend nach Strategien mit Jurik Moving Average und anderen anspruchsvollen digitalen Filtern Vorhersage Strategien mit maschinellem Lernen (Support Vector Machines) und andere Methoden Erstellen Sie robuste Trading-Strategien mit visuellen Walk-forward-Tests Geld-Management für die Reinvestition Ihres Kapitals (Wissenschaft, wie man 1M von 10K zu bekommen In einem Jahr mit maximaler, aber geschätzter Risiko - und Schweißbelastung). Vielleicht nach der Lektüre dieses youve dachte, das wird ein weiterer dummer Artikel für die armen Jungs suchen, wie man reich durch den Handel auf Forex und all das werden. Nun, das ist völlig falsch Wir arbeiten in MATLAB, und die Mehrheit von uns sind Wissenschaftler und Experten in diesem Aspekt, so dass alles ernst ist. 2. Mehr Interaktivität Ich werde glücklich sein, wenn wir alle durch Kommentare in Beiträgen beziehen können. Abonnieren Sie unsere News, um über die neuesten Beiträge und Veranstaltungen informiert zu werden. Später haben wir Pläne, Google Hangouts Webinare zu machen. Dont miss it, klicken Sie auf Follow-Button an der oberen rechten Ecke zu unserer Community beitreten. Was möchten Sie in unseren Blogbeiträgen lesen? Welche Themen können Sie vorschlagen? Schreiben Sie hier in den Kommentaren. In meinem früheren Post kam ich zu dem Schluss, dass die Nähe zu engen Paaren Handel ist nicht so profitabel, wie es früher vor 2010 war. Ein Leser wies darauf hin, dass es sein könnte, dass Mittel-wiederkehrende Natur der Spreads nur in Richtung kürzere Zeitskalen verschoben . Ich habe zufällig die gleiche Idee zu teilen, so dass ich beschlossen, diese Hypothese zu testen. Dieses Mal wird nur ein Paar getestet: 100 SPY vs -80 IWM. Backtest wird auf 30-Sekunden-Bar-Daten von 11.2011 bis 12.2012 durchgeführt. Die Regeln sind einfach und ähnlich wie Strategie, die ich in der letzten Post getestet: Wenn Bar Rückgabe des Paares 1 auf z-Score übersteigt, den nächsten Balken. Das Ergebnis sieht sehr hübsch aus: Ich halte dies für ausreichend, um zu beweisen, dass es in der 30-Sekunden-Skala noch genügend Mittelwert-Reversion gibt. Wenn Sie denken, dass diese Tabelle zu gut ist, um wahr zu sein, ist das leider tatsächlich der Fall. Es wurden keine Transaktionskosten oder Bid-Ask-Spannen berücksichtigt. In der Tat, ich würde bezweifeln, dass es keinen Gewinn nach der Subtraktion aller Handelskosten übrig. Doch diese Art von Charts ist die Karotte baumelt vor meiner Nase, halten mich gehen. Schlechte Nachrichten alle, nach meinen Berechnungen, (die ich aufrichtig hoffe, sind falsch) ist das klassische Paar Handel ist tot. Manche Leute würden stark widersprechen, aber hier ist, was ich gefunden habe: Lets nehmen eine hypothetische Strategie, die auf einem Korb von etfs funktioniert: SPY, XLY, XLE, XLF, XLI, XLB, XLK, IWM, QQQ, DIA Von diesen etfs 90 einzigartig Paare gebildet werden können. Jedes Paar ist marktneutral aufgebaut. Strategie Regeln: An jedem Tag, für jedes Paar, berechnen z-Score basierend auf 25-Tage-Standardabweichung. Wenn z-Score gt Schwelle, gehen Sie kurz, schließen nächsten Tag Wenn z-Score lt-Schwelle gehen lange, schließe nächsten Tag Um es ganz einfach, die Berechnung erfolgt ohne Kapitalmanagement (man kann bis zu 90 Paare im Portfolio haben An jedem Tag). Auch Transaktionskosten werden nicht berücksichtigt. Um es einfach auszudrücken, verfolgt diese Strategie eine eintägige Umkehrung der Marktneutralspreads. Hier werden die Ergebnisse für mehrere Schwellen simuliert: Egal welche Schwelle verwendet wird, die Strategie ist 2008 sehr erfreulich, ziemlich gut von 2009 und völlig wertlos ab Anfang 2010. Dies ist nicht das erste Mal, dass ich auf diese Veränderung im Mittelrückgang gestoßen bin Verhalten in etfs. Egal, was Ive versuchte, hatte ich kein Glück bei der Suche nach einem Paar Handelsstrategie, die auf ETFs Vergangenheit 2010 arbeiten würde. Mein Fazit ist, dass diese Arten von einfachen stat-arb-Modelle nur dont schneiden Sie es nicht mehr.


No comments:

Post a Comment