Diskussion zum Artikel "Neuronales Netz: Selbstoptimierender Expert Advisor"

 

Neuer Artikel Neuronales Netz: Selbstoptimierender Expert Advisor :

Ist es möglich, einen Expert Advisor zu erstellen, der nach Befehlen des Codes Kriterien für das Eröffnen und Schließen von Positionen in bestimmten Abständen optimieren würde? Was geschieht, wenn ein neuronales Netz als Modul (mehrschichtiges Perzeptron), das Historie analysiert und Strategie bewertet, im Expert Advisor implementiert wird? Wir können den Expert Advisor das neuronale Netz jeden Monat (jede Woche, jeden Tag oder jede Stunde) optimieren und die Arbeit anschließend fortsetzen lassen. Auf diese Weise kann ein selbstoptimierender Expert Advisor entwickelt werden.

Nach der Ausführung des Skripts mit den angegebenen Parametern (Netz ohne versteckte Schichten, 10 Input-Neuronen, 20 Neuronen in der versteckten Schicht 1 und 1 Output-Neuron) bekommen wir ein schlechteres Ergebnis als vorher. Die im Ordner Terminal\Common\Files generierte Datei "ScriptNumPrimo-infRN.csv" gibt uns die folgenden Informationen:

Autor: Jose Miguel Soriano

 

Die Selbstoptimierung einer Zielfunktion wurde leider nicht beobachtet.

 

Vielleicht ist es ein Übersetzungsfehler, aber ich verstehe es nicht:

Was bringen Sie dem neuronalen Netz bei?

Was ist die Eingabe und was ist das Ziel?

Was genau optimieren Sie?

Der Artikel ist weitschweifig.

So viel zum Vorteil der Verwendung von Alglig in MT5.

 
<br/ translate="no">
Ich würde gerne die Ergebnisse im Tester und im Demohandel in den Artikeln sehen, die der Erstellung von Expert Advisors gewidmet sind. Sonst ist es wieder ein kugelförmiges Pferd im Vakuum. Es gibt keinen einzigen Artikel über den Einsatz neuronaler Netze im Handel. Nur Theorien.
 

Herzlichen Glückwunsch zu den Informationen,

Das Skript hat gefehlt.

 

Hallo und Danke, es war toll, diese Selbst-Optimierer bu NN zu sehen,

