Diskussion zum Artikel "Neuronale Netze im Handel: Ein End-to-End-Modell zur multivariaten Zeitreihenprognose (Fazit)"

Neuer Artikel Neuronale Netze im Handel: Ein End-to-End-Modell zur multivariaten Zeitreihenprognose (Fazit) :

Wir freuen uns, Ihnen den letzten Teil unserer Serie über GinAR vorstellen zu dürfen – ein neuronales Netzwerk-Framework zur Zeitreihenprognose. In diesem Artikel analysieren wir die Ergebnisse der Modelltests mit neuen Daten und bewerten seine Robustheit unter realen Marktbedingungen.

Wir sind nun beim entscheidenden – und vielleicht interessantesten – Teil angelangt: der Bewertung der Leistungsfähigkeit des GinAR-Frameworks unter realen Marktbedingungen. Wir haben die Phasen des Architekturentwurfs, der Implementierung der Schlüsselkomponenten und der Entwicklung der Algorithmen für den Vorwärts- und Rückwärtsdurchlauf abgeschlossen. Alle Komponenten des Systems wurden sorgfältig entwickelt, getestet und an die spezifischen Eigenschaften finanzieller Zeitreihen angepasst. Nun ist es an der Zeit, all diese Elemente zusammenzuführen und sie, wie man so schön sagt, auf die Probe zu stellen – um zu sehen, wie effektiv GinAR praktische Analyse- und Prognoseaufgaben bewältigt.

Nach Abschluss des Offline-Trainings gingen wir zur zweiten Phase über – der Online-Feinabstimmung, die nun unter realitätsnahen Marktbedingungen durchgeführt wurde. Das Training wurde im Strategietester des MetaTrader 5 durchgeführt, wo das Modell den Markt im Streaming-Modus Schritt für Schritt und Kerze für Kerze analysierte. Dadurch konnte nicht nur die Robustheit des Modells gegenüber Rauschen, Marktverzerrungen und zufälligen Schwankungen getestet werden, sondern dieser Ansatz diente auch als wichtiges Anpassungsinstrument: Das Modell speicherte nicht einfach nur Informationen ab, sondern lernte tatsächlich, unter realen, unvorhersehbaren Bedingungen zu agieren. Dieser Ansatz erhöhte die Robustheit des Modells deutlich, reduzierte das Overfitting und verbesserte seine Generalisierungsfähigkeit.

Der letzte Schritt bestand darin, das Modell anhand völlig neuer Daten zu testen – Kursdaten von Januar bis März 2025. Alle während des Trainings verwendeten Parameter und internen Einstellungen wurden unverändert beibehalten. Somit ermöglichen die erzielten Ergebnisse eine objektive Bewertung nicht nur der Genauigkeit, sondern auch der praktischen Zuverlässigkeit des vorgeschlagenen Ansatzes.

Die Ergebnisse der Modelltests liefern ein objektives Bild der tatsächlichen Effektivität und Robustheit des Modells außerhalb der Trainingsstichprobe. Die Anfangseinlage von 100 US-Dollar stieg auf 1.087,74 US-Dollar an, was einer mehr als zehnfachen Kapitalvervielfachung entspricht – ein Ergebnis, das auf den ersten Blick beeindruckend wirkt. Bei genauerer Betrachtung zeigt sich jedoch ein deutliches Muster: Das Modell liefert zu Beginn des Testzeitraums sehr gute Ergebnisse, doch je weiter sich die Daten von der Trainingsstichprobe entfernen, desto mehr lässt seine Leistung nach.


Autor: Dmitriy Gizlyk

Neudefinition des Standardparameters NeuroNet.mqh 13794 177
Keine der Überladungen kann auf den Funktionsaufruf angewendet werden Math.mqh 66 20

bool Math::MathPow(const double&[], const double, double&[]) Math.mqh 2976 6

Irgendwie haben sie da wieder was mit dem Aufruf von Funktionen zusammengebastelt … Helft mir bitte, das zu verstehen …

wird nicht erkannt

double Math::MathPow(double a) – nimmt es beispielsweise nicht an, sondern bietet nur Implementierungen für Arrays an:

bool Math::MathPow(const double&[], const double, double&[])Math.mqh

Wozu die überhaupt gut sein sollen, ist mir völlig unklar?!(((

Andrew_7543 dem Aufruf von Funktionen angestellt … Helft mir bitte, das zu verstehen …

wird nicht angezeigt

double Math::MathPow(double a) – nehmen wir mal an, a – bietet aber nur Implementierungen für Arrays an:

bool Math::MathPow(const double&[], const double, double&[])Math.mqh

von denen man überhaupt nicht versteht, wozu sie gut sein sollen?!(((

Ersetze an den Stellen, an denen der Fehler auftritt, „MathPow“ durch„::MathPow“; dadurch wird auf die Funktionen des Compilers zugegriffen und nicht auf die in der Klasse deklarierten.

(danke) Na ja, was blieb mir denn sonst noch übrig – also habe ich diesen Weg eingeschlagen...
Dmitriy Gizlyk „MathPow“ durch„::MathPow“; dadurch können Sie auf die Funktionen des Compilers zugreifen und nicht auf die in der Klasse deklarierten Funktionen.
Außerdem treten dieselben Probleme im Modul „NeuroNet.mqh“ auf:

 call resolves to 'bool CNeuronPSBlock::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,float,ENUM_OPTIMIZATION,uint)' instead of 'bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 3513 25
   see declaration of function 'CNeuronPSBlock::Init' NeuroNet.mqh 48451 22
   see declaration of function 'CNeuronConvSAMOCL::Init' NeuroNet.mqh 11308 22
no one of the overloads can be applied to the function call NeuroNet.mqh 21835 18
could be one of 2 function(s) NeuroNet.mqh 21835 18
   bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 11308 22
   bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,float,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 11309 22
call resolves to '<NA>' instead of 'bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 21835 18
   see declaration of function 'CNeuronConvOCL::Init' NeuroNet.mqh 10973 22
no one of the overloads can be applied to the function call NeuroNet.mqh 21840 18
could be one of 2 function(s) NeuroNet.mqh 21840 18
   bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 11308 22
   bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,float,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 11309 22
call resolves to '<NA>' instead of 'bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 21840 18
   see declaration of function 'CNeuronConvOCL::Init' NeuroNet.mqh 10973 22
no one of the overloads can be applied to the function call NeuroNet.mqh 21846 18
could be one of 2 function(s) NeuroNet.mqh 21846 18
   bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 11308 22
   bool CNeuronConvSAMOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,float,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 11309 22
call resolves to '<NA>' instead of 'bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 21846 18
   see declaration of function 'CNeuronConvOCL::Init' NeuroNet.mqh 10973 22
no one of the overloads can be applied to the function call NeuroNet.mqh 30722 16
could be one of 2 function(s) NeuroNet.mqh 30722 16
   bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 10973 22
   bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 10974 22
call resolves to '<NA>' instead of 'bool CNeuronProofOCL::Init(uint,uint,COpenCLMy*,int,int,int,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 30722 16
   see declaration of function 'CNeuronProofOCL::Init' NeuroNet.mqh 10856 22
no one of the overloads can be applied to the function call NeuroNet.mqh 30730 16
could be one of 2 function(s) NeuroNet.mqh 30730 16
   bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 10973 22
   bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 10974 22
call resolves to '<NA>' instead of 'bool CNeuronProofOCL::Init(uint,uint,COpenCLMy*,int,int,int,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 30730 16
   see declaration of function 'CNeuronProofOCL::Init' NeuroNet.mqh 10856 22
no one of the overloads can be applied to the function call NeuroNet.mqh 30755 16
could be one of 2 function(s) NeuroNet.mqh 30755 16
   bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 10973 22
   bool CNeuronConvOCL::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 10974 22
call resolves to '<NA>' instead of 'bool CNeuronProofOCL::Init(uint,uint,COpenCLMy*,int,int,int,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 30755 16
   see declaration of function 'CNeuronProofOCL::Init' NeuroNet.mqh 10856 22
wrong parameters count, 12 passed, but 15 requires NeuroNet.mqh 64222 22
   bool CNeuronTimeMoEAttention::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint) NeuroNet.mqh 63529 22
call resolves to 'bool CNeuronTimeMoEAttention::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint)' instead of 'bool CNeuronCrossDMHAttention::Init(uint,uint,COpenCLMy*,uint,uint,uint,uint,uint,uint,uint,ENUM_OPTIMIZATION,uint)' due to new rules of method hiding NeuroNet.mqh 64222 22
   see declaration of function 'CNeuronTimeMoEAttention::Init' NeuroNet.mqh 63529 22
   see declaration of function 'CNeuronCrossDMHAttention::Init' NeuroNet.mqh 50759 22
7 errors, 8 warnings 7 8
Andrew_7543 #:
Außerdem treten dieselben Probleme im Modul „NeuroNet.mqh“ auf

Die korrigierte Bibliothek im Artikel „Neuralnetze im Trading: Zerlegung statt Skalierung – Erstellung von Modulen“ – Artikel zu MQL5

Нейросети в трейдинге: Декомпозиция вместо масштабирования — Построение модулей
Нейросети в трейдинге: Декомпозиция вместо масштабирования — Построение модулей
  • 2025.08.08
  • www.mql5.com
В этой статье продолжаем практическое знакомство с SSCNN — архитектурным решением нового поколения, способным работать с фрагментированными временными рядами. Вместо слепого масштабирования — разумная модульность, внимание к деталям и точечная нормализация. Мы шаг за шагом создаём вычислительные блоки в среде MQL5 и закладываем основу для надёжного прогнозного анализа.
Danke!) Alles läuft wieder wie vor dem Terminal-Update... und ein großes Lob für den Artikel!!!!
@Dmitriy Gizlyk, hallo... mir ist nicht ganz klar, was beim Online-Training genau passiert: Welchen Zeitraum habt ihr gewählt und welche Einstellungen habt ihr im Strategietester verwendet, um die Bedingungen im Echtbetrieb nachzuahmen?