Expert Advisors: Beispiele aus dem Buch „Neuronale Netze für den algorithmischen Handel mit MQL5“ - Seite 3
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Aus welchem Skript generiere ich diese study_data_not_norm.csv? Ich habe es mit dem Skript create_initial data versucht, aber es hat nicht funktioniert. Beim Ausführen des Skripts gpt_test_not_norm.mq5 wurde der Bereich nicht eingehalten.
Liebe Administratoren,
vielen Dank für die Möglichkeit, in einem so einzigartigen Bereich zu lernen!
Ich möchte auf die vorherigen Beiträge zum Fehler 5008 zurückkommen.
Ich konnte auch den Strategietester für das trainierte Modell gpt_not_norm.net nicht laden mit Fehler 5008, die Modelldatei wird nicht geladen.
Gleichzeitig verhält sich der Roboter korrekt, wenn er auf einem Chart läuft, die Modelldatei nimmt nach einem direkten Durchlauf die entsprechenden Werte auf, ich habe sie auf dem Chart angezeigt, alles ist gut.
Die Modelldatei befindet sich, wie es sein sollte, im Verzeichnis gemäß dem True-Flag für Common \Terminal\Common\Files .
Außerdem startete der Strategietester ohne Fehler, als ich das Gleiche auf einem anderen Computer, auf meinem Laptop, ausführte.
Könnte es an einigen Systemeinstellungen liegen, die verhindern, dass der Strategietester funktioniert?
1. der Strategy Tester funktioniert nicht auf einem Computer mit
Intel Core i5-9400F 2.90GHz Prozessor , 16295 MB
Windows 10 home.
2. der Strategy Tester funktioniert auf einem Laptop mit
Intel Core i7-2760QM 2 .40GHz Prozessor, 12238 MB
Windows 10 Pro.
Bitte helfen Sie mir, dieses Problem zu lösen.
Ich muss wirklich die comp engagieren, hat es eine Grafikkarte auf sie und ist schneller für sicher.
Bei der Ausführung des Skripts gpt_test_not_norm.mq5 erhielt ich einen Exit außerhalb des Bereichs.
In der 40. Zeile des Programms:
if(!loss_history.Resize(0,Epochs))
Ändern in:
if(!loss_history.Resize(Epochs))
Hi. Ich habe viel geschrieben, es wurde ein Buch daraus. Ich fing an, es zu lesen und dachte, ich schreibe etwas für den Markt.
Es ist ein gutes Stück Arbeit. Denn es gibt nichts anderes, das so universell erklärt, wie man maschinelles Lernen mit mql5-Tools angeht.
Wie auch immer.
Das Beispiel ist in 3 Teile aufgeteilt - 60% Training, 20% Validierung und 20% Test. Von den 40 Balken jeder Balkenkette werden 35 Balken wiederholt. Die Moral - Sie trainieren und validieren mit denselben Daten. Ich habe ein Bild gezeichnet. Das ist nicht nur das Problem dieses Buches, sondern ich treffe es immer wieder an.
Zuerst dachte ich, der Zickzack-Indikator sei genau das Richtige, um nicht wiederkehrende Bewegungen hervorzuheben. Zum Beispiel von oben nach unten, von unten nach oben, von unten nach oben. Das wären einzigartige Muster, wie sie im Buch genannt werden. Aber nein, der Autor baut die Muster Takt für Takt auf, und das ist natürlich ein grober Fehler. Und dafür braucht man kein Zigzag. Sie können einfach 10 Takte vorausschauen und berechnen, wohin sich der Markt entwickelt hat.
Das ist der erste Punkt - praktisch. Und der zweite Punkt ist technisch - auch falsch. Der Autor bietet Training mit Validierung nur in Tensorflow? Das ist in Ordnung, Tensorflow ist eine Bibliothek für maschinelles Lernen, die Google herstellt. Aber der Zweck dieser Arbeit war es, zu zeigen, wie man es mit mql5-Tools machen kann, richtig?
Es gibt keine Beispiele für Lernen mit Validierung in mql5. Ich habe noch keine Beispiele mit Validierung gefunden. Ich werde sie später aufschreiben, wenn Sie wollen. Natürlich sollten Sie versuchen, es selbst zu tun. Natürlich sollten Sie das. Es ist eine Menge Arbeit, die Historie vorzubereiten und die Trainingsparameter auszuwählen. Tensorflow scheint alles zu haben, aber es gibt so viel zu tun. Und hier stellt sich heraus, dass der technische Teil noch nicht fertig ist.
Sind das die 95%, die ohne 5% an Wert verlieren?
Ich bleibe bei der Tatsache stehen, dass es gute Arbeit ist. Denn es gibt nichts Vergleichbares.
Passt Adams Optimierungsmethode die learning_rate nicht an die Lernrate an? Außerdem wird eine "Obergrenze" anstelle eines konstanten Werts verwendet.
Warum sollte man bei einem rekurrenten Netz versteckte vollverknüpfte Schichten hinzufügen? Das Full-Link-Thema zerstört das Lstm-Thema. Natürlich braucht man am Ende des Netzes 1 vollverknüpftes Neuron, um es zu aktivieren.
Dropout ist eine Schichteigenschaft in jedem neuronalen Netz. In lstm zum Beispiel ist die Dropout-Eigenschaft ein Muss, da es sich sonst über mehrere Epochen hinweg an Daten gewöhnt. Ich weiß, dass in pytorch die Dropout-Eigenschaft nur bei einem Übergang zwischen zwei identischen Schichten verwendet werden kann, also braucht man 2 rekurrente Schichten. Und in Tensorflow kann jede Schicht Dropout haben. Offensichtlicher Vorteil von Tensorflow gegenüber Pytorch.
Stapelverarbeitung in Backpropagation. Warum hat der Autor eine beliebige Anzahl von Stapeln! Es stellt sich heraus, dass er bei jeder Epoche eine zufällige Menge an Daten zum Trainieren auswählt. Ein Batch ist eine Menge! Nehmen wir zum Beispiel 1000 Elemente, dann sind das 10 Pakete mit je 100 Werten. Jede Epoche ist ein anderes Paket, aber es sind immer 100 Werte. Ich führe das Training paketweise durch und passe die Gewichte am Ende eines jeden Pakets an. So kann ich sicherstellen, dass ich nicht an einem lokalen Minimum hängen bleibe. Und ich verwende alle Beispieldaten, nicht nur einige.
Die Handelsoptimierung funktioniert noch nicht. Es erscheint ein seltsamer Fehler im Dialogfenster. Der Computer hat sich einmal ausgeschaltet. Das heißt, wenn Sie das Netz trainieren und dann versuchen, den Handel damit zu optimieren.
Meiner Meinung nach ist es falsch, einen grafischen Stimulator für Forex zu verwenden. Egal wie man es betrachtet, es gibt nicht viele Daten. Richtiger wäre es meiner Meinung nach, Metatrader-Agenten im Optimierer zu verwenden, um verschiedene Trainingsströme für verschiedene Netzwerke laufen zu lassen. In Tensorflow trainiere ich zum Beispiel 7 Streams. Einer läuft aus, ein anderer wird hinzugefügt. Und so weiter in der Reihenfolge von 100 Varianten. Dann lasse ich sie über die Historie laufen.
Der Punkt hier ist, dass ein neuronales Netzwerk gut sein kann. Aber nicht jedes neuronale Netz kann seinen Trainingsverlauf bestehen. Deshalb braucht man eine Menge Varianten von Netzen.
ChatGPT schlägt vor, dass die beste Möglichkeit, zwischen den beiden zu unterscheiden, die Verwendung eines Sigmoid ist. Und genau das konnte ich nicht finden. Und die Aktivierungsfunktionen sind unterschiedlich. Aber die Verlustfunktion ist die gleiche - MSE?
Tangente ist immer noch eine Regression, keine Klassifizierung. -1 bis 1 ist keine Wahrscheinlichkeit, es ist eine Wertberechnung.
Kurz gesagt, es reicht aus. Es gibt nichts anderes zu tun. Die Arbeit ist also sicherlich gut. Ich werde sie nutzen.
LG 2 10:07:44.216 Kern 1 Verbindung unterbrochen
KP 0 10:07:44.216 Kern 1 Verbindung geschlossen
Hatten Sie Glück bei der Suche nach einer Lösung? Wenn ich eine finde, werde ich sie veröffentlichen.
Es gibt keine Datei"our_model.net " IMO