Gesamtempfehlung entfernt (User-Entscheidung 2026-08-08)

"Funktioniert so leider nicht, entferne es komplett - wir bauen etwas Neues."

Entfernt: Headline, Konfidenz-Ring, Bias-Nadel, Modul-Chips, Konsens-Zeile,
Block-Gruende. Dazu renderVerdict(), die zugehoerigen 24 CSS-Regeln,
docs/gesamtempfehlung.md und die Snapshot-Felder `verdict` + `block_mix`.

Die Aggregation war reine ANZEIGE - vor dem Loeschen belegt: die Order-Logik
haengt an `wave_signal` bzw. `checklist`, nicht am Verdict (Blinken app.js:821,
Order-Dialog 1312/1366/1391). Orders, Alarme und das gemessene Veto
(-6,60 EUR/Lot) sind unberuehrt.

BEHALTEN (sassen nur in derselben Karte, je eigene Beleglage, User-Entscheidung):
  Zeitebenen-Ampel  #wave-turns  - war aus der Welle-Karte dorthin verschoben
  Erwartete Spanne  #kx-cone     - out-of-sample kalibriert, trifft real ~77 %
  Selbstkalibrierung #kx-selfcal - misst das Wellen-Signal, das bleibt
  HL-Kontext        #hl-note     - lief in renderVerdict mit, schreibt aber in
                                   die Meldungen-Karte
