"S/R-Close kappt die Squeeze-Laeufer" = widerlegt (backtest_squeeze_srclose2.py)
Meine eigene Hypothese vom selben Tag -- gemessen falsch, und zwar doppelt. (1) BACKTEST (80k M5, 2 Halbjahre, Einstiege ueber den geteilten squeeze_scan.scan(on_entry=...), ruhende Order am Level mit Fill bei Beruehrung, kanonischer Exit, Echtkosten, ein Slot; identische Entry-Liste ueber alle Varianten, variiert wird NUR der Exit): A) ohne S/R-Close H1 -0,151 / PF 0,72 H2 -0,079 / PF 0,86 B) mit p<0,35 (LIVE) H1 -0,119 / PF 0,76 H2 -0,049 / PF 0,91 D +0,032/+0,030 B) mit p<0,45 H1 -0,088 H2 -0,046 D +0,063/+0,033 Der S/R-Close ist in BEIDEN Haelften besser als ohne -- die vorab fixierte Regel sagt: anlassen. Und die von mir vorgeschlagene "Abhilfe" (Close erst ab Mindestgewinn) macht H1 schlechter (D -0,006 / -0,011). (2) LIVE, 11 Squeeze-Trades ab 01.08.: sl 5 Trades -198,17 EUR sr_close 4 Trades +15,98 EUR <- der verdaechtigte Exit hat BEIGETRAGEN manual 2 Trades +8,73 EUR Der groesste Gewinner (+77,34) kam ebenfalls ueber sl, also ueber das Trailing. Die Groesse steckt allein auf der Verlustseite: -175,21 EUR bei 2,91 Lots = 0,695 $ = der planmaessige 2xATR-Stop. Der Hebel zeigt auf SIZING, nicht Exit. GRENZE, nicht ueberspielt: die ABSOLUTEN Werte reproduzieren den dokumentierten Kontrollwert NICHT (backtest_squeeze_touchfill.py: +0,124/+0,292 bei 1.092/1.807 Trades gegen -0,151/-0,079 bei 273/422). Belastbar ist allein der RELATIVE Vergleich; "der Squeeze ist negativ" ist hier NICHT belegt. Zwei eigene Fehler dokumentiert, weil es Fehlerklassen sind: - erster Lauf nahm den Modul-Default ATRMIN_STD=0,12 statt des Live-Werts 0,06 -> H1 127 gegen H2 483 Einstiege, voellig andere Population. Dieselbe Klasse wie das fehlende set_entry_room(0.6): ein aufgerufenes Gate ist nicht dasselbe wie ein aktives Gate. - erster Entwurf haengte den Close an stop_when (prueft den BAR-CLOSE gegen ein 0,018-$-Fenster) -> feuerte fast nie. Live prueft den laufenden Kurs im Sekundentakt; das Analogon ist die Bar-SPANNE. Nichts am Live-System geaendert. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
03329c44b5
commit
1e8d700f46
@@ -5553,6 +5553,70 @@ läuft die B5-Regel **nie ab**, der schlechteste Zustand. `auto_sr_close=True`,
|
||||
Circuit-Breaker **aus** (`limit_pct=0`), Sizing 95 % Margin, Balance 1.279 €.
|
||||
Bei Ø-Verlust 94 € sind das **7,4 % des Kontos je Verlusttrade**.
|
||||
|
||||
### ✅⚠ „DER S/R-CLOSE KAPPT DIE SQUEEZE-LÄUFER" = WIDERLEGT (`backtest_squeeze_srclose2.py`, 2026-08-13)
|
||||
|
||||
Meine eigene Hypothese vom selben Tag (drei von sieben Pending-Trades per
|
||||
`sr_close` bei +0,26 / +2,88 / +0,28 € beendet) — **gemessen falsch, und zwar
|
||||
doppelt.**
|
||||
|
||||
**(1) BACKTEST** (80k M5, 2 Halbjahre, Einstiege über den GETEILTEN
|
||||
`squeeze_scan.scan(on_entry=…)`, ruhende Order am Level mit Fill bei Berührung,
|
||||
kanonischer Exit, Echtkosten, EIN Slot; identische Entry-Liste über alle
|
||||
Varianten, variiert wird NUR der Exit):
|
||||
| Variante | H1 ØR / PF | H2 ØR / PF | Δ gegen ohne |
|
||||
|---|---|---|---|
|
||||
| **A) ohne S/R-Close** | −0,151 / 0,72 | −0,079 / 0,86 | — |
|
||||
| **B) mit, p<0,35 (LIVE)** | **−0,119 / 0,76** | **−0,049 / 0,91** | **+0,032 / +0,030** |
|
||||
| B) p<0,45 | −0,088 / 0,82 | −0,046 / 0,92 | +0,063 / +0,033 |
|
||||
| B) p<0,55 | −0,086 / 0,82 | −0,038 / 0,93 | +0,065 / +0,041 |
|
||||
**Der S/R-Close ist in BEIDEN Hälften BESSER als ohne** — die vorab fixierte
|
||||
Regel sagt damit: **anlassen.** ⚠ Und die von mir vorgeschlagene „Abhilfe"
|
||||
(Close erst ab Mindestgewinn) macht H1 **schlechter** (Δ −0,006 / −0,011 bei
|
||||
0,5 bzw. 1,0×ATR) — der Eingriff hätte geschadet.
|
||||
|
||||
**(2) LIVE, 11 Squeeze-Trades ab 01.08. — die Zerlegung ist eindeutig:**
|
||||
| Schließgrund | n | Σ | Ø |
|
||||
|---|---|---|---|
|
||||
| **`sl`** (Stop/Trailing) | 5 | **−198,17 €** | −39,63 |
|
||||
| `sr_close` | 4 | **+15,98 €** | +4,00 |
|
||||
| `manual` | 2 | +8,73 € | +4,37 |
|
||||
⚠⚠ **Der verdächtigte Exit hat +15,98 € BEIGETRAGEN, nicht gekostet.** Und der
|
||||
größte Gewinner des Zeitraums (+77,34 €) kam ebenfalls über `sl` — also über das
|
||||
**Trailing**, nicht trotz ihm.
|
||||
⚠ Die Größe steckt allein auf der Verlustseite: **−175,21 € bei 2,91 Lots** =
|
||||
0,695 $ Bewegung — das ist der **planmäßige 2×ATR-Stop** bei dem ATR jenes
|
||||
Moments, kein Ausreißer und kein Exit-Defekt. Ø-Verlust 94,15 € auf 1.279 €
|
||||
Konto = **7,4 % je Verlusttrade**.
|
||||
✅ **Damit zeigt der Hebel auf SIZING, nicht auf den Exit** — genau dorthin, wo
|
||||
CLAUDE.md ihn ohnehin verortet („Der Hebel ist Sizing, nicht der Exit").
|
||||
|
||||
⚠⚠ **GRENZE, die nicht überspielt werden darf: die ABSOLUTEN Werte reproduzieren
|
||||
den dokumentierten Kontrollwert NICHT.** `backtest_squeeze_touchfill.py` liefert
|
||||
für denselben nominellen Aufbau **+0,124/+0,292** bei 1.092/1.807 Trades, hier
|
||||
sind es −0,151/−0,079 bei 273/422. Die Referenz hat also **mehr Trades als ich
|
||||
Einstiege habe** — ihre Auswahl ist lockerer (Fenster/Cooldown/Slot-Behandlung).
|
||||
**Deshalb ist der Befund „der Squeeze ist negativ" hier NICHT belegt**; belastbar
|
||||
ist allein der **relative** Vergleich, weil alle Varianten auf derselben
|
||||
Entry-Liste laufen und sich nur im Exit unterscheiden. Wer die Absolutwerte
|
||||
braucht, muss zuerst die Kontrolle reproduzieren (die Projekt-Regel, die
|
||||
`backtest_verworfene_v2.py` vorbildlich befolgt).
|
||||
|
||||
⚠⚠ **EIGENER FEHLER auf dem Weg, dokumentiert weil es eine Fehlerklasse ist:**
|
||||
der erste Lauf nahm den Modul-Default `squeeze_scan.ATRMIN_STD = 0,12`, während
|
||||
live und die Referenz **0,06** nutzen (der Floor wurde gemessen gesenkt). Folge:
|
||||
**H1 127 gegen H2 483 Einstiege** — der hohe Floor filtert die Niedrig-Vola-
|
||||
Hälfte weg und erzeugt eine ganz andere Population. Aufgefallen nur durch die
|
||||
Schieflage der Entry-Zahlen. Dieselbe Klasse wie das fehlende
|
||||
`set_entry_room(0.6)` am 05.08.: **ein aufgerufenes Gate ist nicht dasselbe wie
|
||||
ein aktives Gate; beim Wiederverwenden eines Kerns gehört die Live-KONFIGURATION
|
||||
mitkopiert.** ⚠ Die Schlussfolgerung war in beiden Läufen dieselbe.
|
||||
⚠ Zweiter eigener Fehler: der erste Entwurf hängte den S/R-Close an den
|
||||
`stop_when`-Haken, der zum **Bar-Close** prüft — bei einem „am Level"-Fenster von
|
||||
0,15×ATR ≈ 0,018 $ feuerte er fast nie (Δ ≈ 0,000), während er live 94–97 % aller
|
||||
Berührungen schliesst. Live prüft den **laufenden** Kurs im Sekundentakt; das
|
||||
Analogon ist die **Bar-Spanne**. Danach feuert er in 21–23 % der Trades (live
|
||||
4 von 11 = 36 %, bei n=11 kein Widerspruch).
|
||||
|
||||
### ✅ S/R-AUTO-CLOSE WIEDER AN (User-Entscheidung 2026-08-11)
|
||||
|
||||
Frage war: „sollten wir Trades bei einem S/R-Bounce automatisch schliessen?"
|
||||
|
||||
Reference in New Issue
Block a user