Files
Axel HocksandClaude Opus 4.8 75d28827e8 Initial commit: Oil Trading Bot (MT5, WTI)
Headless FastAPI-Backend (server.py + core/engine.py) mit Mobile-PWA (web/),
Strategie-/Backtest-Suite und Doku. Secrets, DB, Logs und Laufzeit-State sind
via .gitignore ausgeschlossen; Config-Vorlage: oil_widget_config.ini.example.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 08:29:23 +02:00

47 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Exit-Simulation (Befund B: Initial-SL-Breite)
`backtest_exit.py` — misst, ob ein **weiterer Initial-SL** netto mehr bringt,
unter originalgetreuer Nachbildung des Exit-Ablaufs aus `core/trailing.py`.
## Mechanik (nachgebildet)
- Initial-SL = **X×ATR** (getestete Variable).
- **Teil-Exit 50 %** bei +1,5×ATR (einmalig).
- Phasen: **Init** (<0,3×ATR → Initial-SL halten) · **Trail** (SL = HW∓1,5×ATR,
Breakeven-Floor ab +0,6×ATR) · **Lock** (≥3,5×ATR → enger). Phasen-Ratsche.
- Pessimistische Intrabar-Annahme: **Gegenlauf vor Mitlauf** → überschätzt den
Nutzen eines weiten SL NICHT.
- PnL in **R** (ATR-Vielfache). Fester Init-TP (+3,5×ATR) weggelassen — der
Runner-Exit läuft praktisch über den Trailing-SL (konservativ, dominant).
> Schlüssel: Der weite Init-SL wirkt **nur in der Init-Phase**. Sobald Trailing
> greift, kappt HW∓1,5×ATR ihn ohnehin. Er schützt also genau die Trades, die
> **sofort** gegen den Einstieg laufen (die „Frühstopps").
## Ergebnis (M5+M30, ~28 Tage, 3585 Signale)
| Init-SL | Treffer | Ø-R | Summe-R | PF | Ø-Verlierer | Worst-R | Init-Stops |
|--------:|--------:|----:|--------:|---:|-----------:|--------:|-----------:|
| 1,2 | 37 % | 0,169 | 607 | 1,33 | 1,09 | 1,20 | 37 % |
| 1,5 | 39 % | 0,182 | 654 | 1,33 | 1,29 | 1,50 | 31 % |
| **2,0** | **43 %** | **0,223** | **798** | **1,39** | 1,56 | 2,00 | 25 % |
| 2,5 | 46 % | 0,255 | 914 | 1,43 | 1,78 | 2,50 | 21 % |
| 4,0 | 51 % | 0,308 | 1104 | 1,49 | 2,28 | 4,00 | 14 % |
**Befund:** Ø-R, PF, Treffer steigen monoton mit der SL-Breite, Frühstopps sinken.
**Aber:** der größte Einzelverlust wächst 1:1 (Worst-R = X) → Tail-/Drawdown-Risiko.
## Bewertung
- Das aktuelle Band **1,21,5×ATR ist zu eng** (deckt sich mit MAE ~1,7×ATR und
37 %/31 % Frühstopps). Wechsel auf **~2,0×ATR** ist der ausgewogene Punkt:
+32 % Ø-R, PF 1,33→1,39, Frühstopps 37→25 %, Worst-Case auf 2,0×ATR begrenzt.
- **Nicht** auf 34×ATR: Durchschnitte steigen weiter, aber die großen Einzel-
verluste treiben Drawdown/Ruin-Risiko; Stichprobe ist zudem ein Trend-Regime
(„länger halten" bevorzugt).
-**Money-Management:** ein weiterer SL = mehr Risiko/Trade in EUR bei gleicher
Lotgröße. Für konstantes EUR-Risiko die Lots ~proportional senken (1,5→2,0 ≈ 25 %).
## Aufruf
`python backtest_exit.py [n_bars]` (Default 8000 M5-Bars)