Sie stehen jetzt in der neuen, schlanken Karte "Marktkontext" (#card-kontext).
IDs von vd- auf kx- umbenannt, damit keine tote Nomenklatur zurueckbleibt.

verdict_votes wird WEITER geloggt (User-Entscheidung): `_verdict()` bleibt
bestehen und laeuft 1x/min fuer die Telemetrie sowie fuer den optionalen
MQL5-Konsens-Pfeil. Aus dem 1-s-Snapshot ist es raus - dort waere es Arbeit fuer
eine Anzeige, die es nicht mehr gibt.

Verifiziert: node --check gruen, 34 Tests gruen, 0 verwaiste $("id")-Zugriffe
(die zwei Treffer 'neu'/'x' stehen in Kommentaren), CSS-Klammern ausgeglichen
(287/287), @media und @keyframes intakt. Zeile 1572 (_SQM_VERDICT[d.verdict])
ist der SQUEEZE-MONITOR-Verdict und bleibt.

Asset-Version v=152.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-08-08 14:12:27 +02:00
co-authored by Claude Opus 5
parent dd7c4e6b15
commit 30c8616280
5 changed files with 98 additions and 385 deletions
+25 -41
View File
@@ -6,7 +6,7 @@
<meta name="theme-color" content="#0d1117">
<title>Oil · MT5</title>
<link rel="manifest" href="manifest.json">
<link rel="stylesheet" href="style.css?v=151">
<link rel="stylesheet" href="style.css?v=152">
</head>
<body>
<!-- Modul-Menü (ganz oben) -->
@@ -78,44 +78,28 @@
</section>
<!-- Gesamtempfehlung (aus allen Modulen aggregiert) -->
<section class="card wide" id="card-verdict">
<h2 title="Aggregation aller Module zu einer Empfehlung. Die HEADLINE (Welle) steuert die Order, alles darunter ist Konsens-Anzeige. Gemessen an 1.071 Live-Episoden trifft die Richtung zu 4851 % — die Karte taugt als Veto (gegen das Signal zu handeln kostet gemessen 6,60 € je Lot), nicht als Prognose.">Gesamtempfehlung</h2>
<div class="vd-head">
<!-- ⚠ Der Ring ist ein SCORE, keine Trefferwahrscheinlichkeit. Gemessen
(`analyze_verdict_calibration.py`) ist conf_pct nicht kalibriert und
in H2 sogar invertiert — die Beschriftung sagt das jetzt auch. -->
<div class="vd-ring" id="vd-ring"
title="Aggregierter Score aus den Modulen — KEINE Trefferwahrscheinlichkeit. Gemessen ist conf_pct nicht kalibriert (in der zweiten Stichprobe sogar invertiert): hohe Werte bedeuten starken Trend + Konfluenz, und das sind im Chop-Regime gerade die Überdehnungen vor der Wende.">
<span class="vd-ring-in"><b id="vd-conf"></b><i class="vd-ring-lbl">Score</i></span>
</div>
<div class="vd-main">
<div class="vd-signal" id="vd-signal" title="Die eigentliche Empfehlung samt Zeitebene — sie steuert die Order. Bei WARTEN steht dahinter, was noch fehlt.">◌ —</div>
<div class="vd-consensus" id="vd-consensus" title="Wie viele der stimmberechtigten Module dieselbe Richtung sehen, plus die aktuellen Handelskosten (Spread geteilt durch ATR)."></div>
</div>
</div>
<!-- Warum WARTEN? Verteilung der blockierenden Gates über den heutigen Tag.
Ohne die Zeile war „warum gab es so wenige Empfehlungen?" nur per
DB-Abfrage zu beantworten (real 06.08.: 6 von 646 Zeilen ohne Block). -->
<div class="vd-blocks" id="vd-blocks"></div>
<!-- SELBST-KALIBRIERUNG (2026-08-06): die Karte zeigt ihre eigene
Trefferquote. Muster wie `pbreak_predictions` — das hat den Ausfall des
P(break)-Modells LIVE aufgedeckt, was kein Backtest konnte. ⚠ Gegen
50 % zu lesen, nicht gegen 0. -->
<div class="vd-selfcal dim" id="vd-selfcal"></div>
<div class="vd-meter">
<span class="vd-end short">SHORT</span>
<div class="vd-track"><div class="vd-needle" id="vd-needle"></div></div>
<span class="vd-end long">LONG</span>
</div>
<div class="vd-modules" id="vd-modules" title="Die Module mit Stimmrecht. Die Zahl im Chip ist das Gewicht, graue Chips schweigen gerade. Dauerhaft entmachtete Module werden hier nicht mehr gezeigt."></div>
<!-- Zeitebenen-Ampel (M1/M5/M15/M30/H1), aus der Welle hierher verschoben -->
<div class="tf-turns" id="wave-turns" title="EMA-Stand je Zeitebene: grün aufwärts, rot abwärts. Eine frische Kreuzung blinkt. Reine Anzeige."></div>
<!-- Erwartete Spanne, komprimiert (User-Vorgabe 2026-08-05; die eigene Karte
`#card-cone` ist dafür entfallen). ⚠ STREUUNG, nicht Richtung — deshalb
bewusst UNTER der Bias-Nadel und neutral gefärbt, damit sie nicht als
Richtungsaussage gelesen wird. Beschriftet mit der REAL gemessenen
Abdeckung, nicht mit dem Nennwert 80 %. -->
<div class="vd-cone" id="vd-cone"></div>
<!-- ══════════════════════════════════════════════════════════════════
GESAMTEMPFEHLUNG ENTFERNT (2026-08-08, User: „funktioniert so leider
nicht, entferne es komplett - wir bauen etwas Neues").
Weg sind: Headline, Konfidenz-Ring, Bias-Nadel, Modul-Chips,
Konsens-Zeile und die Block-Gruende. Die Aggregation war reine
Anzeige - die Order haengt an `wave_signal`, nicht am Verdict.
GEBLIEBEN sind drei Dinge, die dort nur geparkt waren und je eine
eigene, unabhaengige Beleglage haben (s. CLAUDE.md).
══════════════════════════════════════════════════════════════════ -->
<section class="card wide" id="card-kontext">
<h2 title="Drei unabhaengige Kontext-Anzeigen. KEINE Empfehlung und keine Richtungsaussage - die Aggregation zu einer Gesamtempfehlung wurde am 08.08. entfernt.">Marktkontext</h2>
<!-- Zeitebenen-Ampel (M1/M5/M15/M30/H1) -->
<div class="tf-turns" id="wave-turns" title="EMA-Stand je Zeitebene: gruen aufwaerts, rot abwaerts. Eine frische Kreuzung blinkt. Reine Anzeige, kein Signal."></div>
<!-- Erwartete Spanne. ⚠ STREUUNG, nicht Richtung - deshalb neutral
gefaerbt. Beschriftet mit der REAL gemessenen Abdeckung (~77 %),
nicht mit dem Nennwert 80 %. Eine von nur zwei out-of-sample
kalibrierten Komponenten des Projekts. -->
<div class="kx-cone" id="kx-cone"></div>
<!-- SELBST-KALIBRIERUNG: die Trefferquote der Empfehlung aus
`rec_outcomes`. Misst das WELLEN-Signal, das bleibt.
⚠ Gegen 50 % zu lesen, nicht gegen 0. -->
<div class="kx-selfcal dim" id="kx-selfcal"></div>
</section>
<!-- Meldungen (ex-Position + Wellen-Meldungen; Welle-Karte entfällt) -->
@@ -143,7 +127,7 @@
</section>
<!-- Karte „Erwartete Spanne" ENTFERNT 2026-08-05 (User-Vorgabe) — die Kernwerte
stehen jetzt komprimiert in der Gesamtempfehlung (`#vd-cone`). Backend
stehen jetzt in der Karte „Marktkontext" (`#kx-cone`). Backend
(`core/cone.py`, Snapshot `cone`, MT5-Export `CN;…`) ist unverändert aktiv. -->
<!-- Trailing (Dashboard-Kachel ausgeblendet 2026-07-22, User-Vorgabe; Backend/
@@ -330,6 +314,6 @@
</div>
<div id="toast" class="toast hidden"></div>
<script src="app.js?v=151"></script>
<script src="app.js?v=152"></script>
</body>
</html>