SL-Basis M5 vs M15 auf Level-Entries gemessen: Tail-Frage, keine Ertragsfrage
Strukturfund vorweg: exit_model.simulate nimmt EINEN atr fuer SL, TP, Trail und Breakeven - und alle Backtests uebergeben ATR_M5. Live kommt der SL aus ATR_M15 (Median 1,80x groesser). Praktisch jede Projekt-Messung modelliert damit 2,0xATR_M5, waehrend live ~4,0xATR_M5 gilt. Einzige bisherige Ausnahme war backtest_sl_width.py. Gemessen auf der NEUEN Level-Entry-Population (80k, 2 Halbjahre, nur die SL-Basis variiert): SQUEEZE: Ertrag ist ein Wash - alle Varianten innerhalb eines Standardfehlers, und die einzige beidhaelftig bessere Zelle (2,5) hat schlechtere Nachbarn. WELLE: der weite Live-SL ist in BEIDEN Haelften der beste, jede Verengung kostet. Der einzige robuste Unterschied ist das Tail-Risiko: Worst-Case -8,83 xATR (live, Squeeze H2) gegen -2,94 bei 2,5xATR_M5 = Faktor 3. Bei 3,5 Lots sind das ~-890 EUR gegen ~-300 EUR im schlechtesten Einzeltrade. Antwort auf die Frage: vertretbar ja, aber als Risiko- und nicht als Ertragsentscheidung. Saubere Umsetzung waere quellen-abhaengig (M5-ATR nur bei auto_squeeze) - strukturell begruendet, nicht data-mined. Nicht gebaut. Reproduziert NICHT backtest_sl_tf_mismatch.py (23.07.): dort Einstieg am Bar-Close, hier am Level - der Einstiegspreis hat den Befund gedreht. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
d8a243612a
commit
a6c43183e2
@@ -1178,7 +1178,44 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
|
||||
ist der Unterschied zwischen „Wash" und „Edge zerstört"** — ein ungegateter Level-TP
|
||||
ist etwas grundlegend anderes. Damit ist die User-Idee in allen DREI Teilen
|
||||
durchgemessen; der Live-Exit-Stack bleibt unverändert.
|
||||
- **S/R-verankerter SL = KEIN Edge (gemessen, `backtest_sl_method.py`):**
|
||||
- **⚠⚠ SL-BASIS M5 vs. M15 auf der NEUEN Level-Entry-Population (gemessen
|
||||
`backtest_sl_basis.py`, 2026-08-05, User-Frage „wäre M5-ATR vertretbar?") —
|
||||
DIFFERENZIERT, und dabei eine Mess-Betriebs-Lücke gefunden.**
|
||||
⚠ **Zuerst der strukturelle Fund:** `exit_model.simulate()` nimmt **EINEN** `atr`
|
||||
für SL, TP, Trail und Breakeven — und **alle Backtests übergeben ATR_M5**. Live
|
||||
kommt der SL dagegen aus **ATR_M15** (`mt5_utils.atr_value` mit `SL_TF`), im
|
||||
Median **1,80×** so groß. Praktisch jede Projekt-Messung modelliert damit einen
|
||||
SL von 2,0×ATR_M5, während live **~4,0×ATR_M5** gilt. Einzige bisherige Ausnahme:
|
||||
`backtest_sl_width.py` (04.08.), das genau das explizit verglichen hat.
|
||||
**Ergebnis auf Level-Entries (80k, 2 Halbjahre, nur die SL-Basis variiert):**
|
||||
| Population | Variante | H1 ØR / Worst | H2 ØR / Worst |
|
||||
|---|---|---|---|
|
||||
| **SQUEEZE** | LIVE (≈4,1×ATR_M5) | +0,455 / **−5,87** | +0,614 / **−8,83** |
|
||||
| | 2,5×ATR_M5 | +0,459 / −2,82 | +0,620 / −2,94 |
|
||||
| | 2,0×ATR_M5 | +0,452 / −2,32 | +0,610 / −2,44 |
|
||||
| **WELLE** | LIVE (≈3,9×ATR_M5) | **+0,371** / −4,97 | **+0,356** / −6,00 |
|
||||
| | 2,5×ATR_M5 | +0,362 / −2,79 | +0,343 / −2,72 |
|
||||
| | 3,0×ATR_M5 | +0,358 / −3,29 | +0,352 / −3,22 |
|
||||
✅ **Ertragsseitig ist es ein WASH auf der Squeeze-Population** — alle Varianten
|
||||
liegen innerhalb eines Standardfehlers (≈0,035 bei n≈800), und die einzige Zelle,
|
||||
die den Live-Stand in ØR beidhälftig schlägt (2,5), hat **schlechtere Nachbarn**
|
||||
→ nach der Nachbar-Regel Rauschen. **Auf der Wellen-Population ist der weite
|
||||
Live-SL dagegen in BEIDEN Hälften der beste** — jede Verengung kostet dort.
|
||||
⚠⚠ **Der EINZIGE robuste Unterschied ist das TAIL-RISIKO — und der ist groß und
|
||||
monoton:** Worst-Case **−8,83×ATR** (live, Squeeze H2) gegen **−2,94** bei
|
||||
2,5×ATR_M5, also **Faktor 3**. Bei 3,5 Lots und ATR_M5 0,33 sind das ~**−890 €**
|
||||
gegen ~−300 € im einzelnen schlechtesten Trade.
|
||||
✅ **Antwort: „vertretbar" ja — aber es ist keine Ertrags-, sondern eine
|
||||
Risiko-Entscheidung.** Für den Squeeze kostet die Verengung gemessen nichts und
|
||||
drittelt den Tail; für Wellen-/Signal-Trades kostet sie Ertrag in beiden Hälften.
|
||||
Eine saubere Umsetzung wäre **quellen-abhängig** (`_calc_sl_tp` nutzt M5-ATR nur
|
||||
bei `source="auto_squeeze"`) — strukturell begründet (Breakout- gegen
|
||||
Pullback-Einstieg haben verschiedene Nachlauf-Dynamik), nicht data-mined.
|
||||
**Nicht gebaut** — die Entscheidung über Tail-Risiko gehört dem User.
|
||||
⚠ Das reproduziert NICHT `backtest_sl_tf_mismatch.py` (23.07., dort war M5 in H2
|
||||
schlechter): dort wurde am Bar-Close eingestiegen, hier am Level. Der
|
||||
Einstiegspreis hat den Befund gedreht.
|
||||
- **S/R-verankerter SL = KEIN Edge (gemessen, `backtest_sl_method.py`):**
|
||||
Pivot+Band vs. „S/R ∓ ATR/0,10-Puffer" vs. fest 2,0×ATR — **gedeckelt alle
|
||||
identisch** (Ø-R 0,196–0,201, PF 1,38–1,39, Worst −2,2×ATR): der **Band-Cap
|
||||
[1,8–2,2]×ATR dominiert**, die Verankerung ist Rauschen. Nur **ungedeckelt**
|
||||
|
||||
Reference in New Issue
Block a user