Diskussion zum Artikel "Neuronale Netze im Trading: LSTM-Optimierung für die multivariate Zeitreihenprognose (letzter Teil)"

 

Neuer Artikel Neuronale Netze im Trading: LSTM-Optimierung für die multivariate Zeitreihenprognose (letzter Teil) :

Wir setzen die Implementierung des DA-CG-LSTM-Frameworks fort, das innovative Methoden für die Zeitreihenanalyse und -prognose bietet. Die Verwendung von CG-LSTM und eines dualen Aufmerksamkeitsmechanismus ermöglicht eine genauere Erkennung sowohl langfristiger als auch kurzfristiger Abhängigkeiten in Daten, was besonders für die Arbeit mit Finanzmärkten nützlich ist.

Wie bereits erwähnt, basiert das DA-CG-LSTM-Framework auf zwei grundlegenden Komponenten: Aufmerksamkeitsmodulen und dem modifizierten rekurrenten CG-LSTM-Block. Zusammen bilden diese Elemente eine robuste Architektur, die dem Modell die Flexibilität, Rauschresistenz und die Fähigkeit verleiht, komplexe mehrstufige zeitliche Abhängigkeiten zu erfassen, die für Finanzmarktanwendungen erforderlich sind. Unter Bedingungen hoher Volatilität und Marktunsicherheit sind solche Eigenschaften nicht nur wünschenswert – sie sind für den Aufbau zuverlässiger Handelssysteme unerlässlich.

Im praktischen Teil des vorherigen Artikels haben wir den Prozess der Implementierung des CG-LSTM-Blocks in MQL5 gründlich untersucht. Die resultierende Komponente erfüllt erfolgreich drei kritische Funktionen: Merkmalsfilterung zur Eliminierung unnötigen Rauschens, effiziente Verwaltung des internen Zustands des Modells zur Bewahrung langfristiger Informationen und Datenaggregation über mehrere zeitliche Skalen hinweg. Ihre Fähigkeit, unstrukturiertes Rauschen zu unterdrücken und gleichzeitig stabile Lerndynamiken aufrechtzuerhalten, ermöglicht die Entwicklung von Modellen, die die Prognosegenauigkeit über längere historische Zeiträume bewahren.

Neuronale Netze im Handel: LSTM-Optimierung für die Prognose multivariater Zeitreihen (Abschließender Teil)


Autor: Dmitriy Gizlyk

 
Ich möchte meine Erfahrungen und Eindrücke teilen. Zunächst einmal ein großes Dankeschön und meine Hochachtung an den Autor. Noch vor ein oder zwei Monaten hätte mich ein solcher Artikel abgeschreckt. Ich hätte gedacht, dass ich das nicht schaffe. Heute hat sich alles komplett auf den Kopf gestellt. Neuronale Netze sind die Magie unserer Zeit. Ich kann es selbst kaum glauben, aber ich sitze gerade hier und sammle Daten, um dieses neuronale Netz zu trainieren. Es funktioniert. Ich habe ihm einfach diese beiden Artikel und den Original-Leitfaden zu ChatGPT o3 gefüttert, und schon führt es mich durch den Kurs. Außerdem lag bei mir seit einigen Jahren eine Idee für einen Indikator in der Schublade, die ich aufgrund meiner mangelnden MQL-Kenntnisse nur in Excel formulieren konnte. Und nun habe ich sie innerhalb von nur ein paar Wochen mithilfe von Grok und ChatGPT in MQL5 umgesetzt. Und sie funktioniert! Und sie handelt! Und jetzt kann man diesen magischen neuronalen Netz-Algorithmus sogar direkt an diesen eigenen Indikator ankoppeln. Kurz gesagt: Ich bin überwältigt davon, wie schnell sich einfach grenzenlose Möglichkeiten eröffnet haben.
 
Übrigens: Wenn ich Research mit angeschlossenen Clustern ausführe, geben die Cluster die Binärdatei (DACGLSTM.bd) leider nur lokal aus. Das heißt, diese Datei ist nicht gemeinsam nutzbar, sondern jeder Rechner hat seine eigene, lokal gespeicherte Version. Das neuronale Netzwerk hat mir hier eine Idee geliefert, aber ich habe mir darüber keine weiteren Gedanken gemacht:

Wie man alle Test-Agenten dazu bringt, eine einzige .bd-Datei auf einem Netzwerklaufwerk zu speichern – in 4 Schritten

  1. Gemeinsamer Ordner

    • Erstellen Sie auf dem „Haupt“-PC den Ordner D:\DACShare.

    • Rechtsklick → „Zugriff“ → „Erweitert“ → freigegebene Ressource DACGLSTM, Lese-/ Schreibrechte für „Everyone“.

    • Endgültiger Pfad: \\MAINPC\DACGLSTM.

  2. Benutzerkonto für Dienste

    • compmgmt.msc → „Benutzer“ → fügen Sie „mqlagent“ hinzu (beliebiges Passwort).

    • In services.msc bei jedem MetaQuotes Tester Agent … → Registerkarte „Anmeldung“ → „Dieses Konto“ → MAINPC\mqlagent, Passwort eingeben, Dienst neu starten.

  3. Bearbeitung des Research-Codes

    input string SharedRoot = "\\\\MAINPC\\DACGLSTM\\"; string FileName = SharedRoot + "trajectories"; int handle = FileOpen(FileName + ".bd", FILE_WRITE|FILE_BIN|FILE_SHARE); // anstelle von FILE_COMMON

    (gleiche Ersetzung für das Lesen). Kompilieren Sie die .ex5-Datei und kopieren Sie sie auf alle Agenten.


  4. -Prüfung Starten Sie die Optimierung; im Protokoll jedes Agenten erscheint:
    Saved to: \\MAINPC\DACGLSTM\DACGLSTM.bd size=…
    Öffnen Sie die Datei – sie wird nach jedem Durchlauf größer.

