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.
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 bedeutethorizon=20eine 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.
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
Noch keine Kommentare.