P(break) Live-Auswertung: Modell haelt nicht - das Gate gatet nicht (B5)
analyze_pbreak_live.py, 2275 ausgewertete Vorhersagen seit 23.07. AUC 0,539 (Backtest-Erwartung 0,71) · entkoppelt 0,443 · M30-Teil 0,399 Trefferquote 58,5 % vs 59,0 % fuer "immer Abprall" -> Ueberschuss -0,5 Pp Kalibrierung: Bucket 0-19 % sagt 8 % voraus, real 39,1 % (Faktor 5); Bucket 65-100 % sagt 74,5 %, real 48,0 % (invertiert) KERNBEFUND: die Bruchrate der GESCHLOSSENEN Gruppe ist bei JEDER Schwelle 38-40 %, identisch zur Basisrate. Es findet live keine Auswahl statt. Bei der ini-Schwelle 0,55 werden 91,2 % aller Beruehrungen geschlossen -> der "P(break)-gegatete Close" ist faktisch der pauschale S/R-Close, und DER ist 2x gemessen und verworfen (backtest_srclose.py). Erklaert die kontrafaktische Messung vom Vortag (-8 EUR/Trade, 43 % zu frueh). Pipeline gegen das Training geprueft, KEIN Bug: dist in beiden entry-basiert, mom6/mom3 in beiden am Touch-Bar, confirm/reject dieselbe +-0,5xATR-Definition, Timeout zaehlt in beiden als Abprall. Plausibelste Ursache: andere Stichproben-Population (2275 roh -> 307 entkoppelt, live dominieren Chop-am-Level-Faelle). Entlastet das Modell aber nicht - entkoppelt ist die AUC sogar schlechter. TOUCH-ZAHL (User-Idee): auf Live-Daten in BEIDEN Haelften bestaetigt, aber mit Umkehr - 1. Beruehrung 38,3/41,7 %, 4. 45,1/47,4 % (monoton, +6/+4 Pp), aber 5.+ faellt auf 37,8/41,8 % zurueck (unter Basis, groesste Gruppe). Umgekehrtes U: 2-4 Beruehrungen machen das Level muerbe, ab 5 in 30 min ist es eine Range und haelt. Das Modell sieht davon nichts (~23 % konstant) -> echte orthogonale Information. Belastbarkeit begrenzt (Haelften nur 4 Tage auseinander, n=82-139). Naechster Schritt: als 5. Merkmal in backtest_srclose_prob.py aufnehmen, ueber 34.771 Touches / 2 Halbjahre neu fitten. Empfehlung: auto_sr_close=false. Eine reine Schwellensenkung repariert es nicht (aendert die Anzahl, nicht die Auswahl). Reminder: Punkt erledigt, Wiedervorlage als pbreak_accuracy_v2 (800 Vorhersagen ab 01.08., nach einem Nachtraining). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
f81cc63dc7
commit
92995b08d7
+16
-8
@@ -50,14 +50,22 @@ def _days_since(iso: str) -> float:
|
||||
# cmd = was zu tun ist, wenn fällig
|
||||
CHECKS = [
|
||||
{
|
||||
"key": "pbreak_accuracy",
|
||||
"title": "P(break)-Prognose-Genauigkeit auswerten",
|
||||
"why": "Seit 2026-07-23 wird jede Level-Vorhersage mitgeloggt und gegen den "
|
||||
"echten Ausgang geprüft. Zeigt, ob das Modell live so trifft wie im "
|
||||
"Backtest (AUC 0,72) — und ob die M30-Umstellung es verbessert hat.",
|
||||
"have": lambda: _q("SELECT COUNT(*) FROM pbreak_predictions WHERE outcome IS NOT NULL"),
|
||||
"need": 500, "unit": "ausgewertete Vorhersagen",
|
||||
"cmd": "GET /api/pbreak_accuracy?period=all · history.pbreak_accuracy()",
|
||||
# ERLEDIGT 2026-07-31 (analyze_pbreak_live.py, 2275 Vorhersagen): das Modell
|
||||
# hält live NICHT — AUC 0,539 statt 0,71, Kalibrierung sagt 8 % wo 39 %
|
||||
# eintreten, und die Bruchrate der geschlossenen Gruppe ist bei JEDER
|
||||
# Schwelle ~38 % → das Gate gatet nicht. Wiedervorlage mit HÖHERER Schwelle,
|
||||
# damit ein evtl. nachtrainiertes Modell auf frischen Daten geprüft wird.
|
||||
"key": "pbreak_accuracy_v2",
|
||||
"title": "P(break) erneut auswerten (nach Nachtraining)",
|
||||
"why": "Erste Auswertung 2026-07-31 fiel durch (AUC 0,539, Gate ohne "
|
||||
"Trennschärfe). Offene Baustelle: Touch-Zahl als 5. Merkmal in "
|
||||
"backtest_srclose_prob.py aufnehmen und neu fitten (live in beiden "
|
||||
"Hälften +6/+4 Pp für die 2.–4. Berührung, 5.+ fällt zurück). "
|
||||
"Danach mit frischen Live-Daten gegenprüfen.",
|
||||
"have": lambda: _q("SELECT COUNT(*) FROM pbreak_predictions "
|
||||
"WHERE outcome IS NOT NULL AND ts >= strftime('%s','2026-08-01')"),
|
||||
"need": 800, "unit": "Vorhersagen seit 01.08.",
|
||||
"cmd": "python analyze_pbreak_live.py",
|
||||
},
|
||||
{
|
||||
"key": "verdict_votes",
|
||||
|
||||
Reference in New Issue
Block a user