Wie kann ich dies in MT4 verwenden? haben Sie die MT4-Version?

 
Anmerkungen zum Artikel.
1. Neuronale Netze werden nicht optimiert! (im Allgemeinen alle Modelle des maschinellen Lernens) werden trainiert, getestet und können weiter trainiert werden.
2) Datenvorbereitung. Vor der Normalisierung der Eingabe-/Ausgabedaten sollte der Datensatz in Training/Test und manchmal in gültige Teile in den erforderlichen Proportionen aufgeteilt werden. Die Normalisierungsparameter werden für den Trainingssatz festgelegt! Bei der Lösung von Klassifizierungsproblemen sollte die Partitionierung (vorzugsweise) schichtweise erfolgen. Und natürlich sollte das Ungleichgewicht der Klassen berücksichtigt werden.
In dem Artikel werden keine spezifischen Ein- und Ausgabedaten genannt, aber diese Passage: "Die Variable "nVelasPredic" ermöglicht die Extrapolation dieser Indikatorwerte für n Kerzen im Voraus." wirft eine stumme Frage auf.
Der letzte Absatz des Abschnitts:"Das heißt, jede Zeile des Arrays "arDatos" der Klasse CMatrixDouble hat so viele Spalten, wie es Eingabedaten oder Indikatorwerte gibt, die in der Strategie verwendet werden, und so viele Ausgabedaten, die von ihr definiert werden." Und wie viele Ausgabedaten werden definiert? Wie Sie sich denken können, ist das Regressionsproblem gelöst und die Anzahl der Ausgaben = 1.
Im Allgemeinen sind die Eingabe- und Ausgabedaten in der Schwelle eine Abstraktion, dennoch ist der RMSE-Lernfehler gegeben.
3."Oversampling der Eingabe-/Ausgabedaten".
"Um die Tendenzen zu vermeiden, die mit der Vererbung von Werten innerhalb eines Datenarrays verbunden sind, können wir die Reihenfolge der Zeilen innerhalb des Arrays willkürlich ändern (neu ordnen). Zu diesem Zweck wenden wir die Funktion "barajaDatosEntra" an, die die Zeilen des CMatrixDouble-Arrays durchläuft, für jede Zeile eine neue Zielzeile definiert, die Datenposition jeder Spalte berücksichtigt und die Daten mit Hilfe der Bubble-Methode mischt " Sprechen Sie von Sortieren?
Bei Klassifizierungsproblemen ist es wünschenswert, die Zeilen nach dem Zufallsprinzip (nicht überschießend) zu mischen, bei der Regression ist dies nicht erforderlich.
4. "3.6.Training/Optimierung eines neuronalen Netzes". Ich wiederhole: Ein neuronales Netz wird nicht optimiert oder abgestimmt - es wird trainiert. Heutzutage gibt es eine ganze Reihe von Trainingsmethoden. Jede hat ihre eigenen Vor- und Nachteile.
"Die Tests, die ich durchgeführt habe, haben keine Verbesserung der Ergebnisse gezeigt, wenn die Anzahl der Trainingsepochen erhöht wurde. "
"Diese Algorithmen führen die Abstimmung so durch, dass die Wiederholung von Trainingszyklen (Variable "ciclosEntrena") fast keine Auswirkungen auf den resultierenden Fehler hat, im Gegensatz zum "Backpropagation"-Algorithmus, bei dem die Wiederholung die resultierende Genauigkeit erheblich verändern kann."
Wenn Ihr neuronales Netz nicht auf eine Änderung der Anzahl der Trainingsepochen reagiert, ist es ein fehlerhaftes neuronales Netz.
"Ein Netz aus 4 Schichten mit 35, 45, 10 und 2 Neuronen und einer Eingabematrix von 2000 Zeilen kann mit der obigen Funktion in 4 - 6 Minuten (I5, Core 4, RAM 8 gb) mit einem Fehler in der Größenordnung von 2 - 4 Hunderttausendstel (4x10^-5) optimiert werden." - Wie Sie aus dem Artikel ersehen können, sprechen Sie über Lernfehler, was immer sehr gut ist. Aber es ist der Fehler beim Testen, den Sie offensichtlich nicht gemacht haben, der aufschlussreich ist. Ohne spezifische Daten über Inputs und Outputs sagt die von Ihnen genannte Zahl nichts aus. Außerdem habe ich in dem Artikel keine Verschiebung der Ausgangsdaten während des Trainings gesehen.
5."3.7 Speichern des Netzes..."
Für die weitere Arbeit ist es notwendig, nicht nur das Netz selbst zu speichern, sondern auch die Normalisierungsparameter, die aus der Trainingsmenge gewonnen wurden. Andernfalls wird die weitere Arbeit zur Zeitverschwendung.
"Diese Funktion (respuestaRed()) soll in der Lage sein, die auf die Ausgabedaten in der Trainingsmatrix angewandte Normalisierung zu ändern." Wie das? Die Normalisierungsparameter werden in der Trainingsphase festgelegt und können nicht in der Test- oder Vorhersagephase geändert werden.
6. "Selbstoptimierung" Hier gibt es weder eine Optimierung noch eine Selbstoptimierung. Es handelt sich um ein neuronales Netz, das in regelmäßigen Abständen mit neuen Daten lernt.

Zusammenfassend kann ich sagen: als Programmierübung ist es wahrscheinlich nützlich, aber als Leitfaden zum Thema Erstellung und Verwendung eines neuronalen Netzes ist es absolut inakzeptabel. Der Autor (oder Übersetzer) sollte sich an die gängigen Begriffe und Definitionen in diesem Bereich halten, um die Benutzer nicht in die Irre zu führen. Und ich denke, dass eine Vorprüfung der Texte vor der Veröffentlichung sehr wünschenswert ist. Damit meine ich nicht das Fehlen von Diagrammen oder Zeichnungen zur Veranschaulichung des Textes. Ohne sie ist der Text nur ein Stück Code.

Viel Erfolg!




 

Alexey Volchanskiy:
Хотелось бы в статьях, посвященных созданию советников, увидеть результаты в тестере и торговли на демо. А то опять сферический конь в вакууме. Еще не одной дельной статьи по использованию нейросетей в трейдинге не было. Одни теории.

Das ist eine starke Aussage, die jedoch unbegründet ist.

Im Anhang zu den Artikeln (zumindest zu meinem) befinden sich Codes von Expert Advisors. Setzen Sie sie auf Demo und testen Sie sie. Oder ziehen Sie es vor, den Bildern anderer Leute zu glauben? Seien Sie nicht faul, versuchen Sie es.

Der Zweck der Artikel ist es, Ihnen neue Ideen, Wege und Methoden zu geben, die in Expert Advisors angewendet werden können. Aber es liegt an Ihnen, sich für eine produktive Arbeit einzurichten. Es ist auf dem Markt, dass Sie durch schöne Bilder gelockt werden können.

Viel Glück

 
Vielen Dank für Ihre harte Arbeit, die für mich sehr tiefgreifend war.
 
Ausgezeichnete Arbeit und super bereichernder Artikel, gut erklärt und klar, ich kann Ihnen nur danken für Ihren Beitrag in diesem Bereich.

Grüße.
 
MetaQuotes Software Corp.:

Neuer Artikel Neuronale Netze: Intelligente Handelssysteme, die sich selbst optimieren, wurde veröffentlicht:

Von Jose Miguel Soriano

Danke fürs Teilen