MQL5 v1.28: G/V der offenen Position unter dem Kurs
User-Wunsch. Der Bot exportiert PL;wert;waehrung, der Indikator zeigt es als OBJ_LABEL direkt unter dem Kurs oben rechts (CORNER_RIGHT_UPPER, Y = Kurs-Y + Schrifthoehe + Abstand), gruen im Plus / rot im Minus. Wert ist NETTO wie im Dashboard: bei Gewinn abzueglich der WHT-Quellensteuer ([trading] wht_pct = 26.375), bei Verlust unveraendert (dort faellt keine an). Ohne offene Position schickt der Bot keine PL-Zeile -> Redraw() raeumt das Label per ObjectsDeleteAll(PFX) automatisch weg. Verifiziert: PL;-20.59;EUR in sr_levels.csv, deckt sich mit dem Dashboard-Netto. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
04ea6934ee
commit
2bda2680bb
@@ -2031,6 +2031,21 @@ class TradingEngine:
|
||||
lines.append(f"PX;{_bid}")
|
||||
except Exception:
|
||||
pass
|
||||
# G/V der offenen Position, direkt unter dem Kurs (User-Wunsch 2026-07-30):
|
||||
# PL;wert;waehrung. **NETTO** wie im Dashboard — bei Gewinn abzüglich der
|
||||
# WHT-Quellensteuer, die der Broker einbehält (`[trading] wht_pct`); bei
|
||||
# Verlust unverändert (da fällt keine Steuer an). Ohne Position keine Zeile
|
||||
# → der Indikator löscht das Label.
|
||||
try:
|
||||
_ps = self.trader.snapshot()
|
||||
if _ps.get("ticket") and _ps.get("pnl") is not None:
|
||||
_p = float(_ps["pnl"])
|
||||
if _p > 0 and self._wht_pct > 0:
|
||||
_p *= (1.0 - self._wht_pct / 100.0)
|
||||
_cur = (self.data.snapshot() or {}).get("currency") or ""
|
||||
lines.append(f"PL;{_p:.2f};{_cur}")
|
||||
except Exception:
|
||||
pass
|
||||
# Trade-Marker: TR;<O|C>;<broker_time> → der Indikator umrandet die Kerze,
|
||||
# in der eröffnet (hellgrün) bzw. geschlossen (dunkelgrün) wurde
|
||||
# (User-Vorgabe 2026-07-30). Offene Position + die letzten Trades des Tages.
|
||||
|
||||
Reference in New Issue
Block a user