Diskussion zum Artikel "Experimente mit neuronalen Netzen (Teil 3): Praktische Anwendung" - Seite 2

 

Es ist jetzt Februar 2023 - über zwei Monate neue Geschichte in Bezug auf die Tests zu den Waagebildern. Können Sie die Ergebnisse von EAs mit denselben Einstellungen auf den neuen Daten zeigen? Oder frühere EAs, die nicht an der Optimierung beteiligt waren.

 
Aleksey Vyazmikin #:

Es ist jetzt Februar 2023 - über zwei Monate neue Geschichte in Bezug auf die Tests zu den Waagenbildern. Können Sie die Ergebnisse von EAs mit denselben Einstellungen auf den neuen Daten zeigen? Oder frühere, die nicht an der Optimierung beteiligt waren.

TP=60
SL=600
Das ist nicht mehr seriös
 
Aleksey Vyazmikin #:

Es ist jetzt Februar 2023 - über zwei Monate neue Geschichte in Bezug auf die Tests zu den Waagenbildern. Können Sie die Ergebnisse von EAs mit denselben Einstellungen auf den neuen Daten zeigen? Oder frühere EAs, die nicht an der Optimierung beteiligt waren.

Das kann ich jetzt nicht. Machen Sie die Optimierung selbst.

 
Aliaksandr Hryshyn #:
TP =60
SL=600
Das ist nicht mehr seriös.

Ja, ich habe es gesehen. Aber dennoch fand ich die Ansicht des Autors über Prädiktoren interessant....

 
Roman Poshtar #:

Das kann ich im Moment nicht. Machen Sie die Optimierung selbst.

Nun, vielleicht später - in einer Woche oder einem Monat?

 
Aleksey Vyazmikin #:

Nun, vielleicht später - in einer Woche oder einem Monat?

Vielleicht

 
Ich habe im Laufe des letzten Jahres viele Versionen neuronaler Netze für EURUSD getestet, und ich möchte sagen, dass das Jahr selbst gut ist. Aus irgendeinem Grund zeigen viele neuronale Netze nach der Optimierung im Jahr 2021 ein Wachstum im Jahr 2022.

Wenn man aber im Jahr 2020 trainiert und im Jahr 2021 testet, verlieren sie genau das Gegenteil.

Außerdem habe ich beim Studium der neuronalen Netze verstanden, wozu die Aktivierungsfunktion dient - für die Rückwärtsfortpflanzung des Fehlers, also für das Training. Das heißt, dass die Anpassung der Gewichte während der Optimierung den Sinn der Aktivierungsfunktionen und damit auch der klassischen neuronalen Netze zunichte macht. Das Ergebnis ist mit der Aktivierungsfunktion fast dasselbe wie mit dem einfachsten Reshetov-Perzeptron.

Mehr noch - die einfachsten Perzeptrons zeigen das Bild noch besser, und alle Arten von Unordnung in Form von Bibliotheken überlasten einfach das Terminal.

Deshalb ist es besser, mehrere Jahre hintereinander und mehrere Währungspaare zu prüfen. Ja, das ist arbeitsintensiv, aber das Ergebnis wird objektiver sein.

All das oben genannte ist imho. Vielen Dank an den Autor für den Artikel, der Teil über das Perzeptron ist interessant, ich werde mich näher damit befassen
 

Wahnsinn! Roman,

Dieser Artikel deckt genau das ab, was ich versuche zu erreichen!.

Mit einem 3- oder 4-Ebenen-DNN habe ich die Tests einen Tag lang durchgeführt und die Ergebnisse über den XML-Prozess auf der Registerkarte "Optimierung" nach Excel exportiert, um eine Excel-Tabelle zu erstellen, die ich als CSV-Datei gespeichert habe. Mit der CSV-Datei plane ich, sie in den EA zu importieren und dann eine Optimierung durchzuführen, um die beste Strategie aus den höchsten 1000 optimierten Ergebnissen in einem Forward-Data-Test auszuwählen.Ein paar Dinge habe ich gelernt: Erstens speichern Sie die EA-Eingaben in einer SET-Datei in mql5\profile\tester und Sie können die SET-Datei in NotePad bearbeiten, es ist viel einfacher als mit der Registerkarte Eingabe, um Gruppen von Eingaben zu ändern. Die zweite Sache ist, dass die Tests, die ich in eine Menge von sehr kleinen Anzahl von Trades lief. Weniger als 0-100 über 2 Jahre, also habe ich sie eliminiert. Der letzte Punkt ist, dass Sie auf die Kommas in der CSV-Datei achten sollten, besonders wenn Sie Werte über $1000.00 haben. Die Equity- und Profit-Spalten haben ein Komma für 1000 Werte gesetzt, so dass, wenn die Daten in einer CSV-Datei gespeichert werden, zusätzliche Kommas enthalten sind. Wenn Sie StringSplit verwenden, wie ich es tue, um den Anfang zu identifizieren und dann die optimierten Neuronen in das Weight-Array zu parsen, müssen die zwei zusätzlichen Kommas in die Berechnungen einbezogen werden.

