rec_outcomes: zweiter Bug gefunden und behoben (timeframe_name)
Der Log verriet die wahre Ursache: 'WaveRecommender' object has no attribute 'timeframe_name'. rec["tf"] ist leer, also lief der Aufruf immer in diesen Fallback - AttributeError, im except auf DEBUG verschluckt. Der pb_feats-Fix vom 11.08. war damit RICHTIG: er kam an der ersten Sperre vorbei und legte diese zweite frei. Vorher wurde log_rec_outcome nie aufgerufen (atr immer 0), deshalb konnte der zweite Bug gar nicht auftreten. Richtig ist self._wave_tf_label (die Engine haelt das Label). Lehre: nach einem Fix nicht nur pruefen, ob die Tabelle jetzt schreibt, sondern das LOG lesen. Die Zeilen standen seit Stunden da - ich hatte nur auf INFO gefiltert und daraus geschlossen, es gaebe keine. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
bf7e382818
commit
19ee379f20
+10
-1
@@ -1669,9 +1669,18 @@ class TradingEngine:
|
|||||||
log.info(f"rec_outcome NICHT geschrieben: atr={_atr} px={_px} "
|
log.info(f"rec_outcome NICHT geschrieben: atr={_atr} px={_px} "
|
||||||
f"sig={_sig} (pb_feats={'da' if _ws.get('pb_feats') else 'FEHLT'})")
|
f"sig={_sig} (pb_feats={'da' if _ws.get('pb_feats') else 'FEHLT'})")
|
||||||
if _atr > 0 and _px > 0 and self.history:
|
if _atr > 0 and _px > 0 and self.history:
|
||||||
|
# ⚠⚠ ZWEITER BUG, gefunden 2026-08-12 im Log: hier stand
|
||||||
|
# `self.wave.timeframe_name` — das Attribut gibt es NICHT
|
||||||
|
# (`AttributeError`, im `except` auf DEBUG verschluckt).
|
||||||
|
# `rec["tf"]` ist leer, also lief es IMMER in den Fallback.
|
||||||
|
# Der `pb_feats`-Fix vom 11.08. war also richtig — er kam
|
||||||
|
# an der ersten Sperre vorbei und legte diese zweite frei.
|
||||||
|
# ⚠ Lehre: nach einem Fix nicht nur „schreibt es jetzt?"
|
||||||
|
# pruefen, sondern das LOG lesen. Die Zeilen standen seit
|
||||||
|
# Stunden da; ich hatte nur auf INFO gefiltert.
|
||||||
_rid = self.history.log_rec_outcome(
|
_rid = self.history.log_rec_outcome(
|
||||||
signal=_sig, conf_pct=int(rec.get("conf_pct") or 0),
|
signal=_sig, conf_pct=int(rec.get("conf_pct") or 0),
|
||||||
tf=str(rec.get("tf") or self.wave.timeframe_name or ""),
|
tf=str(rec.get("tf") or self._wave_tf_label or ""),
|
||||||
price=_px, atr=_atr)
|
price=_px, atr=_atr)
|
||||||
log.info(f"rec_outcome #{_rid}: {_sig} @ {_px} atr={_atr}")
|
log.info(f"rec_outcome #{_rid}: {_sig} @ {_px} atr={_atr}")
|
||||||
if _sig in ("LONG", "SHORT", "WARTEN"):
|
if _sig in ("LONG", "SHORT", "WARTEN"):
|
||||||
|
|||||||
Reference in New Issue
Block a user