DEV Community

Yones Alizai
Yones Alizai

Posted on • Edited on

QuantzAI: Wie ich eine Machine-Learning-Forschungsplattform für Marktdaten entwickle

QuantzAI ist ein privates Forschungs- und Softwareprojekt, das ich entwickelt habe, um Machine Learning, historische Marktdaten, zeitbasierte Validierung und Desktop-Anwendungsentwicklung in einer gemeinsamen Plattform zu verbinden.

Das Projekt dient nicht dazu, sichere Gewinne vorherzusagen. Im Mittelpunkt steht die technische Frage, wie sich eine nachvollziehbare und modular aufgebaute Forschungsumgebung für datenbasierte Marktanalysen entwickeln lässt.

Ausgangspunkt des Projekts

Bei vielen Machine-Learning-Projekten liegt der Fokus zunächst auf dem Training eines Modells. Bei zeitabhängigen Finanzdaten reicht das jedoch nicht aus.

Eine vollständige Forschungsplattform muss unter anderem berücksichtigen:

  • die Qualität und zeitliche Reihenfolge der Daten
  • eine reproduzierbare Datenaufbereitung
  • eine realistische Trennung von Trainings- und Testzeiträumen
  • die Bewertung von Kosten und Risiken
  • die Nachvollziehbarkeit von Modellentscheidungen
  • eine klare Trennung zwischen Forschung und tatsächlicher Ausführung

QuantzAI ist deshalb nicht als einzelnes Modell aufgebaut, sondern als System aus mehreren miteinander verbundenen Komponenten.

Vereinfachte Architektur

Historische Marktdaten



Datenaufbereitung und Feature Engineering



Machine-Learning-Modelle und zeitbasierte Validierung



Risiko- und Paper-Trading-Komponenten



Desktop-Oberfläche, Monitoring und Audit-Logging

Jede Stufe übernimmt eine klar definierte Aufgabe. Dadurch lassen sich einzelne Komponenten getrennt prüfen, erweitern oder austauschen.

Datenaufbereitung

Die Qualität eines Modells hängt stark von der Qualität der Eingangsdaten ab. Deshalb beginnt der Prozess mit einer strukturierten Aufbereitung historischer Marktdaten.

Dazu gehören unter anderem:

  • Prüfung auf fehlende oder fehlerhafte Werte
  • einheitliche zeitliche Sortierung
  • Berechnung technischer und statistischer Merkmale
  • Trennung von Eingabedaten und Zielvariablen
  • Speicherung aufbereiteter Datensätze für reproduzierbare Tests

Für die Verarbeitung verwende ich hauptsächlich Python, pandas und PyArrow.

Ein wichtiges Ziel besteht darin, Datenverarbeitung und Modelltraining klar voneinander zu trennen. Dadurch muss die gesamte Datenpipeline nicht bei jedem Experiment neu ausgeführt werden.

Machine Learning

Für die Modellierung verwende ich unter anderem LightGBM und scikit-learn.

LightGBM eignet sich für strukturierte tabellarische Daten und kann auch größere Merkmalsmengen effizient verarbeiten. scikit-learn nutze ich ergänzend für Datenvorbereitung, Vergleichsmodelle und Bewertungsverfahren.

Der Schwerpunkt liegt nicht darauf, möglichst viele Modelle gleichzeitig einzusetzen. Wichtiger sind für mich:

  • reproduzierbare Experimente
  • nachvollziehbare Konfigurationen
  • saubere zeitliche Trennung
  • Vergleich mit einfachen Baselines
  • Kontrolle möglicher Datenlecks
  • realistische Bewertung der Ergebnisse

Ein komplexes Modell ist nicht automatisch besser. Besonders bei Marktdaten können gute historische Ergebnisse entstehen, obwohl das Modell keine stabilen Zusammenhänge gelernt hat.

Zeitbasierte Validierung

Eine zufällige Aufteilung in Trainings- und Testdaten ist für Zeitreihen häufig ungeeignet. Dabei könnten zukünftige Informationen indirekt in das Training gelangen.

QuantzAI verwendet deshalb zeitlich geordnete Validierungsverfahren. Das Modell wird ausschließlich mit früheren Daten trainiert und anschließend auf einem späteren Zeitraum geprüft.

Vereinfacht sieht das so aus:

Training 1 → Validierung 1

Training 2 → Validierung 2

Training 3 → Validierung 3

Mit jedem Durchlauf verschiebt sich das betrachtete Zeitfenster weiter in die Zukunft.

Dieses Vorgehen ist aufwendiger als eine einmalige zufällige Aufteilung, bildet den späteren Einsatz aber wesentlich realistischer ab.

Kosten und realistische Bewertung

Ein theoretisches Modellergebnis ist nicht automatisch praktisch nutzbar.

Bei der Bewertung müssen auch Einflüsse berücksichtigt werden, die in vereinfachten Experimenten häufig fehlen. Dazu gehören beispielsweise Transaktionskosten, Spreads, Verzögerungen und unterschiedliche Marktbedingungen.

QuantzAI betrachtet solche Faktoren bereits während der Forschungs- und Testphase. Konkrete interne Parameter, Schwellenwerte und Strategieregeln sind jedoch nicht Bestandteil der öffentlichen Dokumentation.

