M15-Karte: Gate 3b zeigt Motor-Block + RAUM je Richtung

Anlass Trade #49671601 (-87,03 EUR). Die Praemisse "SL trotz LONG-
Empfehlung" stimmte nicht: 138 Zeilen zwischen Ein- und Ausstieg,
100 % WARTEN (entry_room 76 %, breakout_pending 19 %, min_conf 5 %).
Gesehen wurde "verboten: SHORT" - ein Veto. Dritter Fall derselben
Veto->Richtung-Umwandlung in dieser Karte (Code 08.08., Geometrie
10.08. frueh, jetzt die Lesart).

Der eigentliche Befund: entry_room und Gate 3 lesen DIESELBE Tatsache
("ein Level ist nah") mit umgekehrtem Vorzeichen. Beide gemessen,
beide richtig - ueber verschiedene Trades (Markt-Einstieg mit dem
Level als Hindernis vs. ruhende Order AM Level). Die Karte zeigte nur
die gruene Haelfte; die Block-Grund-Zeile war mit der Gesamtempfehlung
verschwunden.

Gebaut: Zeile 3b (#m15-motor) mit block_reason im Klartext + Raum je
Richtung. Reine Anzeige. Das Status-Banner bleibt bewusst unveraendert
- es auf gelb zu ziehen waere eine Strategie-Aenderung, und die einzige
Live-Zahl dafuer (-9,91 vs +3,24 EUR/Lot, n=76) hat ein KI, das die
Null enthaelt.

- wave_rec.room_info(): EINE Implementierung fuer Gate und Anzeige,
  _room_gate rechnet jetzt darueber (kein Nachbau)
- tests/test_room_info.py: Bitgleichheit ueber 2.000 Zufallslagen x 3
  Signale, Gate feuerte >300x; Grenzfall-Test fuer die Rundung
- v=160

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-08-10 09:09:27 +02:00
co-authored by Claude Opus 5
parent 5474c2be61
commit 47c596ed70
6 changed files with 375 additions and 19 deletions
+72
View File
@@ -5220,6 +5220,78 @@ nicht führbar — und Schritt 4 ist der EINZIGE belastbare Nachweis, dass neuer
Python-Code läuft. Jetzt mit **Punktpfaden**; ein Feld mit Wert `None` zählt als
vorhanden (geprüft wird der Schlüssel, nicht der Inhalt).
### ⚠⚠ GATE ③b — DIE KARTE PRÜFTE „LEVEL NAH", NIE „RAUM DAHINTER" (2026-08-10)
**Anlass: Trade #49671601, 87,03 €** (User: „SL geschlossen trotz LONG-Empfehlung").
**Die Prämisse stimmte nicht — es gab keine LONG-Empfehlung.** 138 Zeilen
zwischen Ein- und Ausstieg, **100 % WARTEN**: `entry_room` 76 % · `breakout_pending`
19 % · `min_conf` 5 %, **kein einziges durchgelassenes Richtungssignal**. Gesehen
wurde `verboten: SHORT` — ein **Veto**.
⚠⚠ Damit ist es der **dritte** Fall derselben Umwandlung in dieser Karte: am 08.08.
machte der **Code** aus dem Verbot eine Richtung (13 LONG-Episoden an einem
fallenden Tag), am 10.08. früh die **Geometrie** (Gate ④), jetzt die **Lesart**.
Wenn eine Anzeige dreimal zur selben Fehldeutung einlädt, liegt es an der Anzeige.
⚠⚠ **DER EIGENTLICHE BEFUND: zwei Bauteile lesen DIESELBE Tatsache mit
umgekehrtem Vorzeichen.**
| Bauteil | bei „Level sehr nah" | Beleg |
|---|---|---|
| **`entry_room`** (Signal-Motor) | **WARTEN** — Ertrag am Level gedeckelt | ØR 0,119/0,067 · **PF 0,42/0,66** |
| **Gate ③** (M15-Karte) | **GRÜN** — Level in Reichweite | Ausführungs-Edge der ruhenden Order |
✅ **Beide sind gemessen und beide haben recht — über VERSCHIEDENE Trades:**
`entry_room` misst den **Markt**-Einstieg mit dem Level als *Hindernis voraus*,
die Karte die **ruhende Order AM** Level. Der Unterschied ist real.
**Die Karte zeigte nur die grüne Hälfte** — die Block-Grund-Zeile war beim
Entfernen der Gesamtempfehlung mit verschwunden.
**Der Trade war beim Einstieg entschieden:** Widerstand **0,07×ATR = 0,008 $**
voraus, Stop **0,560 $ = 4,7×ATR_M5** zurück (CRV ~1:67), **MFE +0,016 $** — nie
im Plus. `ctx_atr_m5 = 0,12` = **der ATR-Floor**, der Markt stand still; der Stop
kam trotzdem aus ATR_M15 (bei manuellen Trades Absicht, M5 nur für Auto-Squeeze
seit 05.08.). 87 € = `0,568 $ × 1,77 Lots × ~87,6 €` — reine Geometrie, kein
Ausreißer. ⚠ Stunde 6 „vor DE-Open": autonom hätte der Bot dort nicht eröffnet.
**Ist es ein Muster? Gemessen (77 Trades mit `ctx_*` seit 04.08., je Lot):**
| Block beim Einstieg | n | WR | EUR/Lot |
|---|---|---|---|
| **`entry_room`** | **29** | 55 % | **11,45** |
| `min_conf` | 16 | 44 % | 16,08 |
| `htf_counter` | 10 | 80 % | +22,83 |
| `breakout_pending` | 9 | 89 % | +17,68 |
Direkt auf der Raum-Achse (Abstand zum Level in der **eigenen** Trade-Richtung):
| | n | WR | EUR/Lot | 95-%-KI |
|---|---|---|---|---|
| Raum < 0,6 (geblockt) | 24 | **62 %** | 9,91 | [29,4 … +6,6] ⚠ |
| Raum ≥ 0,6 (frei) | 52 | **62 %** | +3,24 | [5,8 … +13,5] ⚠ |
⚠⚠ **Beide Intervalle enthalten die Null — mit n=76 ist das NICHT belegt**, nur
konsistent mit dem über 80k Bars gemessenen Gate. ✅ Die schärfste Zeile ist die
**identische Trefferquote 62 % gegen 62 %**: die Richtungswahl war gleich gut, der
Unterschied liegt **allein in der Asymmetrie** (Gewinn am Level gedeckelt, Verlust
läuft bis zum Stop) — die dokumentierte Kern-Leckage an neuer Stelle.
**GEBAUT: Zeile ③b** (`#m15-motor`, v=160) — zeigt den aktuellen `block_reason`
im Klartext **plus den Raum je Richtung** („③b Motor blockt: gegen den M30-Trend ·
Raum ▲ 0,17×ATR ⚠ / ▼ 0,07×ATR ⚠ (Gate 0,6)"). Beide Richtungen, weil die Karte
bewusst keine vorgibt.
⚠⚠ **Das Status-Banner bleibt BEWUSST unverändert.** Es auf 🟡 zu ziehen wäre eine
Strategie-Änderung an einer gemessenen Gate-Kette — und die einzige Live-Zahl dafür
(9,91 gegen +3,24 €/Lot) hat ein KI, das die Null enthält. **Sichtbar machen,
nicht bevormunden**; die Order-Buttons bleiben ohnehin bedienbar (Übersteuerungen
liefen gemessen 68 % WR).
**`wave_rec.room_info(cur)` ist EINE Implementierung für Gate UND Anzeige** —
`_room_gate` rechnet jetzt darüber. Ein Nachbau wäre die Divergenz-Falle, die im
Projekt dreimal zugeschlagen hat (`sim_run`/`_ema_series` in ≥6 Skripten · der
nachgebaute Level-Cluster · das fünfte Exit-Modell).
⚠ Quelle ist trainingsgleich **M5**, nicht die M30-Level der Karte — `entry_room_atr
=0,6` ist auf M5 kalibriert (die drei divergierenden Level-Quellen sind Absicht).
**Bitgleichheit bewiesen** (`tests/test_room_info.py`, 6 Tests): die alte Fassung
liegt wörtlich eingefroren im Test und läuft über **2.000 Zufallslagen × 3 Signale**
gegen die neue — identisch, und das Gate feuerte dabei >300× (ein Test, in dem es
nie feuert, belegt nichts). ⚠ Der gefährlichste Fall hat einen eigenen Test:
`frei` MUSS auf dem **ungerundeten** Abstand entschieden werden — bei 0,5951 würde
die gerundete 0,60 den Fall fälschlich durchlassen.
## ⚠⚠ EXIT-ABSTAND AUS M15-ATR = FÄLLT DURCH (2026-08-08)
Zweiter Teil der M15-Idee: M5-Einstieg behalten, nur den EXIT gröber führen.