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

 
Mihail Marchukajtes:

Denken Sie daran, dass jede Datenredundanz den Eintritt des Modells in den Kampf verzögert. Dies wirkt sich unmittelbar auf die Qualität der empfangenen Signale nach....

Ich persönlich habe mich für die folgende Methodik entschieden. Ich habe das mit Kaufsignalen erhaltene Modell umgekehrt und es mit demselben Teil des Marktes, aber mit Verkaufssignalen, getestet. So verliere ich keine kostbare Zeit und kann die Fähigkeiten des Modells angemessen einschätzen. IMHO

Ich möchte versuchen, das Modell mit der klassischen train|valid|test Methode zu lernen und zu testen. Wenn das Modell funktioniert, dann wird der Test ein echter Handel sein, d.h. ich verwende train|valid in NS und führe einen echten Handel mit den erhaltenen Einstellungen durch. Oder reicht vielleicht ein Zug aus? Damit wird die Ausbildung nahe an der Zeit des realen Handels sein. Als letzten Ausweg können wir die Daten vor dem Zugplot validieren.
 

Übrigens, ja. Der Kontrollabschnitt kann auch vor dem Abschnitt für Auszubildende liegen. Ich mache das auch, aber ich habe eine Klassifizierung, die sich nicht um die Reihenfolge kümmert. Bei Vorhersagen oder Regressionen ist die Reihenfolge der Daten sehr wichtig.

Aber in meinem Fall ist die Trennung in Kaufen und Verkaufen am wichtigsten, weil der Kontrollbereich in denselben Marktzeitraum fällt wie der Lernbereich. Es ist nur so, dass die Daten diametral entgegengesetzt sind, aber alle Gesetze und Nachrichten, die derzeit in Kraft sind, sind die gleichen für den Trainings- und den Kontrollbereich. In diesem Fall beginnt der Handel direkt nach dem Zugteil, was die Zeit des TS potenziell verlängert.

 
Mihail Marchukajtes:

Ich persönlich habe mich für die folgende Methodik entschieden. Ich habe das mit Kaufsignalen erhaltene Modell umgedreht und mit demselben Teil des Marktes, aber mit Verkaufssignalen, getestet. So verliere ich keine kostbare Zeit und kann die Fähigkeiten des Modells angemessen einschätzen. IMHO

Warum nicht ein einziges Modell mit Ausgabewerten von Kaufen und Verkaufen unterrichten, z. B. von 1,0 bis -1,0, und alles um 0,0 herum ist flach?

 
elibrarius:
Ich möchte versuchen, das Modell mit der klassischen Methodik trainieren und testen (train|valid|test). Wenn das Modell funktioniert, dann wird der Test ein echter Handel sein, d.h. ich füttere NS mit train|valid und führe einen echten Handel mit den erhaltenen Einstellungen durch. Oder ist ein Zug vielleicht genug? Damit wird die Ausbildung nahe an der Zeit des realen Handels sein. Als letzten Ausweg können wir eine Validierung anhand von Pre-Train-Daten vornehmen.
Hier wird über die Anzahl und Abfolge von Training, Test und Validierung diskutiert, aber nicht über die Kreuzvalidierung, die wahrscheinlich jeder standardmäßig verwendet oder die niemand verwendet...
 
Iwan Negreshniy:
Sie streiten sich über die Anzahl und die Reihenfolge der Trainings-, Test- und Validierungsabschnitte, sprechen aber nicht über die Kreuzvalidierung, die wahrscheinlich jeder standardmäßig verwendet oder niemand verwendet...

Ich habe gelesen, dass die Kreuzvalidierung verwendet wird, wenn es nur wenige Daten gibt und man zumindest eine Grundlage für die Validierung braucht. Im Devisenhandel gibt es eine Menge Daten - Millionen von Minutenbalken über mehrere Jahre hinweg. Ich glaube, niemand benutzt sie.

 
elibrarius:

In Kreuzvalidierung chiall, dass es verwendet wird, wenn die Daten knapp sind und Sie etwas brauchen, um auf zurückgreifen. Im Devisenhandel gibt es eine Menge Daten, Millionen von Minutenbalken über mehrere Jahre hinweg. Ich glaube, niemand benutzt sie.

Meiner Meinung nach ist dies genau der richtige Weg, um den Effekt des manuellen Mischens und Kombinierens von Eingabedaten auszugleichen.
 
Iwan Negreshniy:

Warum nicht auf einmal lehren das gleiche Modell mit Werten von Buy und Sell auf die Ausgabe, zum Beispiel von 1,0 bis -1,0, und alles in der Nähe von 0,0 - flach?


Das ist nicht... Nicht unsere Methode. Durch das Lehren von Kauf und Verkauf auf einmal verschwindet der Check.... Bereich.

 
Iwan Negreshniy:

Nette Idee und nützliche MT5-Bibliothek, aber es ist ziemlich mühsam, sie mit einer Python-Skriptdatei zu synchronisieren IMHO.

Ich denke, es ist besser, MQL-Variablen direkt mit Python-Variablen über ein lokales Wörterbuch zu synchronisieren und Python-Codefragmente direkt von String-Konstanten im EA-Code auszuführen.

Ich habe den Test versucht, Kompilieren bcc64 von der Kommandozeile und es funktioniert gut in Python 3.6:

Es wäre schön, diese Funktionalität zu Ihrer Bibliothek hinzuzufügen, war ich über meine eigene zu schreiben, aber leider für jetzt bin ich mit P-Netz-Bibliothek für Python beschäftigt.

Übrigens, ich habe über dieses neue neuronale Netz hier in einem Zweig geschrieben, nach vorläufigen Ergebnissen von Tests auf Beispielen mit Fisher's Iris ist es auf drei Größenordnungen schneller als DNN in TensorFlow trainiert, mit gleichen Testergebnissen.


Ich werde darüber nachdenken. Von meiner Bibliothek aus können Sie jedes Python-Skript starten und jede Funktion davon ausführen. Die Bibliothek ist nicht kompliziert. Ich denke, das wird für mich und viele andere ausreichen.

 
Grigoriy Chaunin:

Ich werde darüber nachdenken. Von meiner Bibliothek aus können Sie jedes Python-Skript starten und jede Funktion davon ausführen. Die Bibliothek ist nicht kompliziert. Ich denke, das wird für mich und für viele andere ausreichen.

Ja, Ihre Bibliothek ist durchaus brauchbar, aber ich denke, sie könnte einige Verbesserungen gebrauchen, da Skripte, die aus separaten Dateien geladen werden, und die Synchronisierung von Argumenten und Werten ihrer Funktionen durch globale Variablen in der DLL nicht immer der beste Weg sind.
 

Ich denke schon. Es ist sehr wahrscheinlich, dass sich die Bibliothek verändern wird. Im Moment habe ich die Aufgabe, Python auf fortgeschrittenem Niveau zu beherrschen und die Datenwissenschaft zu meistern. Dafür ist immer Zeit. Und wann ein praktikables Modell fertig sein wird. Ich werde bereits darüber nachdenken, wie ich sie an MT anbringen kann.

Renat schrieb in einem benachbarten Thread, dass sie Python, R und C# hinzufügen werden. Aber ich verstehe nicht, ob es möglich sein wird, einfach in MetaEditor zu arbeiten oder mit MQL zu integrieren. Nur in Metaeditor zu arbeiten ist nicht wirklich sinnvoll, Code-Editoren reichen aus. Ich halte eine Integration für wahrscheinlicher. Das wäre doch cool. Und meine Arbeit an der Python-Integration ist eine Übergangslösung.