Zurück zur Startseite

EURUSD-Volatilitätsprognose in 4 Codezeilen

Der Artikel erklärt, wie die dquant-Bibliothek Volatilitätsprognosen mit XGBoost für Trader ohne tiefgehende Machine-Learning-Kenntnisse vereinfacht. Beschreibt die VolClustXGB-Architektur, automatische Feature-Generierung, Trainings-Parameter und praktische Integration in Trading-Strategien.

ML für Trading ohne Machine-Learning-Kenntnisse
Advertisement 728x90

EUR/USD-Volatilitätsprognose in 4 Zeilen: Wie dquant ML für Trader ohne Data Science vereinfacht

Moderne algorithmische Strategien erfordern eine präzise, Echtzeit-Risikobewertung. Volatilität ist der entscheidende Treiber für Stop-Orders, Positionsgrößenbestimmung und Kapitalmanagement. Doch traditionelle Ansätze wie GARCH und EWMA passen sich oft nicht an wechselnde Marktregime an, während ML-Lösungen für die meisten Trader aufgrund hoher Eintrittsbarrieren – Feature-Engineering, Cross-Validation und Hyperparameter-Tuning – unerreichbar bleiben. Die dquant-Bibliothek nimmt diese Herausforderung auf API-Ebene in Angriff: Sie kapselt sämtliche Vorverarbeitung, Training und Validierung in nur drei Methodenaufrufen und eliminiert damit die Notwendigkeit, die interne Architektur von XGBoost zu verstehen oder Features manuell zu erstellen.

Wie VolClustXGB funktioniert: Von Roh-OHLCV-Daten zur Prognose

Das VolClustXGB-Modell ist ein spezieller XGBoost-Regressor, der gezielt für die Volatilitätsprognose entwickelt wurde. Es sagt nicht nur Kurs oder Richtung vorher – es liefert einen skalaren Schätzwert der erwarteten Volatilität (ähnlich einem ATR-ähnlichen Indikator) für eine festgelegte Anzahl von Bars in der Zukunft. Im Hintergrund implementiert es einen schlanken Pipeline-Prozess:

  • Automatische Generierung technischer Features aus OHLCV-Daten: True Range, logarithmische Renditen, absolute Renditen, Kurslücken, Body-to-Range-Verhältnis, Shadow-to-Body-Verhältnis, Close-Position im Verhältnis zum Range sowie ein 14-periodiger rollierender ATR (roll_atr_14).
  • Aufteilung der Zeitreihe in Input-Fenster (input_bars=70) und Zielwerte (horizon=20). Das Zielvariable ist die Volatilität der nächsten 20 Bars, berechnet als Median oder Mittelwert des ATR über diesen Horizont.
  • Automatisierte zeitreihenbewusste Aufteilung von Trainings- und Validierungsdatensätzen, um Datenlecks zu vermeiden.
  • Frühstopp während des Trainings (early_stopping=True) basierend auf sinkenden Validierungsfehlern (RMSE oder MAE), was Überanpassung auch bei einer großen Anzahl von Bäumen (trees_count=200) verhindert.
  • Visualisierung des Trainingsprozesses: Ein Konvergenzdiagramm zeigt Fehlerentwicklungen sowohl im Trainings- als auch im Validierungsset, sodass Sie die Stabilität des Modells beurteilen können.

All diese Schritte werden in einem einzigen .fit()-Aufruf ausgeführt, ohne manuelle Handhabung von Indizes, Skalierung oder Datentypkonvertierungen.

Google AdInline article slot

Praktische Umsetzung: Code, Interpretation und Einschränkungen

Das Referenzbeispiel verwendet stündliche EUR/USD-Daten von Yahoo Finance. Es ist wichtig zu erkennen, dass die Datenquelle direkte Auswirkungen auf die Prognosequalität hat: yfinance begrenzt Intraday-Daten auf 730 Tage, was für das Training auf unterschiedliche Marktkreisläufe – von Niedrigvolatilitätsphasen bis hin zu Sprüngen durch FOMC-Sitzungen oder geopolitische Ereignisse – möglicherweise nicht ausreicht. Eine Alternative ist MetaTrader 5, das über das lokale Terminal und das Broker-Konto Zugang zu längeren Historien (bis zu 1.000+ Tage) bietet.

Wichtige Parameter für den .fit()-Aufruf sind:

  • feature_list: eine Liste von Features, die automatisch berechnet werden. Standardmäßig verwendet sie einen für Währungspaare optimierten Satz, doch Sie können ihn erweitern oder ersetzen.
  • input_bars: die Länge des Input-Fensters. Ein Wert von 70 entspricht ungefähr drei Tagen im Stunden-Intervall – genug, um kurzfristige Volatilitätsmuster zu erfassen.
  • horizon: der Prognosehorizont. Für stündliche Daten bedeutet horizon=20 eine 20-Stunden-Prognose, nützlich für intraday-Risikomanagementstrategien.
  • show_results: zeigt das Trainingsdiagramm an. Empfohlen für Entwicklungsarbeiten, um Überanpassung zu diagnostizieren.

Nach dem Training wird die Prognose mit einem .forecast()-Aufruf generiert, wobei dieselbe Anzahl von Bars wie bei input_bars verwendet wird. Das Ergebnis ist ein Array prognostizierter Volatilitätswerte, kompatibel mit jedem Risikomanagementmodul.

Google AdInline article slot

Schlüsselerkenntnisse

  • Keine manuelle Feature-Erstellung nötig: Die Bibliothek generiert TR, Renditen, roll_atr_14 und andere technische Metriken automatisch aus OHLCV.
  • Zeitreihenrobustheit: Die integrierte Zeitreihenaufteilung stellt sicher, dass Validierungsdaten immer in der Zukunft relativ zu den Trainingsdaten liegen.
  • Frühstopp standardmäßig: Das Training stoppt, wenn die Validierungsfehler wieder steigen, unabhängig von der eingestellten trees_count.
  • Persistenz und Wiederverwendbarkeit: Das Modell kann in serialisierter Form mit .save() gespeichert und mit .load() geladen werden, was den produktiven Einsatz ohne erneutes Training ermöglicht.
  • Offene MIT-Lizenz: Der Code steht zur Audits, Modifikation und Integration in proprietäre Systeme ohne rechtliche Beschränkungen zur Verfügung.

Integration in den Arbeitsablauf eines Traders

Für die praktische Anwendung empfehlen wir folgende Pipeline:

  • Tägliche Aktualisierung historischer Daten via MT5 (oder yfinance, wenn 730 Tage ausreichen).
  • Neuberechnung der Volatilitätsprognose für die nächsten 20 Bars vor Beginn jeder Handelssitzung.
  • Nutzung des prognostizierten Wertes zur dynamischen Kalibrierung von Stop-Losses – etwa stop_distance = prognostizierte_Volatilität * 1,5.
  • Speicherung des Modells nach jedem erfolgreichen Training und Vergleich seiner Leistung mit früheren Versionen mittels RMSE auf Out-of-Sample-Testdaten.

Beachten Sie, dass dquant keine vollständige Handelsplattform ist. Es ist ein Werkzeug zur Erzeugung von Risikosignalen. Seine Ausgaben sollten über Standard-Schnittstellen (pandas DataFrames, numpy Arrays) in bestehende Strategien integriert werden. Eine direkte Integration mit MT5 ist über mt5.order_send() möglich, wobei der prognostizierte Wert als Eingabeparameter für die Volumenberechnung dient.

— Editorial Team

Google AdInline article slot
Advertisement 728x90

Weiterlesen