From ec6a2c5842c04b87cb962fb6e585f9bb4abad522 Mon Sep 17 00:00:00 2001 From: Axel Hocks Date: Thu, 6 Aug 2026 23:39:24 +0200 Subject: [PATCH] SIG-Pending faellt durch: Look-ahead 0,8 R, schlechter als der Markt-Einstieg MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Der offene Test aus dem Fill-Befund ist gelaufen (backtest_signal_touchfill.py, 80k M5, voller Live-Gate-Stack, kanonischer Exit, Echtkosten): Konf A) Markt B) Close-Bruch C) BERUEHRUNG (real) >=55 -0,015/-0,172 +0,381/+0,315 -0,392/-0,338 >=65 -0,024/-0,085 +0,367/+0,385 -0,478/-0,471 >=75 -0,148/-0,310 +0,288/+0,136 -0,184/-0,202 C ist in allen sechs Feldern negativ (PF 0,38-0,71). Der Look-ahead-Aufschlag betraegt 0,77-0,85 R — groesser als beim Momentum (0,45) und Squeeze (0,32). ⚠ C ist sogar schlechter als der Markt-Einstieg. Sichtbar am Trade-Zaehler: C hat MEHR Fills als B (441 gegen 328, 659 gegen 455) — die zusaetzlichen sind die Beruehrungen, die zurueckfallen. Eine Order an einem WANDERNDEN Level faengt systematisch die Fehlausbrueche ein. Damit ist die Vorhersage bestaetigt: entscheidend ist nicht "Level statt Markt", sondern ob das Level STILLSTEHT. Squeeze-Box haelt (+0,124/+0,292), _pend und Momentum wandern und fallen durch. Empfehlung dokumentiert: signal_pending_entry = false. Nicht eigenmaechtig umgestellt — Live-Schalter sind User-Entscheidungen, und auto_signal ist ohnehin aus (der Pfad platziert derzeit keine Orders). Migrations-Pruefung ehrlich vermerkt: der Vorher/Nachher-Vergleich war nicht bitgenau (ein Trade in H2), Ursache sind zwischenzeitlich eingetroffene Live-Bars, nicht der Patch — H1 war identisch. Co-Authored-By: Claude Opus 5 --- CLAUDE.md | 42 +++++++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 4d5a922..4317ccb 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -465,13 +465,41 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche: ⚠⚠ **KONSEQUENZ: die heute mehrfach zitierten +0,456/+0,611 sind als Live-Erwartung ~0,32 R zu hoch.** Sie bleiben als Vergleich zwischen Market und Level gültig (dafür waren sie gerechnet), taugen aber nicht als Ertragsprognose. - ⚠⚠ **OFFEN und wichtig: derselbe Test fehlt für den SIG-Pending-Pfad** - (`backtest_auto_signal_v3.py`, +0,35/+0,32 — ebenfalls Variante (a), und seit - 05.08. live). Es gibt Grund, dort ein **schlechteres** Ergebnis zu erwarten als - beim Squeeze: die Squeeze-Box **steht still**, das `_pend`-Level dagegen - **wandert** bei jeder k×ATR-Gegenbewegung — genau die Eigenschaft, an der das - Momentum-Level gescheitert ist (s. u.), und die Ursache des Pending-Churns - (Drift-Fall 9). **Vor weiteren Schlüssen aus den SIG-Zahlen: nachmessen.** + ✅✅ **ERLEDIGT — der SIG-Pending-Pfad FÄLLT DURCH (`backtest_signal_touchfill.py`, + 2026-08-06, 80k M5, voller Live-Gate-Stack, kanonischer Exit, Echtkosten).** + | Konf | A) Markt am Bar-Close | B) Level, Fill bei Close-Bruch | **C) Level, Fill bei BERÜHRUNG** | + |---|---|---|---| + | ≥55 | −0,015 / −0,172 | +0,381 / +0,315 | **−0,392 / −0,338** ❌ | + | ≥65 | −0,024 / −0,085 | +0,367 / +0,385 | **−0,478 / −0,471** ❌ | + | ≥75 | −0,148 / −0,310 | +0,288 / +0,136 | **−0,184 / −0,202** ❌ | + **C ist in ALLEN SECHS Feldern negativ** (PF 0,38–0,71). Der Look-ahead-Aufschlag + beträgt **0,77–0,85 R** — grösser als beim Momentum (0,45) und beim Squeeze (0,32). + ⚠⚠ **C ist sogar schlechter als der MARKT-Einstieg** (−0,392 gegen −0,015). Der + Mechanismus ist im Trade-Zähler sichtbar: C hat **mehr** Fills als B (441 gegen + 328 · 659 gegen 455) — die zusätzlichen sind genau die Berührungen, die + zurückfallen, und die sind die Verlierer. Eine Order an einem **wandernden** + Level fängt systematisch die Fehlausbrüche ein. + ✅ **Damit ist die Vorhersage bestätigt:** entscheidend ist nicht „Level statt + Markt", sondern ob das Level **STILLSTEHT**. Squeeze-Box → hält (+0,124/+0,292); + `_pend` und Momentum → wandern → fallen durch. + ⚠ **Die im Bau-Eintrag vom 05.08. zitierten +0,39/+0,36 sind damit als + Live-Erwartung ungültig** — sie stehen in Variante B. Der Eintrag bleibt als + Historie stehen, gilt aber nur noch für den Vergleich Markt↔Level. + ✅ **Empfehlung: `signal_pending_entry = false`.** Nicht dringend — `auto_signal` + ist ohnehin aus, der Pfad platziert derzeit keine Orders (`_auto_guard` blockt am + Toggle). Aber der Schalter ist ein geladenes Gewehr: wer SIG wieder einschaltet, + bekommt den gemessen negativen Einstiegsweg. **Nicht eigenmächtig umgestellt** — + Live-Schalter sind User-Entscheidungen. + ⚠ **`squeeze_pending_entry` bleibt begründet** — dort steht die Box still, und + der Touchfill-Test ist bestanden. + ⚠ Zur Migrations-Prüfung: `lauf()` hat einen `fill`-Parameter bekommen + (Default `"close"`). Der Vorher/Nachher-Vergleich war **nicht bitgenau** — + Abweichung: EIN Trade in H2 (454→455). Ursache ist nicht der Patch (mit + `fill="close"` sind die ausgeführten Anweisungen identisch), sondern + **zwischenzeitlich eingetroffene Live-Bars**: `copy_rates_from_pos(0, 80000)` + ankert am neuesten Bar, das Fenster verschiebt sich zwischen zwei Läufen. + H1 war in beiden Läufen identisch. + - **⚠⚠ MOMENTUM-CONTINUATION MIT LEVEL-ORDER NEU GEMESSEN = BLEIBT VERWORFEN (`backtest_momentum_v2.py`, 2026-08-06, User-Wunsch).** Kein bloßes Wiederholen: der Lauf von 2026-07-17 stieg am **Bar-Close** ein, und genau diese Annahme hat