Gesamtpruefung 2026-08-11: drei Defekte behoben
Zweiter vollstaendiger Durchlauf nach docs/review-prompt.md.
BEFUND 1: rec_outcomes war seit dem Einbau (06.08.) still tot - 0
Zeilen in 5 Tagen. _run_analysis las s.get("pb_feats"), aber s ist der
MT5Data-Snapshot; pb_feats lebt im Wave-Snapshot. _atr also immer 0,0
und die Schreibbedingung nie erfuellt. Kein NameError (ruff sieht
nichts), und das umgebende except loggt auf DEBUG. Aufgefallen nur,
weil die Tabelle mit 0 Zeilen neben ihren Schwestern stand.
Generalisiert als measurement_reminder.telemetrie_puls(): jede
Telemetrie-Tabelle muss einen Puls haben. Erster Lauf meldet genau
diesen Fund, alle uebrigen gruen.
BEFUND 2: der Divergenz-Waechter war selbst driftend. Abschnitt A
verglich gegen 43 % WARTEN - seit 05.08. ausdruecklich ungueltig (das
misst _build allein); richtig sind 80,5 %. Und entry_room galt als
"live-only", obwohl es seit 04./05.08. modelliert wird.
A: +50,8 Pp Warnung -> +13,3 Pp OK. B: 63,9 % -> 5,0 %.
BEFUND 3: P(break) ist wieder kalibriert (Delta -1,7 Pp nach +14,3 Pp
am 07.08.) - stuetzt den Schluss, dass die gewanderte Basisrate ein
Zeitraum-Effekt war.
Sauber: alle Standardpruefungen, 0 fehlende Frontend-IDs, mt5_lock,
Broker-Zeit, Race-Klasse. Performance: Snapshot-Median 15,9 ms, alle
heissen Abfragen ueber Index - keine Optimierung noetig.
Kein toter Code geloescht: die vermeintlich verwaisten Snapshot-Felder
sind Diagnose-Oberflaeche (vier davon heute zur Deploy-Verifikation
benutzt).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
a866c9cec7
commit
dca3c11bbd
+22
-2
@@ -41,7 +41,18 @@ _BROKER_OFF = 10800 # Brokerzeit = UTC+3 (candles/copy_rates sind Broker-Wallc
|
||||
LOG = "oil_widget.log"
|
||||
|
||||
# Erwartungswerte aus den Backtests — die Messlatte
|
||||
_EXP_WAIT = 43.0 # backtest_dist.py: ~57 % LONG/SHORT, ~43 % WARTEN
|
||||
# ⚠⚠ KORRIGIERT 2026-08-11 (Review-Durchgang 2): hier standen **43,0 %** aus
|
||||
# `backtest_dist.py`. Dieser Massstab ist seit dem 2026-08-05 ausdrücklich
|
||||
# UNGÜLTIG — er misst `_build` ALLEIN, ohne Breakout-Bestätigung und ohne
|
||||
# Entry-Raum-Gate, also ohne die beiden groessten Live-Blocker. Mit dem vollen
|
||||
# Live-Stack liegt die Erwartung bei **80,5 %** (`backtest_dist_gated.py`:
|
||||
# entry_room 41,4 % · breakout_pending 17,0 % · stretch 13,8 % · deadband
|
||||
# 7,4 % · min_conf 0,9 %).
|
||||
# ⚠ Wirkung des Fehlers: der Waechter meldete DAUERHAFT „+50,8 Pp Abweichung" —
|
||||
# und ein Waechter, der immer warnt, wird ignoriert. Genau diese Lehre steht
|
||||
# seit dem 02.08. im Epochen-Block darunter; sie galt fuer die Modelle, nicht
|
||||
# fuer diese Konstante.
|
||||
_EXP_WAIT = 80.5 # backtest_dist_gated.py (2026-08-05), VOLLER Live-Stack
|
||||
_EXP_WAIT_TOL = 15.0 # ab dieser Abweichung wird geflaggt (Pp)
|
||||
|
||||
# ── EPOCHEN ───────────────────────────────────────────────────────────────────
|
||||
@@ -123,9 +134,18 @@ def sec_b(c, t0):
|
||||
print(" noch keine Daten — das Logging läuft erst seit dem Neustart am 31.07.")
|
||||
return
|
||||
# Welche Gates kennt der Backtest? (nur diese dürfen den Vergleich prägen)
|
||||
# ⚠⚠ `entry_room` KORRIGIERT 2026-08-11 (Review-Durchgang 2): stand auf
|
||||
# False = „live-only". Das stimmt seit dem 2026-08-04/05 nicht mehr —
|
||||
# `backtest_breakout_gated.py` und `backtest_dist_gated.py` rufen das
|
||||
# ECHTE `_room_gate` (mit `set_entry_room(0.6)`) und modellieren es damit.
|
||||
# Wirkung: der grösste Blocker (58,9 %) wurde als „nicht gedeckt" gezählt,
|
||||
# wodurch die Zeile „Nur-Live-Gates blocken X %" massiv zu hoch auswies
|
||||
# (63,9 % statt real ~5,0 %) — und damit einen Deployment-Drift behauptete,
|
||||
# den es an dieser Stelle nicht gibt.
|
||||
im_backtest = {"deadband": True, "htf_counter": True, "stretch": True,
|
||||
"min_conf": True, "breakout_pending": True,
|
||||
"entry_room": False, "dead_hour": False, "eia": False,
|
||||
"entry_room": True,
|
||||
"dead_hour": False, "eia": False,
|
||||
"no_data": False, "stale": False, None: None}
|
||||
print(f" {'Gate':<20}{'n':>8}{'Anteil':>9} im Backtest modelliert?")
|
||||
for br, n in rows:
|
||||
|
||||
Reference in New Issue
Block a user