Vierter Slot-Durchgang: Chart-Marker deckte den BRK-Slot nicht ab
User-Auftrag (vierte Runde). Diesmal die Bereiche AUSSERHALB von engine.py
geprueft - core/trader.py, server.py, der MQL5-Export und die
Zustandspersistenz.
⑦ BEHOBEN - Trade-Marker im MT5-Chart (`TR;`-Zeilen) lasen nur
`self.trader.snapshot()`. Eine offene BRK-Position blieb im Chart also
UNMARKIERT: die hellgruene Umrandung der Einstiegskerze fehlte. Kosmetisch,
aber dieselbe Klasse wie Deployment-Drift Fall 8 - nicht die Strategie
driftet, sondern ihre Beobachtbarkeit. Wer den Chart ansieht, soll sehen,
wo der Bot eingestiegen ist. Jetzt ueber beide Slots.
DREI ENTLASTUNGEN in diesem Durchgang (geprueft, NICHT vermutet):
- core/trader.py hat als einzige Klassen-Variable `_STEUER_TTL_S` (eine
Konstante); der Steuer-Cache liegt als `self._steuer_cache` INSTANZWEISE
vor. Modul-Globale sind nur die zwei Logger. Die beiden TradeManager teilen
also KEINEN veraenderlichen Zustand - zusammen mit dem Trailing-Befund aus
Durchgang 3 ist damit beides sauber.
- server.py routet ueber `eng.close` (deckt seit heute beide Slots),
`eng.toggle_trail` (ebenfalls) und `eng.set_sltp`.
- `emergency_state.json` ist per-Ticket und betrifft nur Slot 1 - die drei
Notfall-Modi stehen ohnehin auf 0, und der Reichweiten-Waechter meldet es,
falls einer eingeschaltet wird, waehrend BRK eine Position haelt.
⚠ WEITER OFFEN, unveraendert und bewusst: `set_sltp()` (nur Slot 1, braucht eine
UI-Entscheidung) und `_check_auto_m15`, das `_slot()` umgeht. Neu dazu:
`_check_close_alert` (Flip-Alarm) liest ebenfalls nur Slot 1 - das ist ein
Hinweis, keine Schutzhandlung, und der Flip-Close ist aus.
91 Tests gruen, Pipeline inkl. Stufe E gruen, Deploy verifiziert.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
fbc1e96b07
commit
14b3fd4f64
+8
-1
@@ -3498,7 +3498,14 @@ class TradingEngine:
|
|||||||
try:
|
try:
|
||||||
boff = self.trader._broker_offset_s()
|
boff = self.trader._broker_offset_s()
|
||||||
marks: list[tuple[str, int]] = []
|
marks: list[tuple[str, int]] = []
|
||||||
ps = self.trader.snapshot()
|
# ⚠⚠ BEIDE Slots markieren (Fix 2026-08-20). Vorher nur
|
||||||
|
# `self.trader` — eine offene BRK-Position blieb im
|
||||||
|
# MT5-Chart UNMARKIERT. Dieselbe Klasse wie
|
||||||
|
# Deployment-Drift Fall 8: nicht die Strategie driftet,
|
||||||
|
# sondern ihre Beobachtbarkeit. Wer den Chart ansieht,
|
||||||
|
# soll sehen, wo der Bot eingestiegen ist.
|
||||||
|
for _tr in (self.trader, self.trader_brk):
|
||||||
|
ps = _tr.snapshot()
|
||||||
if ps.get("ticket") and ps.get("open_time"):
|
if ps.get("ticket") and ps.get("open_time"):
|
||||||
marks.append(("O", int(float(ps["open_time"]) + boff)))
|
marks.append(("O", int(float(ps["open_time"]) + boff)))
|
||||||
for t in (self.history.last_closed_trades(_TRADE_MARKS) or []):
|
for t in (self.history.last_closed_trades(_TRADE_MARKS) or []):
|
||||||
|
|||||||
Reference in New Issue
Block a user