Verdict: M30/H1 bekommen Gewicht 0 ohne Aussage (Bias-Fix Teil 3)

Anlass war die User-Frage "H1 aus der Gesamtempfehlung entfernen, da wir
jetzt mit M30 arbeiten?". Antwort NEIN, aber die Frage hat einen echten
Defekt freigelegt.

Zur Praemisse: auf M30 umgestellt wurde die S/R-LEVEL-QUELLE, nicht die
Zeitebenen-Logik. H1 war nie Basis-TF (tf_max=M30), sondern immer Kontext.

Zur vermuteten Doppelzaehlung - gemessen an verdict_votes (n=7.074):
bei gerichteter Welle stimmt M30 nur zu 14,9 % mit ihr ueberein, H1 zu
47 %, M30 und H1 untereinander nur zu 33,8 %. Keine redundanten Stimmen
(Reversals heben den M30-Filter bewusst auf, und M30 ist meist gar nicht
gerichtet). H1 fliesst zwar auch als Konfluenz-Bonus in die Konfidenz -
aber in eine ANDERE Kennzahl (Ring vs. Nadel), nicht zweimal in dieselbe.

DER ECHTE DEFEKT: add("M30", ...) und add("H1", ...) hatten Gewicht 1,5
UNBEDINGT, auch bei Stimme 0. Damit derselbe Fehler wie beim Wellen-Modul
(Bias-Fix Teil 2 vom 30.07.), hier uebersehen. Eine 0-Stimme heisst
"EMA-Abstand im Totband" = keine Aussage, nicht "neutral" - mit vollem
Gewicht im Nenner zog sie die Bias-Nadel dauerhaft zur Mitte.

Gemessen an 7.074 Verdicts: M30 ist in 57,9 % der Faelle ohne Aussage
(H1 nur 1,8 %). Oe-Bias-Betrag 0,371 -> 0,441, Median-Verstaerkung 1,30x,
in 33,3 % der Zeilen deutlich staerkere Nadel.

Fix: 1.5 if vote != 0 else 0.0 fuer beide. `others` filtert bereits auf
weight>0, die "x/y einig"-Zaehlung zieht damit automatisch mit.

Live verifiziert: M30 "flach" -> Gewicht 0,00, bias -1,5/4,5 = -0,333
statt -1,5/6,0 = -0,250 (genau die gemessene 1,33x-Verstaerkung),
agree 3/5 statt 3/6.

REINE ANZEIGE - die Order-Logik haengt an der Wellen-Headline, nicht am
Bias.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-07-31 13:43:38 +02:00
co-authored by Claude Opus 5
parent fe5c2aae0a
commit 23c68e8837
2 changed files with 39 additions and 8 deletions
+16 -3
View File
@@ -2237,11 +2237,24 @@ class TradingEngine:
add("Welle", wv, 3.0 if wv != 0 else 0.0,
f"{wsig or ''} · {(wave_signal or {}).get('conf_pct', 0)}%")
# 2/3) M30 / H1 — die EMA-Signale, die die Welle tatsächlich nutzt
# 2/3) M30 / H1 — die EMA-Signale, die die Welle tatsächlich nutzt.
# ⚠ Gewicht 0 OHNE Aussage (Fix 2026-07-31) — dieselbe Regel wie bei Welle,
# Squeeze, Elliott und KI; bei der Verdict-Überarbeitung am 30.07. hier
# übersehen. Eine 0-Stimme bedeutet „EMA-Abstand im Totband" = keine Aussage,
# nicht „neutral" — mit vollem Gewicht im Nenner zog sie die Bias-Nadel
# dauerhaft zur Mitte.
# GEMESSEN an 7.074 geloggten Verdicts (`verdict_votes`): **M30 ist in 57,9 %
# der Fälle ohne Aussage** (H1 nur in 1,8 %) → Ø-Bias-Betrag 0,371 → **0,441**,
# Median-Verstärkung **1,30×**, in **33,3 %** der Zeilen deutlich stärkere Nadel.
# ⚠ Anlass war die User-Frage „H1 aus der Gesamtempfehlung entfernen?". Die
# Antwort ist NEIN — die vermutete Doppelzählung ist gemessen schwach (bei
# gerichteter Welle stimmt M30 nur zu 14,9 % mit ihr überein, H1 zu 47 %; M30
# und H1 untereinander nur zu 33,8 %). Der eigentliche Defekt war dieser hier.
# REINE ANZEIGE — die Order-Logik hängt an der Wellen-Headline, nicht am Bias.
m30 = int((wave_snap or {}).get("htf_trend", 0) or 0)
h1 = int((wave_snap or {}).get("h1_trend", 0) or 0)
add("M30", m30, 1.5, word(m30))
add("H1", h1, 1.5, word(h1))
add("M30", m30, 1.5 if m30 != 0 else 0.0, word(m30))
add("H1", h1, 1.5 if h1 != 0 else 0.0, word(h1))
# 4) TradersUnion ENTFERNT aus dem Verdict-Konsens (User-Vorgabe 2026-07-06):
# lagt + nicht backtestbar + Standard-Indikator-Konfluenz = kein Edge. Bleibt