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

 
SanSanych Fomenko:

Training, Umschulung und Übertraining sind grundlegend verschiedene Dinge.

All diese Schulungen für jede neue Bar werden in diesem Forum und allgemein in der TA durchgekaut und durchgekaut.

Im Kampf gegen Übertraining (Overfitting) kenne ich zwei Methoden.

1. Bereinigung der Prädiktoren von Prädiktoren, die nicht mit der Zielvariablen in Zusammenhang stehen - Bereinigung der eingegebenen Prädiktoren vom Rauschen. In den ersten 100 Beiträgen dieses Threads wurde dies ausführlich erörtert.

2. Nachdem die Prädiktoren vom Rauschen befreit wurden, beginnen wir mit der Anpassung des Modells mit der Trainingsstichprobe, dann mit der Test- und Validierungsstichprobe, die Zufallsstichproben aus einer Datei sind. Der Fehler sollte bei allen drei Sätzen ungefähr gleich sein.

3. Nehmen Sie dann eine von der vorherigen Datei getrennte Datei und führen Sie das Modell auf dieser Datei aus. Auch hier sollte der Fehler in etwa derselbe sein wie bei den vorherigen.

4. Wenn diese Überprüfungen regelmäßig durchgeführt werden, stellt sich die Frage, ob ein Einbruch von 20 % ein Signal für eine Umschulung ist, gar nicht, da die ersten drei Schritte zu einem Einbruch als Modellparameter geführt haben und ein Überschreiten dieses Wertes bedeutet, dass das Modell nicht funktioniert und alles neu begonnen werden sollte.


Nun, dies ist ein allgemeiner Fall, ja. Und in jedem Fall müssen Sie mehr mit jedem einzelnen TS arbeiten, und dann wird das Verständnis kommen, wenn es gut trainiert ist, wenn es umtrainiert ist und wenn es Perioden hat. Beispielsweise sollte das Kauf-/Verkaufsverhältnis annähernd gleich sein, und die Trainingsstichprobe sollte einen Aufwärtstrend, einen Abwärtstrend und eine Stagnation enthalten, andernfalls handelt es sich um ein einseitiges Unentschieden. Das Wichtigste in diesem Fall ist, dass man sich nicht "übertrainiert" :)

Auch der Faktor der Saisonalität, der Faktor der Krise und andere viele verschiedene Regelmäßigkeiten müssen berücksichtigt werden.

 
SanSanych Fomenko:

1. Bereinigung des Prädiktorsatzes von Prädiktoren, die für die Zielvariable irrelevant sind - Bereinigung des Rauschens aus dem Eingabeprädiktorsatz. In den ersten 100 Meilensteinen dieses Threads wurde dieses Thema sehr ausführlich diskutiert

Welche Lösung hat sich schließlich herauskristallisiert - wie lassen sich Prädiktoren ermitteln, die nicht mit Ausgabebefehlen zusammenhängen?
 
elibrarius:
Wie lautet die endgültige Lösung - wie lassen sich Prädiktoren ermitteln, die nicht mit Ausgabebefehlen zusammenhängen?
Wie? - Das hängt von den jeweiligen Gegebenheiten ab. Ich habe 2 Tage gebraucht, um ein einfaches Problem zu lösen. Jetzt scheint die Lösung auf der Hand zu liegen.))
 
Yuriy Asaulenko:
Wie? - Das hängt von den jeweiligen Gegebenheiten ab. Ich habe zwei Tage gebraucht, um ein einfaches Problem zu lösen. Jetzt scheint die Lösung offensichtlich zu sein)).
Ich gehe davon aus, dass es auch allgemeine, universelle Prinzipien gibt? Es ist auch interessant, etwas über Ihr spezielles Beispiel zu erfahren.
 
Elibrarius:
Ich gehe davon aus, dass es auch allgemeine, universelle Prinzipien gibt? Nun, es ist auch interessant, etwas über Ihr spezielles Beispiel zu erfahren.

