M15-Karte: Bias war ein Richtungsgeber - korrigiert zum Veto (v=155)

Tagestest an 07.08. (test_m15_karte_tag.py) deckt einen strukturellen Fehler in
meiner eigenen Karte auf.

Rohzahlen: 92 M15-Bars, davon 46 (50 %) auf GRUEN. Entkoppelt auf
zusammenhaengende Bloecke bleiben 13 Setup-Episoden - und ALLE 13 waren LONG,
an einem Tag, der von 78,399 auf 77,383 FIEL (-1,016 $). Trefferquote 0 %,
OeR -0,753, SumR -9,79.

Ursache ist nicht Pech, sondern ein Denkfehler: gemessen ist "gegen den
M30-Trend zu handeln halbiert den Edge" - eine VERBOTS-Aussage. Ich hatte
daraus "M30+H1 einig -> Bias LONG" gemacht, also einen Richtungsgeber. Exakt
der Fehler, wegen dem die Gesamtempfehlung entfernt wurde (Richtung dort 48-51 %
Treffer). Die nachlaufende EMA zeigt im Trendtag stur in die alte Richtung -
dokumentiert seit analyze_signal_live.py.

Korrigiert: das Feld liefert nur noch, welche Richtung VERBOTEN ist
(bias.verboten); bias.richtung ist dauerhaft None. Das Banner nennt keine
Richtung mehr:
  "BEDINGUNGEN OK @ 77,098 - Order ANS LEVEL, nicht zum Markt - SHORT vermeiden"

Zwei weitere Befunde aus demselben Test, offen dokumentiert:
- Das Kosten-Gate blockte 0 von 92 Bars. Auf M15 liegt Spread/ATR bei ~0,10,
  die Schwelle bei 0,32 - das Gate ist dort faktisch dekorativ.
- Die strengere Bias-Variante (M30 UND H1) unterscheidet sich kaum von der
  laxen (46 gegen 47 gruene Bars) - die Zusatzstrenge kostet nichts, bringt
  aber auch nichts.

Auch ein Fehler in meinem TEST, dokumentiert: der erste Lauf zaehlte 46
fortlaufende Bars als 46 Trades und meldete 7 % Trefferquote - eine Bewegung
46-mal gezaehlt. Erst die Entkopplung auf Episoden macht die Zahl lesbar.

WARNUNG zur Beweiskraft: EIN Tag ist kein Edge-Nachweis. Belastbar ist hier
nicht die Trefferquote, sondern der MECHANISMUS - und der ist aus zwei
Halbjahren dokumentiert.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-08-08 23:14:47 +02:00
co-authored by Claude Opus 5
parent e5adfc9757
commit 30830d76b1
4 changed files with 232 additions and 16 deletions
+20 -4
View File
@@ -4034,12 +4034,28 @@ class TradingEngine:
atr15 = (ws.get("tf_atr") or {}).get("M15")
out: dict = {"atr_m15": round(atr15, 4) if atr15 else None}
# ── 1) BIAS — der einzige belegte Filter (M30-Gegen-Trend: Edge ×2)
# ── 1) VETO statt BIAS ────────────────────────────────────────
# ⚠⚠ KORREKTUR 2026-08-08, nach dem Tagestest an 07.08.: der erste
# Entwurf machte aus „M30+H1 einig" eine RICHTUNG („Bias LONG") und
# erzeugte damit 13 LONG-Episoden an einem Tag, der 1,02 $ FIEL —
# Trefferquote 0 %, ØR 0,753. Der Fehler ist strukturell, nicht
# Pech: gemessen ist **„gegen den M30-Trend halbiert den Edge"**,
# also eine VERBOTS-Aussage. Daraus einen Richtungsgeber zu machen
# ist exakt der Fehler, wegen dem die Gesamtempfehlung entfernt
# wurde (Richtung dort 4851 % Treffer = Münzwurf).
# Die nachlaufende EMA zeigt im Trendtag stur in die alte Richtung —
# dokumentiert seit `analyze_signal_live.py` (06.08.).
# Jetzt liefert das Feld nur noch, welche Richtung VERBOTEN ist.
h30 = ws.get("htf_trend"); h1 = ws.get("h1_trend")
einig = (h30 and h1 and h30 == h1)
verboten = None
if h30:
verboten = "SHORT" if h30 == "LONG" or h30 == 1 else "LONG"
out["bias"] = {"m30": h30, "h1": h1,
"richtung": h30 if einig else None,
"einig": bool(einig)}
"verboten": verboten,
"einig": bool(h30 and h1 and h30 == h1),
# ⚠ `richtung` bleibt None — bewusst KEINE
# Richtungsaussage mehr (s. o.).
"richtung": None}
# ── 2) KOSTEN auf M15 — hier gewinnt M15 wirklich (gemessen 0,104
# gegen M5 0,193). Schwellen wie beim M5-Chip (0,20 / 0,32).