Dyferencjalny Symulator do Bezpośredniej Optymalizacji Współczynnika Sharpe'a w Handlu Algorytmicznym
W handlu algorytmicznym opartym na ML tradycyjnie modele uczą się przewidywać zwrot lub kierunek ceny za pomocą MSE lub entropii krzyżowej, a ocena odbywa się według wskaźnika Sharpe'a z uwzględnieniem kosztów. To tworzy lukę: dokładne prognozy mikro-ruchy nie gwarantują opłacalności strategii poza próbką. DiffQuant eliminuje proxy-cele, budując jednolity dyferencjalny graf od cech rynkowych do końcowego PnL i Sharpe'a. Test walk-forward pokazuje Sharpe +1.73 i zwrot +8.22% po prowizjach.
Problemy Klasycznego Schematu z Proxy-Celami
Standardowy potok dzieli przewidywanie i handel:
- Model minimalizuje MSE na return_{t+1}.
- Pozycja jest formowana heurystykami.
- Backtest stosuje prowizje post factum.
To prowadzi do:
- Niezgodności przestrzeni błędów: dokładność na szumowych fluktuacjach prowokuje hiperaktywność i spalanie na kosztach.
- Brak gradientu po rozmiarze pozycji: model nie uczy się agresywności wejścia.
- Ignorowanie kosztów w uczeniu: poślizgi i prowizje poza grafem obliczeń.
DiffQuant integruje pozycję, symulację PnL i metryki w PyTorch-graf, przepuszczając gradient bezpośrednio.
Dyferencjalny Symulator Handlowy
Symulator oblicza PnL jako operacje tensorowe dla horyzontu t ∈ [0, H-1]:
$$r_t = \frac{c_t - c_{t-1}}{|c_{t-1}| + \varepsilon}$$
$$gross_t = p_{t-1} \cdot r_t$$
$$cost_t = smooth\_abs(\Delta p_t) \cdot (commission + slippage)$$
$$pnl_t = gross_t - cost_t$$
Kluczowy moment — smooth_abs dla dyferencjalności:
$$smooth\_abs(x) = \sqrt{x^2 + \varepsilon}, \quad \varepsilon = 10^{-6}$$
To zapewnia C^∞-gładkość w otoczeniu zera, gdzie polityka zaczyna w trybie płaskim, unikając subgradientowych przerw.
Gradient od -Sharpe przechodzi przez PnL → pozycje → model, ucząc uwzględniać koszty end-to-end.
Architektura Polityki na iTransformer
Bazą jest iTransformer (ICLR 2024): odwrócony transformator, gdzie tokeny to kanały cech, nie kroki czasowe. Dla danych finansowych to przechwytuje zależności międzykanalowe (cena-wolumen-zmienność).
Konfiguracja: d_model=32, n_layers=4, n_heads=2, d_ff=64 (52k parametrów).
Pełny graf:
- Normalizacja z-score po oknie kontekstowym (B, ctx, F) bez look-ahead.
- iTransformerEncoder.
- Konkatenacja extras: [prev_pos, prev_delta, t/H, (H-t)/H].
- PolicyHead: direction_head × gate_head.
Pozycja: $$p_t = \tanh\left(\frac{d_t}{\tau_{dir}}\right) \times \sigma\left(\frac{g_t}{\tau_{gate}}\right)$$
Sygnał bramki maskuje niepewne kierunki (analog action masking). Inicjalizacja gate_bias=-1.0 stabilizuje start w near-flat.
Przewijający rollout:
for t in range(H):
window = full_seq[:, t : t + ctx, :]
window_norm = normalize_context(window)
extras = [prev_pos, prev_delta, t/H, (H-t)/H]
pos_t = model(window_norm, extras)
positions_list.append(pos_t)
positions = cat(positions_list)
step_pnl = simulator.simulate(closes, positions)
loss = hybrid_loss(step_pnl, positions)
loss.backward()
Hybrydowy Loss Przeciw Patologiom
Czysty Sharpe prowadzi do churning, flat collapse, long bias, terminal exposure, drawdown blindness. Hybrydowy adresuje je:
$$\mathcal{L} = \lambda_1 \cdot (-Sharpe) + \lambda_2 \cdot turnover + \lambda_3 \cdot drawdown_{log} + \lambda_4 \cdot |p_H| + \lambda_5 \cdot (\hat{f} - f^*)^2 + \lambda_6 \cdot |\bar{p}|$$
- $\lambda_2$: kara za obrót przeciw churning.
- $\lambda_3$: log-spadek dla stabilności.
- $\lambda_4$: zerowa ekspozycja na końcu horyzontu.
- $\lambda_5$: celowa część flat przez sigmoid.
- $\lambda_6$: anty-bias, krytyczny na byczych danych.
$$drawdown_{log} = mean(cummax(cumsum(log(1+pnl))) - cumsum(log(1+pnl)))$$
Mirror Augmentation dla Symetrii
Train (2024–2025) — byczy BTC. Bez środków model → long-only. Mirror augmentation odwraca ceny i cechy na części batchy, tworząc symetryczne pary.
Wynik: short_fraction 17.3% (test), 20.9% (backtest).
Eksperyment: Dane i Splity
| Parametr | Wartość |
|----------|----------|
| Instrument | BTCUSDT Binance Futures |
| Rozdzielczość | 30-min bary (agregacja z 1-min) |
| Okres | 2021–2025 |
Splity:
- Train: styczeń 2024 – marzec 2025.
- Test: lipiec–wrzesień 2025.
- Backtest: październik–grudzień 2025.
- Walk-forward OOS.
Co Ważne
- Jednolity dyferencjalny graf od cech do Sharpe'a rozwiązuje problemy proxy-celi, w tym koszty i rozmiar pozycji.
- iTransformer + direction×gate zapewnia międzykanalną uwagę i pewny handel.
- Hybrydowy loss z anty-bias zapobiega patologiom jak churning i long-only.
- Mirror augmentation daje symetryczną politykę na asymetrycznych danych.
- Walk-forward Sharpe +1.73 po prowizjach na BTC OOS.
— Editorial Team
Brak komentarzy.