Schauen Sie es in meinem Blog nach.

Die Grundsätze sind in der Tat universell. Aber es gibt keine allgemeinen Lösungen. Mit Ausnahme einiger Klassen von Aufgaben.

 

Eine Zusammenfassung der letzten hundert Seiten :)

Neuronics und fast alle anderen populären Modelle sind sehr weit von künstlicher Intelligenz entfernt. Sie können einfach solche Kombinationen von Prädiktorwerten finden, die die gewünschte Lerngenauigkeit erreichen, und bei künftigen Prognosen interpolieren (oder extrapolieren) sie gewissermaßen die vergangenen Ergebnisse, um eine neue Prognose zu erhalten.

Das heißt, wenn wir zum Beispiel Ma, Rci und Stochastic als Prädiktoren nehmen und das neuronale Netz mit Zickzack-Umkehrungen als Trainingsziel trainieren, sagen wir dem neuronalen Netz: "Diese drei Prädiktoren können Umkehrungen vorhersagen. Und das neuronale Netz selbst wird nicht in der Lage sein, herauszufinden, ob diese Prädiktoren wirklich passen. Es wird sich diese Daten mit akzeptabler Genauigkeit merken, und beim Handel werden wir hoffen, dass die gleichen Kombinationen von Ma, Rci und Stochastic vor der Umkehrung gespeichert werden. Aber sie werden es nicht tun, und es wird scheitern.

Ein Modell, das auf nutzlosen Prädiktoren basiert, wird scheitern, egal ob es sich um gbm, Neuron oder Regression handelt. Sie können sogar zufällige Reihen erzeugen und sie als Prädiktoren verwenden, die Neuronen werden wiederkehrende Kombinationen unter ihnen finden und sich diese merken.
Es ist die Aufgabe eines menschlichen Data Miners, Prädiktoren und den Zweck des Trainings mit Hilfe anderer Tools auszuwählen. Und die Ausbildung des Modells (des Neurons) ist ein winziger vorletzter Schritt.

Die Prädiktoren müssen sowohl in der Vergangenheit als auch in der Zukunft eine Korrelation mit dem Ziel in den Trainingsdaten aufweisen. Aus diesem Grund empfiehlt SanSanych, das Modell mit verschiedenen Dateien zu testen, um sicherzustellen, dass die gefundenen Abhängigkeiten nicht mit neuen Daten verschwinden.
Das heißt, wir untersuchen und erfassen sorgfältig die Prädiktoren und das Ziel, trainieren das Modell und testen es. Dann testen wir das Modell mit völlig neuen Daten. Wenn die Vorhersagegenauigkeit in beiden Fällen nicht übereinstimmt, sind die Prädiktoren oder das Ziel nicht geeignet. Wir sollten nach anderen suchen.


SanSanych Fomenko:

Kann die NS nicht-stationäre Reihen vorhersagen? Wenn ja, welche Arten von Nicht-Stationarität?

Meiner Meinung nach ist die Neuronik für die Arbeit mit Preisen zur Vorhersage nicht-stationärer Zeitreihen völlig ungeeignet. Das Preisverhalten ändert sich ständig, die gefundenen Muster funktionieren nach Stunden nicht mehr, alles ist chaotisch. Und dann nimmt jemand ein Neuroncu, gibt ihm Preise für ein paar Monate und bittet darum, die Abhängigkeiten zu finden, die sich während dieser Zeit wiederholen. Aber es gibt keine sich wiederholenden Abhängigkeiten, und was das Neuron finden und sich merken kann, ist nur ein 100%iger Zufall.

Wenn wir die Neuronik verwenden wollen, sollten wir ihr nur verarbeitete Preise (und nicht reines Ohlc) geben, z. B. Indikatoren.

 

Danke für die Zusammenfassung, ich hatte keine Lust, 100 Seiten zu lesen...)

