DiffQuant: Differenzierbarer Handels-Simulator für direkte Sharpe-Optimierung
In der ML-basierten algorithmischen Handelswelt werden Modelle traditionell mit MSE oder Kreuzentropie auf Rendite- oder Preisrichtungsprognosen trainiert, während die Performance über den Sharpe-Ratio unter Berücksichtigung von Kosten bewertet wird. Das erzeugt einen Bruch: Genaue Mikrobewegungsprognosen garantieren keine Out-of-Sample-Rentabilität. DiffQuant eliminiert Proxy-Ziele, indem es einen einzigen differenzierbaren Graphen von Marktdaten bis zum finalen PnL und Sharpe aufbaut. Walk-Forward-Tests liefern einen Sharpe von +1,73 und +8,22 % Rendite nach Kommissionen.
Herausforderungen bei traditionellen Proxy-Zielen
Der Standard-Ablauf trennt Prognose von Handel:
- Modell minimiert MSE auf return_{t+1}.
- Positionsgröße per Heuristik.
- Backtester wendet Kommissionen nachträglich an.
Das führt zu:
- Fehlende Übereinstimmung der Fehler-Räume: Genauigkeit bei verrauschten Schwankungen verursacht Überhandeln und Verluste durch Kosten.
- Kein Gradient für Positionsgröße: Modell lernt keine Einstiegsaggressivität.
- Ignorieren von Kosten im Training: Slippage und Kommissionen liegen außerhalb des Rechungsgraphen.
DiffQuant integriert Positionsgröße, PnL-Simulation und Metriken in einen PyTorch-Graphen und leitet Gradienten end-to-end weiter.
Differenzierbarer Handels-Simulator
Der Simulator berechnet PnL als Tensor-Operationen über den Horizont 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$$
Schlüsselinnovation – smooth_abs für Differenzierbarkeit:
$$smooth\_abs(x) = \sqrt{x^2 + \varepsilon}, \quad \varepsilon = 10^{-6}$$
Das gewährleistet C^∞-Glatheit nahe Null, wo die Policy flach startet und Subgradienten-Unstetigkeiten vermeidet.
Gradienten von -Sharpe fließen durch PnL → Positionen → Modell und trainieren es, Kosten end-to-end zu berücksichtigen.
Policy-Architektur mit iTransformer
Rückgrat ist iTransformer (ICLR 2024): Ein invertiertes Transformer, bei dem Tokens Feature-Kanäle statt Zeit-Schritte sind. Für Finanzdaten erfasst das Querkanal-Abhängigkeiten (Preis-Volumen-Volatilität).
Konfig: d_model=32, n_layers=4, n_heads=2, d_ff=64 (52k Parameter).
Vollständiger Graph:
- Z-Score-Normalisierung über Kontextfenster (B, ctx, F) ohne Look-Ahead.
- iTransformerEncoder.
- Concat Extras: [prev_pos, prev_delta, t/H, (H-t)/H].
- PolicyHead: direction_head × gate_head.
Position: $$p_t = \tanh\left(\frac{d_t}{\tau_{dir}}\right) \times \sigma\left(\frac{g_t}{\tau_{gate}}\right)$$
Gate-Signal maskiert unsichere Richtungen (ähnlich Action-Masking). gate_bias=-1.0-Initialisierung stabilisiert flache Starts.
Rolling 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()
Hybride Loss-Funktion gegen Pathologien
Reiner Sharpe führt zu Churning, flachem Kollaps, Long-Bias, Terminal-Exposure, Drawdown-Blindheit. Hybrid behebt das:
$$\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}|$$
- λ₂: Turnover-Strafe gegen Churning.
- λ₃: Log-Drawdown für Stabilität.
- λ₄: Null-Exposure am Horizontende.
- λ₅: Ziel-Flachanteil via Sigmoid.
- λ₆: Anti-Bias, entscheidend in Bullenmärkten.
$$drawdown_{log} = mean(cummax(cumsum(log(1+pnl))) - cumsum(log(1+pnl)))$$
Mirror-Augmentation für Symmetrie
Trainingsdaten (2024–2025) sind bullischer BTC. Ohne Eingriff wird das Modell long-only. Mirror-Augmentation flippt Preise und Features in Batch-Subsets und erzeugt symmetrische Paare.
Ergebnis: short_fraction 17,3 % (Test), 20,9 % (Backtest).
Experimente: Daten und Splits
| Parameter | Wert |
|-----------|------|
| Instrument | BTCUSDT Binance Futures |
| Auflösung | 30-Min-Bars (aggregiert aus 1-Min) |
| Periode | 2021–2025 |
Splits:
- Train: Jan 2024 – Mrz 2025.
- Test: Jul–Sep 2025.
- Backtest: Okt–Dez 2025.
- Walk-Forward OOS.
Wichtige Erkenntnisse
- Einziger differenzierbarer Graph von Features zu Sharpe löst Proxy-Probleme inkl. Kosten und Positionsgröße.
- iTransformer + direction×gate ermöglicht Querkanal-Attention und selbstbewussten Handel.
- Hybride Loss mit Anti-Bias verhindert Pathologien wie Churning und Long-Only.
- Mirror-Augmentation liefert symmetrische Policy auf asymmetrischen Daten.
- Walk-Forward-Sharpe +1,73 nach Kommissionen auf BTC OOS.
— Editorial Team
Noch keine Kommentare.