diff --git a/core/engine.py b/core/engine.py index bcc726c..5e3ef82 100644 --- a/core/engine.py +++ b/core/engine.py @@ -550,6 +550,14 @@ class TradingEngine: self._runtime_state_path = _os2.path.join( _os2.path.dirname(_os2.path.dirname(_os2.path.abspath(__file__))), "runtime_state.json") + # ⚠⚠ Einsatz je autonomem Pfad MUSS VOR `_load_runtime_state()` stehen. + # Der erste Bau setzte die Defaults DANACH (Z. 631 gegen Z. 553) und + # ueberschrieb damit jeden gespeicherten Wert mit 0 — die Eingabe im + # Dashboard wirkte, war aber nach dem naechsten Neustart weg (real am + # 19.08.: BRK 10 / M15 85 gesetzt, nach dem Deploy beide 0). + # Reihenfolge ist immer: Default setzen -> runtime_state laedt darueber. + self._margin_brk = 0.0 + self._margin_m15 = 0.0 self._load_runtime_state() self._mql5_files_dir = None # \MQL5\Files (lazy, für den Indikator) self._export_trade_marks = self.cfg["trading"].get("export_trade_marks", "false").lower() == "true" @@ -626,10 +634,6 @@ class TradingEngine: self._cb_remember = self._cb_limit_pct or 8.0 except (TypeError, ValueError): self._cb_limit_pct = 0.0 - # Einsatz je autonomem Pfad (0 = globaler `margin_buffer_pct`). - # Wird von `runtime_state.json` ueberschrieben, falls dort gesetzt. - self._margin_brk = 0.0 - self._margin_m15 = 0.0 self._circuit_tripped_date = None # Berlin-Datum, an dem der Breaker griff self._cb_realized = (0.0, 0.0) # (ts, realisierter Tages-P&L) gecacht ~30 s # Gewinn-mitnehmen (Take-Profit) — symmetrisch zum Notfall-Stop: schließt