Der Prozess der manuellen Auswahl der Prädiktoren, z.B. durch Kombinationen von 3 Stück, wird sehr viel Zeit in Anspruch nehmen. Im MT5 gibt es 38 technische Standardindikatoren. 3er-Kombinationen - riesige Zahl. Darüber hinaus müssen wir Zeiträume, Preisarten und andere Eingabeparameter auswählen. Und wenn wir interessante Nicht-Standard-Indikatoren hinzufügen, wird die Zahl der Tests noch weiter steigen.

Daher sollten wir nach einer automatisierten Schätzung der Indikatoren suchen. Ich habe in den Artikeln von Vladimir Perervenko 2 gemeinsame Methoden gefunden:

1) Entfernen von hoch korrelierten Variablen - dies ist in R implementiert.

2) Auswahl der wichtigsten Variablen - ebenfalls in R gelöst.

Ich schreibe immer noch direkt in MT5, vielleicht gibt es ja fertige Lösungen für diese Fragen? Oder eine Methode zur Übertragung von Lösungen aus R in MT5, zumindest in einer vereinfachten Version....?

Wenn wir nach der Korrelation von Indikatoren suchen, suchen wir einfach nach der Differenz zwischen den einzelnen Indikatorpaaren -> fassen sie für jeden Balken zusammen -> dividieren durch die Anzahl der Balken. (oder einen anderen Weg?)

Bei den wichtigsten - nicht vollständig gelöst...

Vielleicht gibt es noch andere Methoden, um die Prädiktoren zu löschen?

 
elibrarius:

Aber ich schreibe immer noch direkt auf MT5, vielleicht gibt es schon fertige Lösungen für diese Probleme? Oder eine Methode zur Übertragung von Lösungen aus R in MT5, zumindest in einer vereinfachten Version....?

Alles auf einmal in MQL zu schreiben, aber sich auf R zu verlassen ist nicht die beste Option. Es ist einfacher, eine Strategie in R zu entwickeln und dann diese Bibliothek https://www.mql5.com/ru/code/17468 zu verwenden, um den R-Code aus dem Expert Advisor aufzurufen und ihn im Tester zu testen.
Höchstwahrscheinlich wird bei der Erstellung und beim Testen viel gelöscht und geändert, Änderungen an Paketen, Modellen usw. lassen sich leichter in R selbst ändern und testen.

Wenn es Ihnen gefällt und alles funktioniert, können Sie versuchen, den Code von Hand nach mql zu portieren.
Viele der in R verwendeten Pakete sind in C/C++ geschrieben, und Sie können den Quellcode für Standardpakete hier finden:https://cran.r-project.org/web/packages/available_packages_by_name.html,

 
Dr. Trader:

Eine Zusammenfassung der letzten hundert Seiten :)

Neuronics und fast alle anderen populären Modelle sind sehr weit von künstlicher Intelligenz entfernt. Sie können einfach solche Kombinationen von Prädiktorwerten finden, die die gewünschte Lerngenauigkeit erreichen, und bei künftigen Prognosen interpolieren (oder extrapolieren) sie gewissermaßen die vergangenen Ergebnisse, um eine neue Prognose zu erhalten.

Das heißt, wenn wir zum Beispiel Ma, Rci und Stochastic als Prädiktoren nehmen und das neuronale Netz mit Zickzack-Umkehrungen als Trainingsziel trainieren, sagen wir dem neuronalen Netz: "Diese drei Prädiktoren können Umkehrungen vorhersagen. Und das neuronale Netz selbst wird nicht in der Lage sein, herauszufinden, ob diese Prädiktoren wirklich passen. Es speichert diese Daten mit akzeptabler Genauigkeit, und beim Handel hoffen wir, dass die gleichen Kombinationen von Ma, Rci und Stochastic vor der Umkehrung gespeichert werden. Aber sie werden es nicht tun, und es wird scheitern.

