Auto-Flip-Close gebaut (User-Wunsch) - trotz erneut negativer Messung
User: "schliesse den trade automatisch beim close signal". Dreht die
Empfehlung gegen die offene Position und steht sie >=0,5xATR im Plus ->
close(reason="flip_close").
VORHER NEU GEMESSEN, weil das alte Urteil (backtest_flipclose.py,
16.07.) auf einem VIERTEN Exit-Modell fusste: Trail fest 1,5 (live jetzt
1,0), keine Lock-Phase, kein Time-Stop, kein Initial-TP, _MAXH 288 statt
200, Phasen ueber den Bar-Close statt ueber das High-Water.
backtest_flipclose2.py (80k M5, 2 Halbjahre, Echtkosten, Exit aus
core/exit_model.py) bestaetigt das alte Urteil - deutlicher:
Basis ohne Flip H1 SigmaR -537 · H2 -140
Flip ab 0,0xATR Delta H1 -126 · H2 -221
Flip ab 0,3xATR Delta H1 -77 · H2 -216
Flip ab 0,5xATR Delta H1 -92 · H2 -160 <- mildeste, Default
Flip auch im Minus Delta H1 -205 · H2 -364
JEDE Variante ist in BEIDEN Haelften schlechter. Trefferquote steigt
39 -> 45 %, Ertrag faellt = Gewinner-Kappen (die nachlaufende EMA dreht
oft mitten im Pullback).
Gebaut wurde die mildeste Variante (0,5xATR Mindestgewinn), abschaltbar
ueber [trading] auto_flip_close.
Fuer die Neumessung bekam exit_model.simulate() einen stop_when-Hook
(+ ret_bar), damit die Phasen-Mechanik nicht zum fuenften Mal kopiert
werden musste. Rueckwaertskompatibilitaet verifiziert: ohne Hook bitgenau
identisch (die zunaechst gemeldeten Abweichungen kamen allein aus
LIVE.mult 1,5 -> 1,0, gegengeprueft mit mult=1.5 -> identisch).
Mit 10 synthetischen Szenarien getestet: beide Richtungen, aus, unter
Schwelle, gleichgerichtet, WARTEN, im Minus, flat, Startup-Schonfrist,
Ticket-Dedup - alle korrekt.
B4/B5-Pflicht: Live-Ertrag gegen die Erwartung halten, bei Drift
auto_flip_close=false.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
f1cc3775f9
commit
fea91fddb3
@@ -574,6 +574,35 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
|
||||
P(break)-Modell (hat „mit-Trend" als Merkmal) macht das schon richtig; es mit dem
|
||||
groben EMA-Signal zu übersteuern kostet ~⅔ des S/R-Close-Edges. **12. verworfener
|
||||
Signal-Eingriff.**
|
||||
- **⚠⚠ AUTO-FLIP-CLOSE = TROTZ NEGATIVER MESSUNG GEBAUT (User-Vorgabe 2026-07-31
|
||||
„schließe den Trade automatisch beim Close-Signal"), `[trading] auto_flip_close=true`,
|
||||
`auto_flip_close_min_r=0.5`.** Dreht die Empfehlung GEGEN die offene Position und
|
||||
steht sie ≥0,5×ATR im Plus → `trader.close(reason="flip_close")`.
|
||||
**NEU GEMESSEN mit dem ECHTEN Exit (`backtest_flipclose2.py`, 80k M5, 2 Halbjahre,
|
||||
Echtkosten, Exit aus `core/exit_model.py`) — bestätigt das alte Urteil, deutlicher:**
|
||||
| Variante | Δ H1 | Δ H2 |
|
||||
|---|---|---|
|
||||
| Flip ab 0,0×ATR | −126 | −221 |
|
||||
| Flip ab 0,3×ATR | −77 | −216 |
|
||||
| **Flip ab 0,5×ATR** | **−92** | **−160** ← mildeste, deshalb Default |
|
||||
| Flip auch im Minus | −205 | −364 |
|
||||
Basis ohne Flip: H1 ΣR −537 · H2 −140. **JEDE Variante ist in BEIDEN Hälften
|
||||
schlechter.** Mechanik: Trefferquote steigt 39 → 45 %, Ertrag fällt =
|
||||
**Gewinner-Kappen** (die nachlaufende EMA dreht oft mitten im Pullback).
|
||||
⚠ **Warum überhaupt neu gemessen:** das alte `backtest_flipclose.py` nutzte ein
|
||||
**VIERTES Exit-Modell** (Trail fest 1,5 · KEINE Lock-Phase · KEIN Time-Stop ·
|
||||
KEIN Initial-TP · `_MAXH` 288 · Phasen über den Bar-Close statt über das
|
||||
High-Water) — auf dieser Grundlage wäre das Urteil für den Live-Betrieb nicht
|
||||
bindend gewesen. Für die Neumessung bekam `exit_model.simulate()` einen
|
||||
**`stop_when`-Hook** (+ `ret_bar`), damit die Phasen-Mechanik NICHT wieder kopiert
|
||||
werden musste; Rückwärtskompatibilität verifiziert (ohne Hook bitgenau identisch).
|
||||
Umsetzung `engine._check_flip_close` im `_pos_loop`: nur im PLUS, 1× je Ticket,
|
||||
Startup-Schonfrist beachtet, Log 🔄 + Telegram, Snapshot `flip_close`/
|
||||
`flip_close_min_r`/`flip_close_count`. Mit **10 synthetischen Szenarien** getestet
|
||||
(beide Richtungen · aus · unter Schwelle · gleichgerichtet · WARTEN · im Minus ·
|
||||
flat · Schonfrist · Ticket-Dedup). Der Alarm (Blinken/Ton/Telegram) bleibt
|
||||
unabhängig davon. **B4/B5-Pflicht: Live-Ertrag gegen die Erwartung halten —
|
||||
driftet es weg, `auto_flip_close=false`.**
|
||||
- **Auto-Flip-Close = VERWORFEN (gemessen `backtest_flipclose.py`, 2 Halbjahre,
|
||||
sequentielle 1-Positions-Sim, 2026-07-16):** User-Taktik-Kern „Position im Plus
|
||||
automatisch schließen, wenn die Empfehlung dreht" (heute nur Alarm). KEINE Variante
|
||||
|
||||
Reference in New Issue
Block a user