Das Ziel besteht nicht darin, attraktive Einzelwerte zu präsentieren, sondern Ergebnisse möglichst kritisch und realistisch zu bewerten.

Risiko und Paper Trading

Neben der Modellprognose enthält QuantzAI Komponenten für Risikoprüfungen und simulierte Abläufe.

Das Paper Trading ermöglicht Tests ohne den Einsatz realen Kapitals. Dabei können Signale und Abläufe unter kontrollierten Bedingungen beobachtet werden.

Die Risikokomponenten prüfen unter anderem, ob definierte Bedingungen erfüllt sind, bevor ein simuliertes Signal weiterverarbeitet wird.

Auch hier gilt: Ein positives Ergebnis in historischen Daten oder einer Simulation ist kein Beweis für zukünftige Profitabilität.

Desktop-Oberfläche

QuantzAI besitzt eine grafische Desktop-Oberfläche auf Basis von PySide6.

Die Oberfläche führt verschiedene Bereiche des Projekts in einer zentralen Anwendung zusammen. Dazu gehören beispielsweise:

  • Daten- und Systemstatus
  • Modell- und Testabläufe
  • Auswertung von Experimenten
  • Paper-Trading-Komponenten
  • Protokollierung und Monitoring

Die Desktop-Anwendung erleichtert die Bedienung und macht technische Abläufe nachvollziehbarer, ohne dass jede Funktion direkt über die Kommandozeile gesteuert werden muss.

Nachvollziehbarkeit und Tests

Für Forschungssoftware ist es wichtig, Ergebnisse später reproduzieren zu können.

Deshalb gehören zu QuantzAI auch:

  • strukturierte Protokollierung
  • gespeicherte Konfigurationen
  • nachvollziehbare Verarbeitungsschritte
  • automatisierte Tests
  • klare Trennung einzelner Komponenten

Für Logging und Tests verwende ich unter anderem Loguru und pytest. SQLite dient innerhalb der Anwendung zur lokalen Speicherung ausgewählter Daten und Zustände.

Verwendete Technologien

Der öffentlich beschriebene Technologie-Stack umfasst:

  • Python 3.11
  • LightGBM
  • scikit-learn
  • pandas
  • PyArrow
  • PySide6
  • MetaTrader 5
  • SQLite
  • Loguru
  • pytest

Die Technologien erfüllen unterschiedliche Aufgaben innerhalb der Datenverarbeitung, Modellierung, Desktop-Oberfläche, Protokollierung und Qualitätssicherung.

Was ich aus dem Projekt gelernt habe

QuantzAI hat mir besonders gezeigt, dass ein Machine-Learning-Projekt wesentlich mehr umfasst als das Training eines Modells.

Zu den wichtigsten Erkenntnissen gehören:

Datenqualität ist entscheidend

Ein leistungsfähiger Algorithmus kann Fehler in der Datenbasis nicht ausgleichen. Datenprüfung und reproduzierbare Aufbereitung gehören deshalb zu den wichtigsten Teilen des Systems.

Zeitliche Trennung muss konsequent umgesetzt werden

Bei Zeitreihen können bereits kleine Fehler in der Validierung zu unrealistisch guten Ergebnissen führen.

Einfache Modelle bleiben wichtige Vergleichswerte

Komplexere Modelle sollten nicht nur untereinander, sondern auch mit einfachen Baselines verglichen werden.

Softwarearchitektur beeinflusst die Forschungsqualität

Eine modulare Struktur erleichtert nicht nur die Wartung. Sie ermöglicht auch kontrolliertere und besser reproduzierbare Experimente.

Gute historische Ergebnisse reichen nicht aus

Marktbedingungen verändern sich. Deshalb müssen Stabilität, Kosten, Risiken und unterschiedliche Zeiträume gemeinsam betrachtet werden.

Öffentlicher und privater Umfang

Der vollständige Quellcode von QuantzAI bleibt privat.

Nicht öffentlich bereitgestellt werden unter anderem:

  • interne Modelle und Modellparameter
  • konkrete Handelsstrategien
  • Ein- und Ausstiegsbedingungen
  • interne Konfigurationen
  • Zugangsdaten und Kontoinformationen
  • private Datensätze
  • interne Risiko- und Ausführungsregeln

Öffentlich verfügbar sind eine Projektbeschreibung, eine Demonstration und ein separates GitHub-Showcase-Repository.

Projektlinks

Fazit

QuantzAI verbindet Machine Learning, Softwarearchitektur, Datenverarbeitung, zeitbasierte Validierung und Desktop-Anwendungsentwicklung in einem gemeinsamen Forschungsprojekt.

Der größte technische Wert des Projekts liegt für mich nicht in einer einzelnen Modellprognose, sondern in der Entwicklung einer strukturierten Umgebung, in der Experimente reproduzierbar durchgeführt, kritisch bewertet und nachvollziehbar dokumentiert werden können.

QuantzAI ist ein privates Forschungs- und Entwicklungsprojekt. Die öffentliche Darstellung ist keine Finanzberatung und enthält kein Gewinnversprechen.

Top comments (0)