👉 Jetzt schreiben alle lokalen und entfernten Agenten in einen gemeinsamen Datenpuffer, und Study.mq5 kann von jedem Rechner aus lernen, indem es einfach dieselbe .bd-Datei öffnet

 

Es ist nicht ganz klar, wie die Datei „DACGLSTM.bd“ aktualisiert wird.

Ich führe „Research“ im 1-Monats-Intervall durch. Vollständige Optimierung. Optimierungsparameter: Agent 1 bis 8. Dann der nächste Monat … aber die Datei wird überhaupt nicht aktualisiert. Ich sehe, dass das Datum der Datei erst zu Beginn eines neuen Tests aktualisiert wird, das war’s, und die Dateigröße bleibt unverändert.

 
Vladimir Sanin #:

Es ist nicht ganz klar, wie die Datei „DACGLSTM.bd“ aktualisiert wird.

Ich führe den Research-Lauf im 1-Monats-Intervall durch. Vollständige Optimierung. Optimierungsparameter: Agent 1 bis 8. Dann der nächste Monat … aber die Datei wird überhaupt nicht aktualisiert. Ich sehe, dass das Datum der Datei nur zu Beginn eines neuen Tests aktualisiert wird, das war’s, und die Dateigröße bleibt unverändert.

Könnt ihr mir bitte die Größe eurer DACGLSTM.bd-Datei und die Anzahl der Trades pro Monat mitteilen ?

 
Andrey Yankin #:

Bitte geben Sie die Größe Ihrer Datei „DACGLSTM.bd“ und die Anzahl der Trades pro Monat an .

Durch Ausprobieren und zahlreiche Versuche habe ich es nun geschafft, 800 MB an Kursverläufen anzusammeln. Ich habe verschiedene Zeiträume ausprobiert – 10 Tage, einen Monat, 3, 6 und 12 Monate... Nach dem letzten Durchlauf für das zweite Halbjahr 2024 hat sich die Dateigröße von etwa 200 auf 800 erhöht. Danach habe ich noch das zweite Halbjahr 2023 durchlaufen lassen, aber die Dateigröße hat sich nicht verändert. In einem halben Jahr kommen etwa 3.000–3.500 Transaktionen zusammen, ich verwende einen 15-Minuten-Zeitrahmen – alle Ticks. Bei kürzeren Zeitrahmen zieht sich der Vorgang einfach sehr lange hin, und ich bin noch nicht bereit, so lange zu warten. Übrigens habe ich den MaxReplayBuffer auf 1.000.000 erhöht, zuvor lag er bei 500.

 
Es ist unklar, wie man Study starten soll – im Einzeltest oder im Optimierungsmodus.
 
Vladimir Sanin #:
Study

Study einfach auf den Chart setzen. Nach der Installation liest das Programm die Datendateien ein und beginnt anschließend mit der Optimierung. In der oberen linken Ecke des Charts werden der Fortschritt und die Ergebnisse angezeigt.

Auf einem 15-Minuten-Zeitrahmen 3.000 Trades in einem halben Jahr... Das bedeutet, dass fast bei jeder zweiten Kerze ein Trade eröffnet wird – und zwar ausschließlich „Sell“. Sie können sich davon überzeugen, indem Sie entweder einen Einzeltest mit Visualisierung starten oder das System auf einem Demokonto installieren. Die Trades werden eröffnet und bei der nächsten Kerze wieder geschlossen.

 
Ich habe Study in einem Einzeltest gestartet. Iteration 100.000 (Standard), Batch 128. Grafikkarte: Intel UHD Graphics 730. Der Datumsbereich spielt hier wohl überhaupt keine Rolle? Kurz gesagt: Das Programm ist gestartet, der Prozessor läuft auf Hochtouren und die Grafikkarte heizt sich stark auf, aber der Fortschrittsbalken bewegt sich nicht, es steht nur „busy“ da. Ich weiß nicht, wie lange ich warten soll. Ich versuche es noch auf einem anderen leistungsstarken Rechner mit einer guten Grafikkarte...
 
Andrey Yankin #:

Study fügen Sie einfach in das Diagramm ein. Nach der Installation liest das Programm die Datendateien ein und beginnt anschließend mit der Optimierung. Im Diagramm werden in der oberen linken Ecke der Fortschritt und die Ergebnisse angezeigt.

Auf einem 15-Minuten-Zeitrahmen 3.000 Trades in einem halben Jahr... Das bedeutet, dass fast bei jeder zweiten Kerze ein Trade eröffnet wird – und zwar ausschließlich „Sell“. Sie können sich davon überzeugen, indem Sie entweder einen Einzeltest mit Visualisierung starten oder das System auf einem Demokonto installieren. Die Trades werden eröffnet und bei der nächsten Kerze wieder geschlossen.

Muss man es also doch auf den Chart anwenden und einen Test mit Optimierung starten? Es geht jetzt doch nicht um die Online-Version, oder? Es ist unklar, welchen Datumsbereich man für das „Study“ wählen soll – irgendeinen? Ich habe den Test mit Visualisierung gestartet und sehe, dass sich die Daten oben links ändern, aber das Diagramm bleibt unverändert. Die Prozentsätze in den Daten steigen langsam, gleichzeitig und gleichmäßig an, während das Diagramm selbst unverändert bleibt.


 
Vladimir Sanin #:
Lernen
Studie ausschließlich auf der Grundlage des Zeitplans.