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:
Axel Hocks
2026-08-05 17:34:23 +02:00
co-authored by Claude Opus 5
parent d8a243612a
commit a6c43183e2
2 changed files with 210 additions and 1 deletions
+38 -1
View File
@@ -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,1960,201, PF 1,381,39, Worst 2,2×ATR): der **Band-Cap
[1,82,2]×ATR dominiert**, die Verankerung ist Rauschen. Nur **ungedeckelt**