From 5ddbe070665d81ecd2abdf878f44d34c115fa0d6 Mon Sep 17 00:00:00 2001 From: Axel Hocks Date: Sat, 8 Aug 2026 23:27:40 +0200 Subject: [PATCH] Gate 3 mit Richtungs-Lesart - bedingt auf das Level, keine freie Prognose (v=156) User-Frage: kann die Karte eine Wahrscheinlichkeit fuer steigenden oder fallenden Kurs rechnen? FREI: nein, und das ist gemessen. analyze_reversal.py hat genau das gebaut (logistische Regression, 8 kausale Merkmale, 5 Ereignis-Definitionen): AUC 0,499-0,509 out-of-sample und IN-SAMPLE nur 0,52. Die zweite Zahl ist die entscheidende - das Modell erklaert nicht einmal seine eigenen Trainingsdaten. Kein Overfitting, sondern keine Information vorhanden. Dazu Live-Richtung 48-51 % ueber 1.071 Episoden, Meta-Labeling AUC 0,508/0,479. BEDINGT: ja, und die Zahl ist schon da. P(break) fragt nicht "wohin geht der Kurs", sondern "haelt DIESE Struktur" - bedingt auf ein reales Objekt mit Orders dahinter, AUC 0,65 out-of-sample. Gate 3 formuliert das jetzt aus: Widerstand 77.784 (1,27xATR) -> 56 % Abprall, eher abwaerts Support 77.098 (0,90xATR) -> 65 % Abprall, eher aufwaerts 45-55 % bekommt BEWUSST keine Richtung - dort ist die Zahl ein Muenzwurf, und daraus einen Pfeil zu machen waere derselbe Fehler, den die MQL5-Pfeile schon einmal vermieden haben. Tooltip nennt die Beleglage und die aktuelle Fehlkalibrierung (~7 Pp zu niedrig). Logik mit 6 Faellen geprueft (Widerstand/Support x hoch/niedrig/Muenzwurf). Nebenbefund: node --check hat einen Syntaxfehler gefangen - ein gerades " als schliessendes deutsches Anfuehrungszeichen beendete den String. Genau die in CLAUDE.md dokumentierte Falle; die heute eingebaute Pruefung hat sie sofort gemeldet. Co-Authored-By: Claude Opus 5 --- web/app.js | 29 +++++++++++++++++++++++++++-- web/index.html | 4 ++-- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/web/app.js b/web/app.js index 207064d..63ce7ba 100644 --- a/web/app.js +++ b/web/app.js @@ -193,10 +193,35 @@ function renderM15(s) { const nah = z.filter(x => x.gap_atr15 != null && x.gap_atr15 <= 0.5); const zOk = nah.length > 0; $("m15-zone").className = "m15-item " + (z.length ? (zOk ? "ok" : "warn") : ""); + // ⚠⚠ RICHTUNGS-LESART, aber BEDINGT auf das Level. Eine FREIE Prognose ist + // gemessen unmoeglich (`analyze_reversal.py`: AUC 0,499–0,509 oos und + // **in-sample nur 0,52** — die Merkmale enthalten keine Richtungsinformation; + // Live-Richtung 48–51 % ueber 1.071 Episoden). P(break) fragt dagegen nicht + // „wohin geht der Kurs", sondern „haelt DIESE Struktur?" — bedingt auf ein + // reales Objekt mit Orders dahinter, AUC 0,65 oos. + // ⚠ 45–55 % bekommt BEWUSST keine Richtung: dort ist die Zahl ein Muenzwurf, + // und daraus einen Pfeil zu machen waere genau der Fehler, den die + // MQL5-Pfeile schon einmal vermieden haben. + const lesart = (x) => { + const p = x.p_break, res = x.seite === "res"; + if (p == null) return ""; + if (p >= 45 && p <= 55) return " → unentschieden"; + const bricht = p > 55; + // Widerstand gebrochen = aufwaerts · Widerstand haelt = abwaerts + const auf = res ? bricht : !bricht; + const q = bricht ? `${p} % Bruch` : `${100 - p} % Abprall`; + return ` → ${q}, eher ${auf ? "aufwärts ▲" : "abwärts ▼"}`; + }; $("m15-zone").textContent = z.length - ? "③ " + z.map(x => `${x.seite === "res" ? "Widerstand" : "Support"} ${f(x.level, 3)}` - + ` (${f(x.gap_atr15)}×ATR, Bruch ${x.p_break} %)`).join(" · ") + ? "③ " + z.map(x => `${x.seite === "res" ? "Widerstand" : "Support"} ` + + `${f(x.level, 3)} (${f(x.gap_atr15)}×ATR)${lesart(x)}`).join(" · ") : "③ kein Level in Sicht"; + $("m15-zone").title = "Richtungs-Lesart BEDINGT auf das Level, keine freie " + + "Prognose: eine solche ist gemessen unmöglich (AUC 0,50 out-of-sample und " + + "nur 0,52 in-sample — es steckt keine Richtungsinformation in den Daten). " + + "P(break) fragt stattdessen „hält diese Struktur?“ und ist out-of-sample " + + "kalibriert (AUC 0,65). ⚠ Live derzeit rund 7 Pp zu niedrig — die Abprall-" + + "Quote ist also eher noch etwas optimistisch. 45–55 % bleibt ohne Richtung."; // ── Reichweite (Kegel) — sagt WIE WEIT, nicht wohin ────────────────── // ⚠ REINE GEOMETRIE: passt das Gegenlevel (= das Ziel) noch in das 80-%-Band diff --git a/web/index.html b/web/index.html index aef08c9..fa44fae 100644 --- a/web/index.html +++ b/web/index.html @@ -6,7 +6,7 @@ Oil · MT5 - + @@ -340,6 +340,6 @@ - +