Prognoza wahań EUR/USD w czterech krokach: jak dquant upraszcza ML dla traderów bez Data Science
Współczesne strategie algorytmiczne wymagają precyzyjnej oceny ryzyka w czasie rzeczywistym. Wahań to kluczowy czynnik decydujący o stop-lossach, rozmiarze pozycji i zarządzaniu kapitałem. Jednak tradycyjne podejścia (GARCH, EWMA) często nie adaptują się do zmian reżimów rynkowych, a rozwiązania oparte na maszynowym uczeniu pozostają niedostępne dla większości traderów ze względu na wysoki próg wejścia: inżynierię cech, walidację krzyżową czy doboru hiperparametrów. Biblioteka dquant rozwiązuje ten problem na poziomie API: wszystkie etapy przetwarzania danych, szkolenia i walidacji są zintegrowane w trzech wywołaniach metod — bez konieczności rozumienia wewnętrznej architektury XGBoost ani ręcznego tworzenia cech.
Jak działa VolClustXGB: od surowych danych OHLCV do prognozy
Model VolClustXGB to specjalizowany regresor XGBoost skoncentrowany na prognozowaniu wahań. Nie tylko przewiduje cenę czy kierunek ruchu — wydaje skalarną ocenę oczekiwanej wahań (np. metrykę podobną do ATR) na określony przedział czasowy w przyszłości. Pod maską ukryty jest następujący proces:
- Automatyczna generacja cech technicznych z danych OHLCV: TR (True Range), logarytmiczne zwroty, absolutne zwroty, gap ceny, stosunek ciała świecy do jej zakresu (body), proporcja cieni (shadow), pozycja zamknięcia względem zakresu (close_position), średnia ruchoma ATR za 14 okresów (roll_atr_14).
- Rozbicie szeregu czasowego na okna wejściowe (
input_bars=70) i wartości celowe (horizon=20). Zmienną celową są wahania kolejnych 20 barów, obliczane jako mediana lub średnia ATR w tym przedziale. - Automatyczny podział na zestawy szkoleniowe i walidacyjne z uwzględnieniem zależności czasowej (time-series aware split), co eliminuje leakage danych.
- Szkolenie z wczesnym zatrzymaniem (
early_stopping=True) na podstawie spadku błędu na walidacji (RMSE lub MAE), co zapobiega naduczeniu nawet przy dużej liczbie drzew (trees_count=200). - Wizualizacja procesu szkolenia: wykres zbieżności błędów na train/validation, umożliwiający ocenę stabilności modelu.
Wszystkie te etapy realizowane są w jednym wywołaniu .fit(), bez konieczności ręcznego zarządzania indeksami, skalowania czy przekształcania typów danych.
Praktyczna implementacja: kod, interpretacja, ograniczenia
Przykład referencyjny wykorzystuje godzinowe dane EUR/USD z Yahoo Finance. Kluczowe jest zrozumienie, że źródło danych determinuje jakość prognozy: yfinance ma limit 730 dni dla danych intraday, co może okazać się niewystarczające do nauki na różnych cyklach rynkowych (niska wahań vs. wzrosty spowodowane FOMC czy wydarzeniami geopolitycznymi). Alternatywą jest MetaTrader 5, który oferuje dostęp do dłuższych historii (do 1000+ dni) poprzez lokalny terminal i rachunek brokerski.
Kluczowe parametry wywołania .fit():
feature_list: lista cech, które zostaną automatycznie obliczone. Domyślnie używany jest zestaw optymalizowany dla par walutowych, ale można go rozbudować lub zastąpić.input_bars: długość okna wejściowego. Wartość 70 odpowiada około 3 dniom na godzinnej ramie czasowej — wystarczającemu czasowi do uchwycenia krótkoterminowych wzorców wahań.horizon: horyzont prognozy. Dla danych godzinowychhorizon=20oznacza 20-godzinną prognozę — przydatną dla strategii intraday zarządzania ryzykiem.show_results: wyświetlanie wykresu szkolenia. Polecamy korzystanie z tego w trybie development, aby diagnozować naduczenie.
Po szkoleniu prognoza wykonana jest wywołaniem .forecast() z tą samą liczbą barów, co input_bars. Rezultat to tablica prognozowanych wartości wahań, kompatybilna z każdym modułem zarządzania ryzykiem.
Co jest ważne
- Brak konieczności ręcznego tworzenia cech: biblioteka automatycznie generuje TR, zwroty, roll_atr_14 i inne metryki techniczne z danych OHLCV.
- Odporność na przerwy czasowe: wbudowany time-series split gwarantuje, że dane walidacyjne zawsze znajdują się w przyszłości względem danych szkoleniowych.
- Wczesne zatrzymanie domyślnie: szkolenie zatrzymywane jest przy wzroście błędu na walidacji, niezależnie od podanej liczby drzew (
trees_count). - Zapis i ponowne wykorzystanie: model zapisywany jest w postaci serializowanej przez
.save()i ładowany przez.load(), co pozwala na jego wykorzystanie w produkcji bez ponownego szkolenia. - Otwarta licencja MIT: kod dostępny do audytu, modyfikacji i integracji w systemy proprietarne bez żadnych ograniczeń prawnych.
Integracja w codziennym procesie tradera
Dla praktycznego zastosowania polecamy następujący pipeline:
- Codzienne aktualizowanie danych historycznych przez MT5 (lub yfinance, jeśli 730 dni wystarcza).
- Przeliczenie prognozy wahań na najbliższe 20 barów przed otwarciem sesji handlowej.
- Wykorzystanie prognozowanego wyniku do dynamicznej kalibracji stop-lossa: np.
stop_distance = forecasted_volatility * 1.5. - Zapis modelu po każdym udanym szkoleniu i porównanie jego wydajności z poprzednimi wersjami według metryki RMSE na out-of-sample testu.
Uwaga: dquant nie jest pełnoprawną platformą tradingową. To narzędzie do generowania sygnałów ryzyka. Jego wyniki powinny być integrowane z istniejącymi strategiami za pomocą standardowych interfejsów (pandas DataFrames, numpy arrays). Bezpośrednia integracja z MT5 możliwa jest przez mt5.order_send() z wykorzystaniem prognozowanego wyniku jako parametru wejściowego do obliczenia wielkości pozycji.
— Editorial Team
Brak komentarzy.