Nachtest S/R-Trailing auf Squeeze-Entries: klar schlechter, Frage geschlossen

backtest_trailing_sr.py --squeeze: gleiche Sim, aber nur SQUEEZE-Ausbrueche
(Regel exakt wie live via core.wave_rec _SQ_N/_SQ_MULT/_SQ_K, Einstieg am
Ausbruchslevel, Echtkosten aus dem Bar-Spread).

Basis H1 +0,102 / H2 +0,108 - KEINE Variante besteht. Anders als im
Wave-Lauf ist das kein Rauschen: der reine S/R-Trail wird monoton
schlechter, je breiter der Puffer (0,10 -> 0,25 -> 0,50, in BEIDEN
Haelften). Mechanismus: der Squeeze lebt von wenigen Laeufern (43 %
Treffer, Ertrag im Tail) - ein ans naechste Level gebundener Stop holt
genau dort raus, wo der Lauf beginnt. Bei Wave-Signalen faellt das kaum
auf, daher das umgekehrte Vorzeichen zwischen beiden Laeufen.

Staerkster Gewinner-Kappen-Beleg des Projekts: die Kontrollvariante
(fester TP am Gegenlevel) dreht den Squeeze von +0,102/+0,108 auf
-0,066/-0,004 = Edge vollstaendig zerstoert.

Abgrenzung: der laufende S/R-Auto-Close ist P(break)-GEGATED und war auf
Squeeze-Trades separat ein Wash (backtest_squeeze_srclose.py). Das Gate
ist der Unterschied zwischen "Wash" und "Edge zerstoert".

Damit ist die User-Idee in allen drei Teilen durchgemessen; der
Live-Exit-Stack bleibt unveraendert.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-07-31 07:54:10 +02:00
co-authored by Claude Opus 5
parent 9ad1b6d8d4
commit 5f70d58828
2 changed files with 81 additions and 8 deletions
+20 -3
View File
@@ -701,9 +701,26 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
Tail-Risiko hinzu (das war die Sorge aus `backtest_sl_method.py`). ⚠ **Die
KONTROLLVARIANTE „TP am Gegenlevel" reproduziert den alten Befund exakt** (WR 40→54 %,
ΣR H2 +1261→+740 = Gewinner-Kappen) — damit ist die Simulation gegen
`backtest_srclose.py` validiert und der TP-Teil endgültig erledigt. **Offener
Nachtest:** dieselbe Messung NUR auf Squeeze-Entries (runner-abhängig → dort könnte
ein Level-Stop mehr bewegen als über alle Wave-Signale gemittelt).
`backtest_srclose.py` validiert und der TP-Teil endgültig erledigt.
**NACHTEST auf NUR Squeeze-Entries (`--squeeze`, 2026-07-31, Echtkosten): ERLEDIGT —
dort ist der S/R-Trail nicht nur zu klein, sondern klar SCHLECHTER.** Basis
H1 +0,102/H2 +0,108; **keine einzige Variante besteht** (S/R 0,10: +0,096/+0,093 ·
0,25: +0,083/+0,098 · 0,50: +0,052/+0,092 · Hybrid: +0,093/+0,122 = kippt ·
Hybrid weit: +0,091/+0,084). Anders als im Wave-Lauf ist das **kein Rauschen**: der
reine S/R-Trail wird **monoton schlechter, je breiter der Puffer** (in BEIDEN
Hälften) — sauberer monotoner Verlauf, nur gegen die Idee. **Mechanismus:** der
Squeeze lebt von wenigen Läufern (43 % Treffer, Ertrag im Tail); ein an das
nächstgelegene Level gebundener Stop holt genau dort raus, wo der Lauf beginnt. Bei
Wave-Signalen fällt das kaum auf (selten große Runner) — daher das umgekehrte
Vorzeichen zwischen beiden Läufen. ⚠ **Stärkster Gewinner-Kappen-Beleg des
Projekts:** die Kontrollvariante (fester TP am Gegenlevel) dreht den Squeeze von
**+0,102/+0,108 auf 0,066/0,004** = Edge vollständig zerstört. ⚠ **Abgrenzung
gegen den laufenden S/R-Auto-Close:** der ist **P(break)-gegated** (schließt nur,
wenn das Level wahrscheinlich HÄLT) und war auf Squeeze-Trades separat gemessen ein
**Wash** (`backtest_squeeze_srclose.py`, +0,190→+0,224 / +0,394→+0,377). **Das Gate
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`):**
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