Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 647

 

Maxim Dmitrievsky:

Noch 3 Wochen bis zu meiner Ziellinie mit der NS :))) entweder der Gral oder die Hölle mit ihnen. Setzen Sie Ihre Wetten :))

Es wäre schön, wenn man zunächst die Gewinnchancen erfahren würde. Hier nimmt niemand nur Befehle entgegen ;)

 

Ich musste dringend das Minimum einer glatten Funktion finden, also beschloss ich, zunächst verschiedene Pakete zu vergleichen, um zu sehen, welches schneller ist. Für den Test habe ich die Rastrigin-Funktion gewählt (nach Aussage einiger Professoren die am schwierigsten zu optimierende Funktion).

Rastrigin <- function(x){
  return(sum(x^2 - 10 * cos(2 * pi * x)) + 10 * length(x))
}


Für den Test habe ich es mit 4 Parametern genommen:

~ w^2 - 10 * cos(2 * pi * w)  +  x^2 - 10 * cos(2 * pi * x)  +  y^2 - 10 * cos(2 * pi * y)  +  z^2 - 10 * cos(2 * pi * z)   +  10 * 4


Derivate:

2 * w + 10 * (sin(2 * pi * w) * 2 * pi
2 * x + 10 * (sin(2 * pi * x) * 2 * pi
2 * y + 10 * (sin(2 * pi * y) * 2 * pi
2 * z + 10 * (sin(2 * pi * z) * 2 * pi


Ich habe GenSA, lbfgs, lbfgsb3, n1qn1 und verschiedene Methoden in der Standardfunktion optim() verglichen.

Ergebnisse:
Paket, Anzahl der Aufrufe der Fitness- (und Gradienten-) Funktion, gefundene Parameter und das Endergebnis, bei dem die Suche endet.

n1qn1 fitness function calls: 448 ; parameters = 3.90227 e-18 3.90227 e-18 3.90227 e-18 3.90227 e-18 ; result = 0 
lbfgs fitness function calls: 14 ; parameters = -1.891749 e-10 -1.891749 e-10 -1.891749 e-10 -1.891749 e-10 ; result = 0 
lbfgsb3 fitness function calls: 12 ; parameters = -7.542216 e-15 -7.542216 e-15 -7.542216 e-15 -7.542216 e-15 ; result = 0 
GenSA fitness function calls: 66582 ; parameters = 1.517382 e-11 -5.657816 e-12 -2.292922 e-11 -3.257902 e-12 ; result = 0 
optim Nelder-Mead fitness function calls: 253 ; parameters = -2.981633 3.988813 0.9902444 -2.980489 ; result = 34.8497 
optim BFGS fitness function calls: 49 ; parameters = 8.731115 e-16 8.731115 e-16 8.731166 e-16 8.731157 e-16 ; result = 0 
optim CG fitness function calls: 918 ; parameters = 0.9949586 0.9949586 0.9949586 0.9949586 ; result = 3.979836 
optim L-BFGS-B fitness function calls: 81 ; parameters = 8.526118 e-13 8.526118 e-13 8.526118 e-13 8.526118 e-13 ; result = 0 
optim SANN fitness function calls: 10000 ; parameters = 750.3075 745.0596 743.626 753.8133 ; result = 2239327 

Die ersten drei Funktionen (n1qn1, lbfgs, lbfgsb3) verwenden einen analytisch ermittelten Gradienten.

Das Ergebnis = 0 ist ideal, je weiter weg von Null, desto schlechter.

Wir können sehen, dass die Kenntnis der Ableitungen sehr gut ist, lbfgsb3 hat das perfekte Ergebnis in 12 Aufrufen der Fitnessfunktionen erreicht.
Die beste derjenigen, die den Gradienten numerisch definieren, war die Standardfunktion optim mit der BFGS-Methode, 49 Aufrufe der Fitnessfunktion.

Die Schlussfolgerung ist, dass die Derivate sehr gut sind. Idealerweise könnten wir zum Beispiel Ableitungen für alle Gewichte finden und sie in lbfgsb3 anstelle von Backprops einsetzen.
Aber all diese Testergebnisse gelten nur für glatte Funktionen, für die Ableitungen für alle Parameter gefunden werden können. Wenn Sie Funktionsparameter haben, deren Ergebnis sich schon bei der kleinsten Änderung zufällig ändert, sind Genetik, GenSA und andere stochastische Algorithmen besser geeignet.

Ich habe eine Datei mit Code angehängt, den Sie an Ihren Funktionen testen können.

Dateien:
n1qn1.txt  4 kb
 

Ich frage mich, ob eine solche Serie kann durch einige arima vorhergesagt werden, oder ist es genug, um für eine Rückkehr zum Mittelwert zu arbeiten ... gelungen, beeindruckend stabile Ergebnisse (Kointegration Diagramm) zu erreichen, arbeiten Renditen mehr als 2 Spreads


 

Eine Rückkehr zum Durchschnitt kann sogar mit einem Swing gehandelt werden. Aber wie können wir feststellen, wo der Durchschnittspreis liegt, wenn sich der Durchschnitt mit dem Trend verschiebt? (Die Frage ist rhetorisch - Sie können es nicht).

 
Dr. Trader:

Eine Rückkehr zum Durchschnitt kann sogar mit einem Swing gehandelt werden. Aber wie können wir feststellen, wo der Durchschnittspreis liegt, wenn sich der Durchschnitt mit dem Trend verschiebt? (Die Frage ist rhetorisch - Sie können es nicht).

Der Durchschnitt ist hier 0, es ist eine neutrale Strategie

wir sollten Statistiken verwenden), was dort verschoben wird, ist in der Blackbox unmöglich zu verstehen

Kurz gesagt, fast fertig 2 nd Strategie der 3 geplanten (die Ergebnisse der ersten haben bereits geschrieben, nicht vkatilo)

wenn dieser nicht funktioniert - bleibt der letzte übrig )

und dies wird das Ende der MO sein

 
Maxim Dmitrievsky:

Ich frage mich, ob eine solche Serie kann durch einige arima vorhergesagt werden, oder es ist genug, um für die Rückkehr zum Mittelwert zu arbeiten ... verwaltet, um beeindruckend stabile Ergebnisse (Kointegration Diagramm) zu erreichen, arbeitet kehrt mehr als 2 Spreads


Kointegration ist ein Begriff und hat nichts mit Ihrem Bild zu tun.

Die Anwendbarkeit von arim wird durch mehrere Tests bestimmt, von denen der wichtigste arch ist, der feststellt, ob es einen Bogeneffekt in den Zeitreihen gibt. Wenn es keinen Bogeneffekt gibt, was bei etwa 20 % der Fall ist, dann wird gehandelt, aber ... zur Geschichte, da dieser Abschnitt bereits verabschiedet oder fast verabschiedet wurde oder...

 
SanSanych Fomenko:

Ko-Integration ist ein Begriff und hat nichts mit Ihrem Bild zu tun.

Die Anwendbarkeit der Arithmetik wird durch mehrere Tests bestimmt, von denen der wichtigste der Bogen ist, mit dem festgestellt wird, ob es einen Bogeneffekt in den Zeitreihen gibt. Wenn es keinen Bogeneffekt gibt, was bei etwa 20 % der Fall ist, dann wird gehandelt, aber ... über die Geschichte, da dieser Abschnitt bereits verabschiedet oder fast verabschiedet wurde oder...

Definieren wir die Kointegration zum 3. Mal... was ist das und warum ist sie für mein Bild nicht relevant? :)

es ist ein Bild von einer Testseite, ich schaue mir die Geschichte gar nicht an, dort ist immer alles perfekt

oder worum geht es hier - um die Entwicklung von Strategien auf dem MO oder das Parsen verschiedener R-Funktionen, ich glaube, ich bin der einzige, der sich die Mühe gemacht hat, ein paar Monate lang Ergebnisse zu posten :)

 
Maxim Dmitrievsky:

der Durchschnitt ist hier 0, es ist eine marktneutrale Strategie

Möchten Sie, dass das grüne Diagramm selbst gehandelt wird? Dann sehe ich, zuerst dachte ich, es sei ein Indikator für den eurusd-Handel.

Zunächst müssen wir herausfinden, ob es sich um einen Zufallsprozess handelt oder ob er wie normale Zeitreihen ein Gedächtnis hat.

Wenn es einen Speicher hat, können Mashka und Arima nützlich sein.
Wenn der Graph jedoch völlig zufällig ist, brauchen wir Modelle für markovsche Prozesse. Ich bin nicht gut darin, aber Alexander sagte etwas über das Wiener Modell, man kann zum Beispiel damit anfangen.

 
Maxim Dmitrievsky:

Lassen Sie uns zum 3. Mal die Kointegration definieren... was ist das und warum trifft sie auf mein Bild nicht zu? :)

das ist schon ein Bild von einer Testfläche, ich schaue mir die Geschichte gar nicht an, da ist immer alles perfekt

Es gibt mindestens zwei Zeitreihen in Kointegration.

Aber sie sind nicht alle.

Diese Reihen sind nicht stationär.

Aber das ist noch nicht alles.

Diese nichtstationären Reihen müssen so verbunden werden, dass das Ergebnis stationär ist.

Handelsentscheidungen werden auf der Grundlage dieser STATIONÄREN Reihe getroffen, die die Möglichkeit einer Prognose garantiert.

 
Dr. Trader:

Möchten Sie die grüne Grafik selbst handeln? Dann sehe ich, zuerst dachte ich, es sei ein Indikator für den eurusd-Handel.

Zunächst müssen wir herausfinden, ob es sich um einen Zufallsprozess handelt oder ob er ein Gedächtnis hat wie eine normale Zeitreihe.

Wenn es Speicher hat - dann können sowohl mash als auch arima nützlich sein.
Wenn der Graph jedoch völlig zufällig ist, brauchen wir Modelle für markovsche Prozesse. Ich bin nicht gut darin, aber Alexander sagte etwas über das Wiener Modell.

Wir müssen also feststellen, ob er ein Gedächtnis hat, d.h. ob er durch seine Schwänze bestimmt wird?