Ich füge eine PNG-Datei des Aktien-Streudiagramms für einen abgeschlossenen Optimierungslauf für einen 2-Jahres-433-DNN mit EURUSD H4 auf der Original-Funktion bei. Wie Sie sehen können, gibt es ein Übergewicht der Ergebnisse an oder über der 2900-Linie, und die Zahl darüber steigt dramatisch an, wenn sich die Anzahl der Optimierungen dem Ende des Laufs nähert, was zu erwarten ist. Mein Plan ist, die besten 1000 auszuwählen und dann die Vorwärtsdaten zu verwenden, um die besten entsprechenden optimierten Gewichte aus der vorherigen Optimierung zu identifizieren.Da genetische Optimierungen exponentiell mit der Anzahl der Schichten und der Neuronen ansteigen, wird eine vollständige GA-Optimierung für eine große Anzahl von Neuronen und komplexe Handelsstrategien und Stop-Loss-Berechnungen für die meisten Maschinen unmöglich sein. Die Identifizierung der Basislinie, z. B. 2900, und auch immer ein paar tausend Ergebnisse zu verwenden sollte wesentlich in vernünftiger GA Laufzeiten führen und sollte auch in guten, aber nicht die besten Optionen für die EA für Forward-Testing auf Live-Daten führen. Ich habe herausgefunden, dass Sie die Optimierungen zu Excel exportieren können, während die GA-Agenten weiter laufen, so können Sie bestimmen, wenn Sie eine 100 Optimierungen über der Basislinie mit Excel's COUNTIF-Funktion haben.

 
CapeCoddah optimierten Ergebnissen in einem Forward-Data-Test auszuwählen.Ein paar Dinge habe ich gelernt: Erstens speichern Sie die EA-Eingaben in einer SET-Datei in mql5\profile\tester und Sie können die SET-Datei in NotePad bearbeiten, es ist viel einfacher als mit der Registerkarte Eingabe, um Gruppen von Eingaben zu ändern. Die zweite Sache ist, dass die Tests, die ich in eine Menge von sehr kleinen Anzahl von Trades lief. Weniger als 0-100 über 2 Jahre, also habe ich sie eliminiert. Der letzte Punkt ist, dass Sie auf die Kommas in der CSV-Datei achten sollten, vor allem, wenn Sie Werte über $1000.00 haben. Die Spalten Equity und Profit haben ein Komma für 1000 Werte gesetzt, so dass beim Speichern der Daten in einer CSV-Datei zusätzliche Kommas enthalten sind. Wenn Sie wie ich StringSplit verwenden, um den Start zu identifizieren und dann die optimierten Neuronen in das Weight-Array zu parsen, müssen die beiden zusätzlichen Kommas in die Berechnungen einbezogen werden.

Ich füge eine PNG-Datei des Equity-Scatter-Diagramms für einen abgeschlossenen Optimierungslauf für einen 2 Jahre alten 433 DNN mit EURUSD H4 auf der Originalfunktion bei. Wie Sie sehen können, überwiegen die Ergebnisse an oder über der 2900er-Linie, und die Zahl über der 2900er-Linie nimmt dramatisch zu, wenn sich die Anzahl der Optimierungen dem Ende des Laufs nähert, was zu erwarten ist. Mein Plan ist es, die besten 1000 auszuwählen und dann die Vorwärtsdaten zu verwenden, um die besten entsprechenden optimierten Gewichte aus der vorherigen Optimierung zu identifizieren.Da genetische Optimierungen exponentiell mit der Anzahl der Schichten und der Neuronen ansteigen, wird eine vollständige GA-Optimierung für eine große Anzahl von Neuronen und komplexe Handelsstrategien und Stop-Loss-Berechnungen für die meisten Maschinen unmöglich sein. Die Identifizierung der Basislinie, z. B. 2900, und auch immer ein paar tausend Ergebnisse zu verwenden, sollte wesentlich in vernünftiger GA Laufzeiten führen und sollte auch in guten, aber nicht die besten Optionen für die EA für Forward-Testing auf Live-Daten führen. Ich habe herausgefunden, dass Sie die Optimierungen zu Excel exportieren können, während die GA Agenten weiter laufen, so können Sie bestimmen, wenn Sie eine 100 Optimierungen über der Basislinie mit Excel's COUNTIF-Funktion haben.

Ich danke Ihnen für Ihr Interesse an meinen Veröffentlichungen. Ich denke, Ihre Ideen können umgesetzt werden. Aber wie Sie sehen können, hängt alles vom eisernen Teil unserer Frage ab - den Computern.

 

Das ist eine unglaubliche Arbeit, danke Roman!

Ich habe ein Problem, bei dem ich nicht in der Lage bin, eines der Perceptron MQ5s zu kompilieren: "1 perceptron 4 angle SL TP - trade" hat zum Beispiel 22 Fehler, die meisten davon sind erwartete Semikolons. Übersehe ich etwas oder habe ich etwas falsch gemacht?