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:
Axel Hocks
2026-07-31 15:37:37 +02:00
co-authored by Claude Opus 5
parent a1f471f163
commit df092674cb
4 changed files with 52 additions and 7 deletions
+12
View File
@@ -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,
}