Ein Modell, das mit unbrauchbaren Prädiktoren trainiert wurde, wird scheitern, sei es gbm, Neuronik oder Regression. Man kann sogar Zufallsreihen erzeugen und sie als Prädiktoren verwenden. Die Neuronen werden unter ihnen sich wiederholende Kombinationen finden und sich diese merken.
Es ist die Aufgabe eines menschlichen Data Miners, Prädiktoren und den Zweck des Trainings mit Hilfe anderer Tools auszuwählen. Und die Ausbildung des Modells (des Neurons) ist ein winziger vorletzter Schritt.

Die Prädiktoren müssen sowohl in der Vergangenheit als auch in der Zukunft eine Korrelation mit dem Ziel in den Trainingsdaten aufweisen. Aus diesem Grund empfiehlt SanSanych, das Modell mit verschiedenen Dateien zu testen, um sicherzustellen, dass die gefundenen Abhängigkeiten nicht mit neuen Daten verschwinden.
Das heißt, wir untersuchen und erfassen sorgfältig die Prädiktoren und das Ziel, trainieren das Modell und testen es. Dann testen wir das Modell mit völlig neuen Daten. Wenn die Vorhersagegenauigkeit in beiden Fällen nicht übereinstimmt, sind die Prädiktoren oder das Ziel nicht geeignet. Wir sollten uns nach einem anderen umsehen.


Meiner Meinung nach ist die Neuronik für die Vorhersage nicht-stationärer Zeitreihen nicht geeignet. Das Preisverhalten ändert sich ständig, die gefundenen Muster funktionieren nach Stunden nicht mehr, alles ist chaotisch. Und dann nimmt jemand ein Neuroncu, gibt ihm Preise für ein paar Monate und bittet darum, die Abhängigkeiten zu finden, die sich während dieser Zeit wiederholen. Aber es gibt keine sich wiederholenden Abhängigkeiten, und was das Neuron finden und sich merken kann, ist nur ein 100%iger Zufall.

Wenn wir ein Neuron verwenden, dann können wir ihm nur verarbeitete Preise (nicht reines Ohlc) geben, z.B. Indikatoren.

Das Problem ist nicht die Neuronik selbst oder irgendetwas anderes, das für die Märkte gilt. Das Problem ist, was in das DM-Tool eingegeben wird. Und es ist reiner Wahnsinn, einen nackten Preis als Input zu verwenden.

Das Problem sind die Prädiktoren, wie CC sie nennt. Das heißt, das Problem ist, wie man eine nicht-stationäre Reihe als stationär darstellen kann. Derjenige, der dieses Problem am ehesten lösen kann, ist der Beste.

 
Dr. Trader:

Es ist nicht die beste Lösung, alles in MQL zu schreiben und sich gleichzeitig auf R zu verlassen. Es ist einfacher, die Strategie in R zu entwickeln und dann mit Hilfe dieser Bibliothek https://www.mql5.com/ru/code/17468 den R-Code aus dem Expert Advisor aufzurufen und ihn im Strategy Tester zu testen.
Höchstwahrscheinlich werden beim Erstellen und Testen viele Dinge gelöscht und geändert, Pakete werden ersetzt, Modelle werden geändert usw. Es ist einfacher, alles in R selbst zu ändern und zu testen.

Wenn es Ihnen gefällt und alles funktioniert, können Sie versuchen, den Code von Hand nach mql zu portieren.
Viele der in R verwendeten Pakete sind in C/C++ geschrieben, und Sie können den Quellcode für Standardpakete hier finden:https://cran.r-project.org/web/packages/available_packages_by_name.html,

Es ist kompliziert... Es würde mehr Zeit in Anspruch nehmen, als den Algorithmus zu verstehen (wie bei der K-Korrelation oben) und ihn zu schreiben. Ich denke, dass das Ausprobieren aller Eingaben, die Berechnung der Korrelation und das Herausfiltern der stark korrelierten Eingaben einige Stunden dauern wird.

Ich hoffe, dass es genauso einfach sein wird, andere Lösungen zum Aussieben von Prädiktoren zu verwenden).

Gibt es also noch andere Lösungen, um unnötige Prädiktoren zu finden?

Grund der Beschwerde: