Diskussion zum Artikel "Pipelines in MQL5"

 

Neuer Artikel Pipelines in MQL5 :

In diesem Beitrag befassen wir uns mit einem wichtigen Schritt der Datenaufbereitung für das maschinelle Lernen, der zunehmend an Bedeutung gewinnt. Pipelines für die Datenvorverarbeitung. Dabei handelt es sich im Wesentlichen um eine rationalisierte Abfolge von Datenumwandlungsschritten, mit denen Rohdaten aufbereitet werden, bevor sie in ein Modell eingespeist werden. So uninteressant dies für den Laien auch erscheinen mag, diese „Datenstandardisierung“ spart nicht nur Trainingszeit und Ausführungskosten, sondern trägt auch zu einer besseren Generalisierung bei. In diesem Artikel konzentrieren wir uns auf einige SCIKIT-LEARN Vorverarbeitungsfunktionen, und während wir den MQL5-Assistenten nicht ausnutzen, werden wir in späteren Artikeln darauf zurückkommen.

Die SCIKIT-LEARN-Bibliothek von Python hat sich in jeder Hinsicht zum Industriestandard für die Vorverarbeitung von maschinellem Lernen entwickelt. Mit minimalem Codeaufwand können Entwickler einen Standard-Scaler zur Zentrierung von Merkmalen, einen Min-Max-Scaler zur Komprimierung von Merkmalen auf einen festen Bereich, einen Robust-Scaler zur Reduzierung von Ausreißern oder einen One-Hot-Encoder zur Erweiterung von Merkmalen in binäre Darstellungen anwenden. Darüber hinaus ermöglicht die Pipeline-Klasse von SCIKIT-LEARN eine nahtlose Verkettung dieser Schritte, was bedeutet, dass alle Datensätze, die an das Modell übergeben werden, die gleichen Transformationssequenzen aufweisen. Dieser modulare Plug-and-Play-Mechanismus hat zu einer raschen Einführung des maschinellen Lernens in einer Vielzahl von Branchen geführt.

Im Gegensatz dazu werden MQL5-Entwickler von einer anderen Realität eingeschüchtert. MQL5 ist zwar relativ effizient im Umgang mit Handelsdaten, bietet aber noch keine mit SCIKIT-LEARN vergleichbaren Vorverarbeitungsmethoden. Für jede Umwandlung – ob Skalierung, Kodierung oder sogar Imputation fehlender Werte – muss die Kodierung manuell und oft auf fragmentierte Weise vorgenommen werden. Dies erhöht nicht nur die Wahrscheinlichkeit, dass Fehler auftreten, sondern erschwert auch die Reproduzierbarkeit von Testergebnissen oder die Konsistenz zwischen Trainings- und Testdaten.

Die Lösung könnte meiner Meinung nach in der Entwicklung einer Vorverarbeitungs-Pipeline-Klasse in MQL5 liegen, die diese SCIKIT-LEARN-Philosophie nachahmt. Wenn wir wiederverwendbare Module wie CStandardScaler, CMinMaxScaler, CRobustScaler und COneHotEncoder implementieren können, können wir eine Vorverarbeitungspipeline in einem Container verketten. Diese Struktur würde sicherstellen, dass die rohen Finanzzeitreihendaten systematisch aufbereitet werden, bevor sie in Deep-Learning-Modelle eingehen. Dies gilt unabhängig davon, ob die Modelle nativ in MQL5 kodiert oder über ONNX importiert werden. Dadurch können MQL5-Entwickler einen vertrauten Python-Workflow mit MQL5 übernehmen, was sauberere Experimente, schnellere Entwicklung und vermutlich zuverlässigere KI-Systeme ermöglicht.


Autor: Stephen Njuki