P(break) v2 live geprueft: Kalibrierung daneben, Trennschaerfe unentschieden

Faellige B4-Messung nach dem Nachtrainieren vom 31.07. (878 Vorhersagen ab
01.08.). Drei Befunde.

1) Das Skript mischte zwei Modelle. Es trennte bei der M30-Umstellung (30.07.),
nicht beim Nachtrainieren (31.07.) - "GESAMT" las altes und neues Modell
zusammen. Derselbe Fehler wie am 02.08. in analyze_divergence.py. Neu:
MODELL_V2 mit demselben Stichtag wie die Faelligkeitsbedingung.

2) Kalibrierung messbar daneben. Die Basisrate ist gewandert: Training 37,8 %,
live 53,2 %, stabil ueber vier volle Tage (51,4 / 54,1 / 56,4 / 53,8 % bei
n=122-276). Ein Modell, dessen Niveau an 37,8 % verankert ist, muss in einem
53-%-Regime systematisch zu niedrig sagen - genau das passiert. Oberste Klasse
invertiert (69 % vorhergesagt, 17 % real).

3) Trennschaerfe NICHT entscheidbar - und das ist der wichtigere Befund.
Entkoppelt n=87, AUC 0,556, 95-%-Bootstrap-KI [0,434 ... 0,674]. Das Intervall
enthaelt den Zufall (0,50) UND die Messlatte (0,654).

Die Faelligkeitsbedingung zaehlte die falsche Groesse: 800 ROHE Vorhersagen,
die aber nicht unabhaengig sind (dieselbe Position pendelt um dasselbe Level).
Aus 878 rohen werden 87 entkoppelte - die Bedingung ueberschaetzte die
Beweismenge um rund das Zehnfache und meldete "faellig", obwohl die Messung
nichts entscheiden konnte. Jetzt 350 ENTKOPPELTE (halbiert die KI-Breite).
Stand 87/350.

Operativ kein Notfall: auto_sr_close ist seit 06.08. false, das Modell
schliesst keine Trades. Es speist nur Anzeige, Chart-Linien und
Copilot-Kontext.

