Saturday, 16 September 2017

Forex Svm


Trading mit Support-Vector-Maschinen (SVM) Schließlich haben alle Sterne ausgerichtet und ich kann zuversichtlich einige Zeit für Back-Testing neuer Trading-Systeme zu widmen, und Support Vector Machines (SVM) sind die neuen 8220toy8221, die wird mich beschäftigen für eine während. SVMs sind ein bekanntes Werkzeug aus dem Bereich der überwachten Machine Learning. Und sie werden sowohl für die Klassifizierung als auch für die Regression verwendet. Weitere Einzelheiten entnehmen Sie bitte der Literatur. Es scheint mir, dass die intuitive Anwendung für den Handel Regression ist, so let8217s durch den Aufbau eines SVM-Regressionsmodell zu starten. Nach unseren Erfahrungen mit ARMAGARCH-Modellen werden wir zunächst versuchen, die Rendite anstatt der Preise zu prognostizieren. Ebenso verwenden wir in unseren ersten Tests nur die Renditen der letzten 5 Tage als Merkmale, die die Rückkehr eines bestimmten Tages bestimmen. Wir beginnen mit der Geschichte von 500 Tagen als Trainingsset. In mathematischer Hinsicht haben wir für das Trainingsset N Merkmale, für jedes haben wir M Proben. Wir haben auch M Antworten. Bei einer Reihe von Merkmalswerten, der linken Matrix, wird das SVM trainiert, um den Antwortwert zu erzeugen. In unserem spezifischen Beispiel haben wir fünf Spalten (Merkmale), wobei jede Spalte den Rückgaben mit einer unterschiedlichen Verzögerung (von 1 bis 5) entspricht. Wir haben 500 Proben und die entsprechenden Antworten. Sobald das SVM auf diesem Set trainiert ist, können wir es mit Sätzen von fünf Funktionen, entsprechend den Renditen für die fünf vorherigen Tage, und die SVM wird uns mit der Antwort, die die prognostizierte Rendite wird. Nach dem Training des SVM auf den letzten 500 Tagen werden wir die Renditen für die Tage 500, 499, 498, 497 und 496 verwenden (diese sind die Eingabe, um die prognostizierte Rendite für Tag 501 zu erhalten.) Aus allen verfügbaren Paketen In R, entschied ich mich für die e1071-Paket zu wählen. Eine zweite Wahl war die kernlab-Paket, das ich noch planen, in der Zukunft zu versuchen. So habe ich versucht, ein paar Strategien. Ich habe versucht etwas sehr ähnlich dem ARMAGARCH Ansatz 8211 der Ich war ziemlich überrascht, diese Strategie besser als die ARMAGARCH (dies ist das Heimatland der ARMAGARCH und ich wäre sehr glücklich gewesen, nur mit vergleichbarer Leistung) zu sehen. Als nächstes versuchte ich, die gleichen fünf Funktionen, aber versuchen, die beste Teilmenge zu wählen. Die Auswahl wurde mit einem gierigen Ansatz, beginnend mit 0-Funktionen, und interaktive Hinzufügen der Funktion, die den Fehler minimiert minimiert. Dieser Ansatz verbessert die Dinge weiter. Endlich habe ich versucht, einen anderen Ansatz mit etwa Ein Dutzend Funktionen. Die Funktionen enthalten Rückkehr über verschiedene Zeit (1 Tag, 2 Tage, 5 Tage, etc.), einige Statistiken (Mittelwert, Median, sd, etc.) und Volumen. Ich habe die gleiche gierige Ansatz, um Funktionen zu wählen. Dieses endgültige System zeigte auch eine sehr gute Leistung, aber es dauerte eine Hölle von einer Zeit zu laufen. Zeit, diesen Beitrag zu beenden, müssen die Back-Testergebnisse warten. Bis dahin können Sie mit dem vollständigen Quellcode selbst spielen. Hier ist ein Beispiel für die Verwendung: Verpassen Sie nie ein Update Abonnieren Sie R-Blogger, um E-Mails mit den neuesten R Beiträge erhalten. (Sie sehen diese Nachricht nicht wieder.) Handel mit SVMs: Leistung Um ein Gefühl der SVM-Leistung im Handel zu bekommen, laufe ich verschiedene Setups auf der S038P 500 historischen Daten von 8230 die 50s. Das Hauptmotiv hinter der Verwendung dieses Jahrzehnts war, zu entscheiden, welche Parameter variieren und was festhalten, bevor die Durchführung der wichtigsten Tests. Behandeln Sie es als 8220in-sample8221 Test, um zu vermeiden (weiter) Überanpassung. Zuerst die Performance-Chart: S038P 500 Trading Performance Sehr nett Mit den 5 verzögerten täglichen Renditen zeigt ähnliche Leistung der ARMAGARCH-Strategie, die ich sehr vielversprechend fand. Wenn Sie sich fragen, warum ich so über diese Tatsache aufgeregt bin, weil hier sind wir in der Gegend, wo ARMAGARCH am besten ist, und doch haben SVMs vergleichbare Leistung. Die Statistiken sind auch beeindruckend: Während des Schreibens dieses Post, fand ich eine weitere Anstrengung, um SVMs im Handel von Quantum Financier verwenden. Sein Ansatz verwendet RSI unterschiedlicher Länge als Eingang zum SVM, aber es verwendet auch Klassifizierung (Karten die Rückkehr zu zwei Werten, kurz oder lang) anstelle von Regression. Da ich vorhatte, Klassifikation irgendwie zu versuchen, sein Pfosten spornte mich an, ihn zu implementieren und einen zusätzlichen Vergleich durchzuführen, Regression gegen Klassifizierung: S038P 500 SVM Handel 8211 Regression gegen Klassifikation Was kann ich sagen 8211 sie scheinen beide perfekt zu funktionieren. Als Leser in den Kommentaren vorgeschlagen, die Klassifizierung zeigt mehr konsistente Renditen. Mit Blick auf den Tisch, die Einstufung schneiden in der Hälfte der maximalen Drawdown, aber interessanter, es didn8217t Verbesserung der Sharpe-Verhältnis erheblich. Nichts schlüssiges hier aber es war eine schnelle Ausführung der schnellsten (in Bezug auf die Laufzeit) Strategien. Es gibt noch eine lange Liste von Themen zu erkunden, nur um Ihnen eine Idee, in keiner bestimmten Reihenfolge: Fügen Sie weitere Funktionen hinzu. Diese Daten gehen meistens auf 1960 zurück, so dass es bald kommt :) Versuchen Sie andere svm-Parameter: andere Regressionen, andere Klassifikationen, andere Kerenls, etc. Dies ist mehr wie ein Stabilitätstest. Versuchen Sie andere Fehlerfunktionen. Der Standardwert ist, den mittleren quadratischen Fehler zu verwenden, aber im Falle von Regression, warum nicht Sharpe Ratio (in-sample) verwenden. Der Regressionsfall ist einfacher, da wir die tatsächlichen returns haben 8211 die Eingabe von tune. control überprüfen. Versuchen Sie längere Zeiträume statt Tage. Wöchentlich ist ein Anfang, aber idealerweise würde ich gerne zwei oder drei Tage dauern. Variieren Sie die Loopback-Periode. Verwenden Sie mehr Klassen mit Klassifizierung: große Tage, mittlere Tage, etc. Dies wird Zeit in Anspruch nehmen. Wie immer sind Feedback und Kommentare willkommen. Um einen Kommentar hinterlassen für den Autor, folgen Sie bitte dem Link und kommentieren Sie auf ihrem Blog: Quintuitive R. Wenn Sie diese weit, warum nicht abonnieren für Updates von der Website Wählen Sie Ihren Geschmack: E-Mail. Twitter RSS Oder Facebook. Verpassen Sie kein Update Abonnieren Sie R-bloggers um E-mails mit den letzten R Beiträgen zu erhalten. (Diese Meldung wird nicht mehr angezeigt.)

No comments:

Post a Comment