Backtesting
Kurzzusammenfassung
- Backtesting liefert den belastbaren Robustheitsnachweis vor jeder Promotion.
- Die Methodik kombiniert Walk-forward, Regime-/Stress-Tests und Leakage-Guards.
- Alle Ergebnisse werden als reproduzierbare Artefakte in MLflow, Prefect und OpenMetadata dokumentiert.
- Pass/Fail wird mit klaren Schwellen entschieden und in
Gateway_Acceptanceüberführt.
Ziel
Business-Nutzen: Reduziert Fehl-Promotions und verbessert die Vorhersagestabilität durch eine standardisierte, auditierbare Validierung.
Verbindliche Methodik
1) Walk-forward Setup (Pflicht)
| Element | Standard |
|---|---|
| Fenster-Logik | Rolling oder Expanding Window, vorab fixiert |
| Trainingsfenster | Mindestens 3 Jahre Historie oder 5 Marktzyklen des Zieluniversums |
| Testfenster | 1-3 Monate je Fold (abhängig von Rebalancing-Frequenz) |
| Purge/Embargo | Purged Split mit Embargo für überlappende Labels |
| Metriken je Fold | Return, Volatilität, Max Drawdown, Turnover, Hit-Rate |
Mindestanforderung: Kein Fold darf die Hard-Guardrails verletzen (siehe Pass/Fail).
2) Regime- und Stress-Tests (Pflicht)
- Regime-Segmente: mindestens
Bull,Bear,High-Vol,Low-Liquidity. - Stress-Szenarien:
- Spread- und Slippage-Schock,
- Liquiditätsabschlag (ADV-/Participation-Limit),
- Datenlatenz bzw. partieller Feature-Ausfall,
- Korrelationssprung zwischen Hauptrisikofaktoren.
- Bewertung: Strategie muss unter Stress innerhalb definierter Drawdown- und Turnover-Limits bleiben.
3) Leakage Guards (Pflicht vor jeder Auswertung)
- Punkt-in-Zeit-Konsistenz (nur zum Entscheidungszeitpunkt verfügbare Features).
- Strict Train/Test Isolation inkl. Feature-Engineering und Normalisierung.
- Label-Lag und Handelskalender-Lag dokumentiert.
- Verbot von future joins / rückwirkend korrigierten Stammdaten ohne PIT-Versionierung.
- Automatischer Guard-Check im Orchestrierungsflow (Prefect Task) mit hartem Abbruch bei Verstoss.
Pass/Fail-Kriterien (Backtesting-Gate)
| Kategorie | Pass-Schwelle | Fail-Auslöser |
|---|---|---|
| Performance | Information Ratio out-of-sample >= 0.5 und > Benchmark | IR < 0.3 oder unter Benchmark |
| Stabilität | >= 70 % der Folds mit positivem Netto-Alpha | < 60 % positive Folds |
| Risiko | Max Drawdown <= definiertes Strategielimit | Drawdown-Limit verletzt |
| Umsetzbarkeit | Turnover, Slippage, Kosten im Budget | Kostenbudget überschritten |
| Leakage | 0 kritische Findings | 1 kritischer Leakage-Befund |
Bei Grenzfällen zwischen Pass und Fail ist nur hold zulässig; promote erfordert vollständigen Pass.
Evidenz- und Tool-Artefakte
| Tool | Pflicht-Artefakte |
|---|---|
| MLflow | run_id, Parameter je Fold, OOS-Metriken, Stress-Reports, Model Card Link |
| Prefect | flow_run_id, Guard-Check-Status, Retry/Failure-Historie |
| OpenMetadata | Lineage auf Trainings-/Test-Datensätze, DQ-Status, Owner |
BPMN-Kontext
⋮⋮⋮
- IDs:
CallActivity_BacktestValidation - Input-Bezug: Kandidatenmodell, historische PIT-Daten und Validierungsprotokoll.
- Entscheidungsbezug: Ergebnis speist
Gateway_Acceptance; zentrale Gate-Logik siehe /docs/research-risk/acceptance-criteria. - Output-Bezug: Backtest-Report mit Pass/Fail/hold-Einstufung und Nacharbeitsauflagen.