Nichts umgestellt - ein drittes Fitten derselben Bauart wuerde denselben Weg
gehen; der Befund zeigt aufs Niveau, nicht zwingend auf die Rangfolge.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-08-07 07:43:24 +02:00
co-authored by Claude Opus 5
parent 3e8fa9fea8
commit 908e20a9d0
3 changed files with 117 additions and 5 deletions
+63
View File
@@ -4785,6 +4785,69 @@ Signal-Eingriffe sind gescheitert, und die gemessene Stärke des Users liegt in
AUSWAHL, nicht in einer Regel. Ein Modul, das ihm seine eigene Historie zur aktuellen
Lage zeigt, spielt auf diese Stärke; eines das für ihn einsteigt, ersetzt sie.
## ⚠⚠ P(break) v2 LIVE GEPRÜFT (2026-08-07) — KALIBRIERUNG DANEBEN, TRENNSCHÄRFE UNENTSCHIEDEN
Fällige B4-Messung nach dem Nachtrainieren vom 31.07. (`analyze_pbreak_live.py`,
878 ausgewertete Vorhersagen ab 01.08.). Zwei Befunde, die auseinandergehalten
gehören — und einer davon betrifft die Messung selbst.
⚠⚠ **ZUERST: DAS SKRIPT MISCHTE ZWEI MODELLE.** Es trennte bei der
M30-Level-Umstellung (30.07.), **nicht** beim Nachtrainieren (31.07.); „GESAMT"
las damit altes und neues Modell zusammen. Genau der Fehler, der am 02.08. in
`analyze_divergence.py` schon behoben wurde (`_EPOCHS`) — hier stand er noch.
Neu: `MODELL_V2` mit demselben Stichtag wie die Fälligkeitsbedingung (01.08.),
plus eigener Abschnitt „NACHTRAINIERTES MODELL". Die alten Abschnitte bleiben.
**(1) KALIBRIERUNG — messbar daneben, und die Ursache ist benennbar.**
| P(break) | n | vorhergesagt | real |
|---|---|---|---|
| 019 | 56 | 15,1 % | **53,6 %** |
| 2034 | 199 | 29,8 % | 43,2 % |
| 3549 | 414 | 42,2 % | 56,8 % |
| 5064 | 180 | 54,1 % | 61,7 % |
| **65100** | 29 | **69,0 %** | **17,2 %** ⚠ invertiert |
**Die Basisrate ist gewandert** — Training **37,8 %**, live **53,2 %**, und das
**stabil über vier volle Tage** (03.08. 51,4 % · 04.08. 54,1 % · 05.08. 56,4 % ·
06.08. 53,8 %, je n=122276). Das ist kein Rauschen. Ein Modell, dessen Niveau an
einer 37,8-%-Basisrate verankert ist, muss in einem 53-%-Regime systematisch zu
niedrig sagen — genau das steht in der Tabelle. Dieselbe Signatur wie beim alten
Modell (alle unteren Klassen „zu niedrig", oberste invertiert).
**(2) TRENNSCHÄRFE — NICHT entscheidbar, und das ist der wichtigere Befund.**
| | |
|---|---|
| AUC roh (n=878) | 0,541 |
| **AUC entkoppelt (n=87)** | **0,556** |
| **95-%-Bootstrap-KI** | **[0,434 … 0,674]** |
Das Intervall enthält **den Zufall (0,50) UND die Messlatte (0,654)**. Es ist
also **nicht** belegt, dass das Modell schlechter rankt als beim Nachtrainieren —
es ist nur nichts belegt. „AUC 0,54" als Durchfall zu lesen wäre falsch.
⚠⚠ **DIE FÄLLIGKEITSBEDINGUNG ZÄHLTE DIE FALSCHE GRÖSSE — behoben.** Sie stand
auf **800 ROHEN** Vorhersagen; die sind nicht unabhängig (dieselbe Position
pendelt vielfach um dasselbe Level). Aus 878 rohen werden **87 entkoppelte**
die Bedingung hat die Beweismenge um **rund das Zehnfache** überschätzt und die
Messung als „fällig" gemeldet, obwohl sie nichts entscheiden konnte. Die
Abhängigkeit war im Skript seit jeher dokumentiert („entkoppelte Sicht"), nur die
Fälligkeit zählte daran vorbei. **Jetzt: 350 ENTKOPPELTE** (halbiert die
KI-Breite 0,12 → 0,06, erst dann sind 0,50 und 0,65 trennbar; bei ~17/Tag ≈ 3
Wochen). Stand: **87/350**.
⚠ Verwandt mit der Bootstrap-Grenze bei `backtest_cost_gate.ci95`
(„überlappende Beobachtungen → effektives n ist ~n/24") — dieselbe Klasse Fehler,
diesmal in einer Fälligkeitsbedingung statt in einem Konfidenzintervall.
**Operativ kein Notfall:** `auto_sr_close = false` seit 06.08. — das Modell
schliesst **keine** Trades. Es speist nur den Hinweis in der App, die
Chart-Linien, den Copilot-Kontext und `stop_approach`. Die Fehlkalibrierung
kostet damit aktuell **kein Geld**, sie macht nur die Anzeige zu pessimistisch
(sie sagt „Level hält", wo es in 53 % der Fälle bricht).
**Vor einem erneuten Nachtrainieren:** der letzte Versuch hat live auch nicht
gehalten. Der Befund zeigt auf das **Niveau** (Basisrate/Achsenabschnitt), nicht
zwingend auf die Rangfolge — ein drittes Fitten derselben Bauart würde denselben
Weg gehen. Naheliegender wäre, das Niveau **laufend** an die jüngste Basisrate zu
koppeln oder ein Vola-/Regime-Merkmal aufzunehmen. **Nicht gebaut, nicht
gemessen.**
## ⚠⚠ LIVE-CODE HING AN EINEM BACKTEST-SKRIPT — behoben 2026-08-07
**Befund:** `core/engine.py` (`squeeze_monitor`) und `weekly_review.py` importierten