Konsens-Zeile korrigiert: falscher Bezug + Nenner passte nicht zu den Chips
User-Fund: "Modul-Konsens: stark LONG · 4/4 Module fuer WARTEN" - dabei sind
9 Module sichtbar. Zwei echte Fehler.
(a) FALSCHER BEZUG: der Text lautete "... Module fuer ${sig}" mit der
HEADLINE als Bezug. Seit dem ref-Fix vom 30.07. zaehlt `agree` bei WARTEN
aber die Uebereinstimmung mit der BIAS-Richtung - deshalb stand dort
"stark LONG ... fuer WARTEN". Die Richtung kommt jetzt als verdict.ref_dir
vom Backend, statt im Frontend aus `bias` nachgebaut zu werden (dort galt
ein +-0,05-Totband, im Backend `bias > 0` - die Nachbildung waere am Rand
auseinandergelaufen; dieselbe Sorte Divergenz wie die fuenf
Deployment-Drift-Faelle desselben Tages).
(b) ANDERER NENNER ALS DIE CHIPS: `total` zaehlt nur Module MIT Aussage
(Gewicht>0, ohne die Welle). Nach den Gewichts-Fixes des Tages schweigen
deutlich mehr Module -> "4/4" bei 9 sichtbaren Chips. Neu ist
verdict.silent (Module mit Gewicht 0) dabei, sodass die Summe aufgeht.
Live verifiziert: "Modul-Konsens: leicht LONG · 3 von 5 stimmberechtigten
fuer LONG (4 ohne Aussage)" - 5 + 4 = 9. Sonderfall "kein Modul mit klarer
Aussage" abgedeckt. v=125.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
a1f471f163
commit
df092674cb
@@ -1417,6 +1417,21 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
|
||||
sobald dort jemand Logging ergänzt (Phantom-Fehler im ~5-s-Takt).
|
||||
✅ **Sauber:** Frontend↔Backend (0 verwaiste Element-IDs), alle übrigen
|
||||
Verdict-Gewichte, alle anderen Config-Schlüssel.
|
||||
⚠ **KONSENS-ZEILE korrigiert (2026-07-31, User-Fund „4/4 Module — dabei haben wir
|
||||
doch 9"):** In `vd-consensus` steckten ZWEI Fehler.
|
||||
**(a) Falscher Bezug:** der Text lautete `… Module für ${sig}` mit der HEADLINE als
|
||||
Bezug. Seit dem `ref`-Fix vom 30.07. zählt `agree` bei WARTEN aber die Übereinstimmung
|
||||
mit der **Bias-Richtung** — deshalb stand real dort „stark LONG · 4/4 Module für
|
||||
**WARTEN**". Die Richtung kommt jetzt als **`verdict.ref_dir`** vom Backend, statt im
|
||||
Frontend aus `bias` nachgebaut zu werden (dort galt ein ±0,05-Totband, im Backend
|
||||
`bias > 0` — die Nachbildung wäre am Rand auseinandergelaufen; dieselbe Sorte
|
||||
Divergenz wie die fünf Deployment-Drift-Fälle desselben Tages).
|
||||
**(b) Anderer Nenner als die sichtbaren Chips:** `total` zählt nur Module MIT Aussage
|
||||
(Gewicht > 0, ohne die Welle). Nach den Gewichts-Fixes des Tages schweigen deutlich
|
||||
mehr Module → „4/4" bei 9 sichtbaren Chips. Neu ist **`verdict.silent`** (Module mit
|
||||
Gewicht 0) dabei, sodass die Summe aufgeht. Live: „**3 von 5 stimmberechtigten für
|
||||
LONG (4 ohne Aussage)**" — 5 + 4 = 9 ✅. Bei gar keiner Aussage: „kein Modul mit
|
||||
klarer Aussage". v=125.
|
||||
⚠ **Offen (dokumentiert, nicht geändert):**
|
||||
(0) **Wellen-Konfidenz aus `_draw_levels` speisen** statt aus dem Misch-Set — würde
|
||||
den −12-Abzug tatsächlich auslösen, also Konfidenz senken und das 55%-Gate
|
||||
@@ -1951,7 +1966,7 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
|
||||
Signal → **Hinweis-Dialog „trotzdem eröffnen?"** (überschreibbar). CLOSE bei
|
||||
**negativem** P&L → Sicherheitsabfrage; im Plus/Breakeven direkt. Sonst keine
|
||||
Token-Dialoge (`require_token=false`). Audio braucht 1× Nutzer-Tap.
|
||||
- Asset-Version aktuell **v=124** (in `web/index.html` hochzählen, siehe Workflows).
|
||||
- Asset-Version aktuell **v=125** (in `web/index.html` hochzählen, siehe Workflows).
|
||||
Schriftgrößen 2026-07-24 global **+4px** (2× je +2px auf User-Wunsch; Body-Basis
|
||||
14→18px). ⚠ Betrifft in `style.css` sowohl `font-size:Npx` (71×) ALS AUCH die
|
||||
`font:<weight> Npx/…`-**Shorthand** (3×: `.ms-chip`/`.ms-bos-lbl`/`.sqm-badge` —
|
||||
|
||||
@@ -2390,6 +2390,18 @@ class TradingEngine:
|
||||
"headline": wsig, "conf": (wave_signal or {}).get("conf_pct", 0),
|
||||
"tf": (wave_snap or {}).get("tf"), # Zeitebene, für die die Empfehlung gilt
|
||||
"bias": round(bias, 3), "agree": agree, "total": len(others),
|
||||
# ⚠ `ref_dir` = WORAUF sich `agree` bezieht (Fix 2026-07-31). Bei WARTEN
|
||||
# ist das NICHT die Headline, sondern die Bias-Richtung — das Frontend
|
||||
# beschriftete es vorher mit der Headline und schrieb dadurch
|
||||
# „stark LONG · 4/4 Module für WARTEN". Die Richtung kommt jetzt VON HIER,
|
||||
# statt im Frontend aus `bias` nachgebaut zu werden (dort galt ein
|
||||
# ±0,05-Totband, hier `bias > 0` — die Nachbildung wäre am Rand
|
||||
# auseinandergelaufen; genau die Sorte Divergenz, die heute mehrfach
|
||||
# aufgefallen ist).
|
||||
"ref_dir": "LONG" if ref > 0 else "SHORT" if ref < 0 else None,
|
||||
# Wie viele Module HABEN gerade keine Aussage (Gewicht 0)? Ohne diese Zahl
|
||||
# las sich „4/4" widersprüchlich zu den 9 sichtbaren Chips.
|
||||
"silent": sum(1 for v in votes if not v["weight"]),
|
||||
"votes": votes,
|
||||
}
|
||||
|
||||
|
||||
+22
-4
@@ -121,10 +121,28 @@ function renderVerdict(v, snap) {
|
||||
const tag = cr < 0.20 ? "✅ günstig" : cr <= 0.32 ? "· normal" : "⚠ teuer";
|
||||
costTxt = ` · Kosten ${fmt(cr, 2)}×ATR ${tag}`;
|
||||
}
|
||||
$("vd-consensus").textContent =
|
||||
(sig === "—" ? "keine Daten"
|
||||
: `Modul-Konsens: ${strength} ${dir} · ${agree}/${total} Module für ${sig}`)
|
||||
+ costTxt;
|
||||
// ⚠ Konsens-Zeile korrigiert (2026-07-31). Zwei Fehler waren drin:
|
||||
// (1) „… Module für ${sig}" nahm die HEADLINE als Bezug. Seit dem Fix vom 30.07.
|
||||
// zählt `agree` bei WARTEN aber die Übereinstimmung mit der BIAS-Richtung →
|
||||
// es stand „stark LONG · 4/4 Module für WARTEN". Die Richtung kommt jetzt als
|
||||
// `ref_dir` vom Backend, statt hier aus `bias` nachgebaut zu werden.
|
||||
// (2) `total` zählt nur Module MIT Aussage (Gewicht>0, ohne die Welle) — nach den
|
||||
// Gewichts-Fixes schweigen mehr Module, während 9 Chips sichtbar bleiben.
|
||||
// „4/4" las sich dadurch widersprüchlich. Jetzt steht dabei, wie viele
|
||||
// Module gerade nichts sagen.
|
||||
const refDir = v.ref_dir || null;
|
||||
const silent = typeof v.silent === "number" ? v.silent : null;
|
||||
let consensus;
|
||||
if (sig === "—") {
|
||||
consensus = "keine Daten";
|
||||
} else if (!refDir || !total) {
|
||||
consensus = `Modul-Konsens: ${strength} ${dir} · kein Modul mit klarer Aussage`;
|
||||
} else {
|
||||
consensus = `Modul-Konsens: ${strength} ${dir} · ${agree} von ${total} `
|
||||
+ `stimmberechtigten für ${refDir}`
|
||||
+ (silent ? ` (${silent} ohne Aussage)` : "");
|
||||
}
|
||||
$("vd-consensus").textContent = consensus + costTxt;
|
||||
$("vd-needle").style.left = ((bias + 1) / 2 * 100).toFixed(1) + "%";
|
||||
|
||||
// Modul-Chips
|
||||
|
||||
+2
-2
@@ -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=124">
|
||||
<link rel="stylesheet" href="style.css?v=125">
|
||||
</head>
|
||||
<body>
|
||||
<!-- Modul-Menü (ganz oben) -->
|
||||
@@ -244,6 +244,6 @@
|
||||
<div id="toast" class="toast hidden"></div>
|
||||
|
||||
<script src="lightweight-charts.standalone.production.js?v=114"></script>
|
||||
<script src="app.js?v=124"></script>
|
||||
<script src="app.js?v=125"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user