Frueh-Kappen kontrafaktisch geprueft — Hypothese widerlegt, Leckage liegt woanders

analyze_manual_close.py simuliert fuer jeden real geschlossenen Trade ab dem
echten Einstieg den kanonischen Exit und vergleicht gegen das tatsaechliche
Ergebnis. EUR-Faktor 87,6 EUR/$/Lot, robust aus 251 Trades geschaetzt (trader.pnl
enthaelt Swap, direkte Rueckrechnung waere verfaelscht).

  Schliessgrund        n     IST   Bot-Exit      Delta
  manual   Gewinn    143   +1428      +962       -467
  sr_close Gewinn    106   +1591     +1060       -530
  emergency Verlust   98   -1750     -1235       +515
  sl        Verlust   69   -1926      -697      +1229

Die Frueh-Kappen-Hypothese ist WIDERLEGT: das diskretionaere Schliessen kostet
nichts, es bringt +467 EUR MEHR als der kanonische Exit; in 62 % der Faelle war
der manuelle Close besser. Dasselbe gilt fuer den S/R-Auto-Close (-530). Beide
realisieren Gewinne besser als reines Trailing.

Die Leckage liegt auf der VERLUSTSEITE: die 69 per Broker-SL geschlossenen
Trades haetten mit dem kanonischen Exit 1.229 EUR weniger verloren, die 98
Notfall-Closes 515 EUR weniger. Ueber alle Trades waere der kanonische Exit rund
+700 EUR besser gewesen, praktisch vollstaendig aus der Verlustseite.

Confounder benannt: simulate() setzt den Initial-SL auf 2,0xATR_M5, live kommt er
aus ATR_M15 und ist oft deutlich weiter - unter Margin-Sizing schlaegt das voll
auf den EUR-Verlust durch. Der +1.229-Wert misst also erheblich SL-BREITE, nicht
Exit-Logik. backtest_sl_tf_mismatch.py hat die M5-Umstellung schon geprueft und
wegen H2 verworfen; dieser Befund gibt Anlass, das mit dem kanonischen Exit zu
wiederholen.

Zweite Grenze: Vergleich gilt pro Trade, nicht als Kontostand-Hochrechnung.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-08-04 13:25:01 +02:00
co-authored by Claude Opus 5
parent b376619663
commit 3ec4d53022
2 changed files with 153 additions and 0 deletions
+30
View File
@@ -784,6 +784,36 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
BOTS sind gemessen richtig; die eigentliche Asymmetrie liegt im diskretionären
Früh-Kappen — genau die dokumentierte Kern-Leckage (B0-Checkliste: „Gewinner läuft
das Trailing"). Ein Code-Gate am Bot-Exit adressiert das falsche Ende.
⚠⚠ **KONTRAFAKTISCH NACHGERECHNET (`analyze_manual_close.py`, 2026-08-04) — DIE
„FRÜH-KAPPEN"-HYPOTHESE IST WIDERLEGT.** Für jeden real geschlossenen Trade wurde
ab dem echten Einstieg der kanonische Exit simuliert (EUR-Faktor 87,6 €/$/Lot,
robust aus 251 Trades geschätzt — `trader.pnl` enthält Swap, eine direkte
Rückrechnung wäre verfälscht):
| Schließgrund | n | IST | Bot-Exit | Δ |
|---|---|---|---|---|
| `manual` Gewinn | 143 | **+1428** | +962 | **467** |
| `sr_close` Gewinn | 106 | +1591 | +1060 | 530 |
| `emergency` Verlust | 98 | 1750 | 1235 | +515 |
| **`sl` Verlust** | **69** | **1926** | **697** | **+1229** |
**Das diskretionäre Früh-Kappen kostet NICHTS — es bringt +467 € MEHR** als der
kanonische Exit gebracht hätte; in **62 %** der Fälle war der manuelle Close
besser. Dasselbe gilt für den S/R-Auto-Close (530). Beide realisieren Gewinne
besser, als ein reines Trailing es täte.
✅ **Die Leckage liegt auf der VERLUSTSEITE:** die 69 per Broker-SL geschlossenen
Trades hätten mit dem kanonischen Exit **1.229 € weniger** verloren (697 statt
1926), die 98 Notfall-Closes 515 € weniger. Über ALLE Trades summiert wäre der
kanonische Exit rund **+700 €** besser gewesen — praktisch vollständig aus der
Verlustseite.
⚠ **Confounder, der das Ergebnis begrenzt:** `simulate()` setzt den Initial-SL auf
**2,0×ATR_M5**, live kommt er aus **ATR_M15** (`_calc_sl_tp`) und ist damit oft
deutlich weiter — unter Margin-Sizing schlägt das voll auf den EUR-Verlust durch.
Der +1.229-Wert misst also zu einem erheblichen Teil **SL-Breite**, nicht
Exit-Logik. `backtest_sl_tf_mismatch.py` hat die Umstellung auf M5-ATR bereits
geprüft und wegen H2 verworfen — dieser Befund gibt Anlass, das mit dem
kanonischen Exit ZU WIEDERHOLEN.
⚠ Zweite Grenze: der Vergleich gilt **pro Trade**, nicht als Kontostand-
Hochrechnung — ein länger laufender Trade hätte den Positions-Slot belegt und
Folge-Trades verhindert.
- **Mindestgewinn für den S/R-Close = VERWORFEN (gemessen `backtest_srclose_prob.py`,
Mindestgewinn-Sektion):** „nur closen wenn ≥minR im Plus" verliert **monoton in
BEIDEN Hälften** (minR 0,2: 444/213 · 0,5: 1425/854 R vs minR=0). Die vielen