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:
co-authored by
Claude Opus 5
parent
dd7c4e6b15
commit
30c8616280
@@ -1,68 +0,0 @@
|
||||
# Gesamtempfehlung (Verdict-Panel)
|
||||
|
||||
Grafischer Empfehlungsbereich ganz oben im Mobile-Dashboard (`web/`), der die
|
||||
Module zu **einer** Aussage zusammenfasst.
|
||||
|
||||
## Wer berechnet was
|
||||
|
||||
- **Backend (`core/engine.py` → `_verdict`)** baut die Aggregation und legt sie
|
||||
als `verdict` in den Snapshot (`/api/snapshot`, `/ws`). Eine Quelle der
|
||||
Wahrheit — das Frontend rendert nur.
|
||||
- **Frontend (`web/app.js` → `renderVerdict`)** zeichnet Ring, Bias-Balken und
|
||||
Modul-Chips. Markup in `web/index.html` (`#card-verdict`), Stil in
|
||||
`web/style.css` (`.vd-*`).
|
||||
|
||||
## Logik
|
||||
|
||||
**Headline = die validierte Welle** (`wave_signal`) — das einzige Modul mit per
|
||||
Backtest belegtem Edge. Sie bestimmt LONG/SHORT/WARTEN und die Order-Freigabe.
|
||||
Die übrigen Module bilden nur einen **gewichteten Konsens** (Anzeige, kein
|
||||
Eingriff in die Order-Logik).
|
||||
|
||||
Votes je Modul: `+1` LONG · `−1` SHORT · `0` neutral. Gewichte:
|
||||
|
||||
| Modul | Gewicht | Quelle |
|
||||
|-------|---------|--------|
|
||||
| Welle | **3,0** | `wave_signal.signal` (validierter Edge) |
|
||||
| M30 | 1,5 | `wave.htf_trend` (EMA12/50 der M30 — exakt das Signal, das die Welle nutzt) |
|
||||
| H1 | 1,5 | `wave.h1_trend` (EMA12/50 der H1) |
|
||||
| KI-Copilot | 1,0 *(nur mit Bias)* | `agent.advisory.bias` — ohne advisory/Bias **Gewicht 0** |
|
||||
| Elliott/FVG | 1,0 *(nur mit Ziel)* | Richtung zum `elliott.target` — ohne Ziel **Gewicht 0** |
|
||||
| Squeeze | 2,0 *(nur `active`)* | `wave.squeeze` — armed/keine Kompression **Gewicht 0** |
|
||||
|
||||
(TradersUnion wurde 2026-07-06 aus dem Konsens entfernt — nur noch Anzeige.)
|
||||
|
||||
```
|
||||
bias = Σ(gewicht · vote) / Σ(gewicht) → −1 … +1
|
||||
```
|
||||
|
||||
⚠ **Stimmberechtigt sind nur Module mit Aussage** (Fix 2026-07-15): Module ohne
|
||||
anwendbares Signal (Squeeze ohne Ausbruch, Elliott ohne Ziel, KI aus) bekommen
|
||||
Gewicht 0 und stehen NICHT im Nenner — vorher dämpfte z. B. das fast immer
|
||||
neutrale Squeeze-Gewicht (2,0) die Nadel dauerhaft um ~×0,8 Richtung Mitte.
|
||||
„Flach" bei Welle/M30/H1 bleibt dagegen eine ECHTE Neutral-Stimme (mit Gewicht).
|
||||
|
||||
`bias` steuert die **Nadel** im Balken (−1 = ganz SHORT/links, +1 = ganz
|
||||
LONG/rechts: `left% = (bias+1)/2·100`). `agree/total` = wie viele der **anderen**
|
||||
stimmberechtigten Module (ohne die Welle selbst — die zählte sich bis 2026-07-15
|
||||
mit) die Headline-Richtung teilen. Der **Konfidenz-Ring** zeigt `wave.conf_pct`
|
||||
als conic-gradient in Richtungsfarbe.
|
||||
|
||||
> ⚠ Wichtig: Für M30/H1 werden die **EMA12/50-Signale der Welle** genutzt
|
||||
> (`htf_trend`/`h1_trend`), NICHT das Regressions-Winkelmaß `market.angles` —
|
||||
> die beiden können sich widersprechen, das Panel muss zur Empfehlung passen.
|
||||
|
||||
## Snapshot-Feld `verdict`
|
||||
|
||||
```json
|
||||
{
|
||||
"headline": "SHORT", "conf": 90, "bias": -1.0, "agree": 3, "total": 3,
|
||||
"votes": [{"name": "Welle", "vote": -1, "weight": 3.0, "detail": "SHORT · 90%"}, …]
|
||||
}
|
||||
```
|
||||
|
||||
## Pflege
|
||||
|
||||
Neues Modul ins Panel → Vote/Gewicht in `_verdict` ergänzen; das Frontend rendert
|
||||
`votes` generisch. Bei JS/CSS-Änderung Asset-Version `v=N` in `index.html`
|
||||
hochzählen. Siehe `CLAUDE.md`.
|
||||
Reference in New Issue
Block a user