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

 
Mihail Marchukajtes:
Grüße!!!! Ich verwende LibVMR, aber es scheint eine alte Version zu sein, da der Fehler "Bad Data" erscheint. Ich habe gehört, dass es eine neue Version gibt. Wo kann ich es herunterladen? Wenn es möglich ist?

Neue Produkte und Downloads werden jetzt über das BitBucket-Repository vertrieben: https://bitbucket.org/jprediction/jprediction/downloads

Der Projektname wurde außerdem von libVMR in jPrediction geändert.

 
Yury Reshetov:

Nicht ganz klar? Nehmen Sie Preise als OHLC für Muster oder eine Transformation von ihnen?

Der Punkt ist, dass, wenn wir OHLC so nehmen, wie es ist, ein ähnliches Muster, das 1000 Punkte höher oder niedriger als das zu vergleichende ist, sich mehr durch den euklidischen Abstand unterscheidet als ein völlig anderes Muster, das 10 Punkte höher oder niedriger als das zu vergleichende ist. Der Unterschied wird zwei Größenordnungen betragen, und somit wird auch der Vergleichsfehler zwei Größenordnungen betragen.

Als ich mit Euclid gemessen habe, wurden alle Vektoren normalisiert und zensiert
 
mytarmailS:
Bei der Messung mit Euclid wurden alle Vektoren normalisiert und zensiert.
Wie macht man das?
 
mytarmailS:

Die Lösung wurde gefunden.....

Wendet man die Spektralanalyse auf den aktuellen Vektor (aktuelle Preise) an und zerlegt ihn in einfachere Komponenten, lassen sich solche Komponenten aufgrund ihrer einfachen Struktur leichter in der Historie finden

s

price <- cumsum(rnorm(200))+1000

library(Rssa)
s <- ssa(price)
r <- reconstruct(s)

par(mfrow=c(1,2))
plot(price,t="l")
plot(r$F2,t="l")
for(i in 3:50) {lines(r[[i]],col=i)}

Ich habe die "Raupen"- oder "ssa"-Methodehttp://www.milanor.net/blog/wp-content/uploads/2014/07/SingularSpectrumAnalysisWithRssa.pdf für die Zersetzung verwendet.

Wir suchen nach Analoga in der Geschichte und sehen, wie sie enden, aber wir suchen nicht nach den Preisanaloga, sondern nach jeder der einzelnen Spektralkomponenten, und dann verbinden wir sie und erhalten eine einfache Prognose

Nach den ersten Tests zu urteilen, ist das Thema recht vielversprechend, wenn wir jede seiner Komponenten einzeln prognostizieren. Die Vorhersage ist oft richtig, aber selten nicht verzerrt...

ss

Die schwarze Farbe zeigt eine der aktuellen Komponenten an, die blaue Farbe zeigt die analoge Komponente, die in der Historie gefunden wurde, nachdem die schwarze vertikale Linie neue Daten darstellt, die dem Algorithmus unbekannt sind - in der Tat die Vorhersage - wie Sie sehr gut sehen können

Aber wie Sie sehen, gibt es immer eine Verzerrung in der Vorhersage, und nicht immer eine gute natürlich, die Nähe zwischen Analoga auf der Suche nach dem alten Weg durch die Korrelation, ich verstehe, dass dies einer der ungeeignetsten Wege ist, so wollte ich den Algorithmus, der für Ähnlichkeiten in der Amplitude, Phase, Frequenz suchen würde ersetzen. Verstehen Sie jetzt, was ich meine, wenn ich von Fourier spreche?

 

Dr. Trader

Wie ist Ihr neuronales Netz trainiert?

RNeat? Nein, das Training ist sehr langsam, die Fitness des Modells liegt jetzt bei 0,018 und wächst um ein Hundertstel pro Tag. Die Genauigkeit bei den Trainings- und Validierungsdaten liegt nun bei 0,52, was zwar sehr niedrig ist, aber zumindest auf der positiven Seite liegt, ohne dass ein erneutes Training erforderlich ist.
 
Yury Reshetov:
Wie machen Sie das?

Bevor ich die beiden Vektoren verglichen habe, habe ich sie mit der Funktion "Skalieren" skaliert

scale(x = Daten , center = TRUE, scale = TRUE )

 
Yury Reshetov:
Wie?
Interessanterweise habe ich Version 6.0 heruntergeladen, weil 5.0 nicht speichert und keine Textdatei erstellt, so dass es nicht klar ist, warum im Training ein Fehler Werte, aber in der Textdatei Werte völlig anders sind???
 
Mihail Marchukajtes:
Ich frage mich, warum ich Version 6.0 heruntergeladen habe, weil 5.0 nicht speichert und keine Textdatei erstellt, so dass nicht klar ist, warum während des Trainings ein Fehler Werte und in der Textdatei Werte völlig unterschiedlich sind???
In der Textdatei werden die Merkmale für den binären Klassifikator und nach dem Training für den ternären Klassifikator angegeben. Es gibt zwei Raster, und wenn ihre Werte übereinstimmen, erhalten wir eine positive Antwort, wenn sie sich unterscheiden, erhalten wir einen Strich. Binäre Klassifikatoren geben immer nur bestätigende Antworten, unabhängig davon, ob die Daten ähnlicher Muster in der Stichprobe ähnlich sind oder nicht. Ternäre Klassifikatoren geben manchmal keine positive Antwort, wenn die Trainingsstichprobe keine ähnlichen Muster enthielt.
 
Dr. Trader:
RNeat? Nein, das Training ist sehr langsam, die Fitness, die das Modell definiert, ist jetzt 0,018 und wächst um ein Hundertstel pro Tag. Die Genauigkeit bei den Trainings- und Validierungsdaten liegt jetzt bei 0,52, was zwar sehr niedrig ist, aber immerhin im Plus und ohne Nachschulung.
Oh, 52 ist besser als 50, wie Sie sich vielleicht erinnern, war es das letzte Mal 0,017, so dass ein Hundertstel die Genauigkeit um 2% erhöhen kann), ich denke, wenn das Netzwerk gut genug ist, ist es besser, es für SI umzuschreiben, halten Sie mich auf dem Laufenden, ich bin sehr interessiert ...
 
mytarmailS:
Ooh 52 ist bereits besser als 50, wie ich mich erinnere, war es das letzte Mal 0,017 so ein Hundertstel erhöht die Vorhersagegenauigkeit um 2% ), ich denke, wenn das Netzwerk Aufmerksamkeit wert ist, ist es besser, es auf SI neu zu schreiben, halten Sie mich auf dem Laufenden, ich bin sehr interessiert ...

Die Leistungsfähigkeit kann sich einfach dadurch erhöhen, dass das Modell seine Topologie verbessert und einige Neuronen weggelassen hat, und das bei gleicher Genauigkeit.
Soweit ich es aus den Kommentaren im Code verstanden habe, handelt es sich um eine Portierung von Lua. Und Lua ist auch ein Port, denn das Original war bereits in C++:http://nn.cs.utexas.edu?neat
Es wäre besser, wenn der Autor von RNeat den C++-Code als Grundlage nehmen und vorhandene R-Genetikpakete zur Entwicklung des Netzwerks verwenden würde.