MT5-Chart v1.18: Trade-Marker, Liquiditaetszonen, Kurs oben rechts + Pfeil-Bugfix

Pfeil-Bugfix (User: "liquiditaetspfeile werden immer noch nicht angezeigt"):
  (1) ANCHOR_LEFT ist fuer OBJ_ARROW UNGUELTIG (nur TOP/BOTTOM)
  (2) Pfeile sitzen rechts neben der letzten Kerze -> ohne CHART_SHIFT kein
      sichtbarer Bereich dort
Blink-Fix (User: "blinken nur manchmal auf"): hl_walls setzte den Cache bei jedem
Fehlschlag auf None -> LQ-Zeilen fehlten -> Indikator loeschte die Pfeile. Jetzt
letzter guter Stand 120s Grace.

Neu (alles reine Anzeige):
- TR;<O|C>;zeit  -> Kerze der Eroeffnung HELLGRUEN, des Close DUNKELGRUEN umrandet
- EQ;<H|L>;lo;hi;zeit -> Equal Highs/Lows aus M30-Pivots als goldenes Band +
  gestrichelte Kante (wie im User-Referenzbild). Als Signal gemessen verworfen.
- PX;bid -> aktueller Kurs fett oben rechts
- Beschriftung der Liquiditaets-Trendlinie per Default aus (v1.16)

Alles kompiliert und live in sr_levels.csv verifiziert.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-07-30 18:36:22 +02:00
co-authored by Claude Opus 4.8
parent b75997d703
commit 03567adf6b
5 changed files with 280 additions and 14 deletions
+16
View File
@@ -34,6 +34,8 @@ log = get_logger("hlwalls")
_TIMEOUT_S = 2.0 # der MT5-Loop darf nicht am HTTP hängen
_TTL_S = 10.0 # Cache — die Wände wandern langsamer als der Export-Takt (~5 s)
_MAX_AGE_S = 60.0 # älter = HL-Feed steht → nicht mehr zeichnen
_STALE_GRACE_S = 120.0 # nach einem Fehlschlag den letzten guten Stand so lange
# weiterreichen (Blink-Fix — s. Kommentar in `walls()`)
class HLWalls:
@@ -85,6 +87,20 @@ class HLWalls:
f"Liquiditätslinien (HL-Dashboard auf 8001 läuft nicht?)")
self._fail_logged = True
with self._lock:
if data is not None:
self._last_good = data
self._last_good_ts = now
elif (getattr(self, "_last_good", None) is not None
and now - getattr(self, "_last_good_ts", 0.0) < _STALE_GRACE_S):
# ⚠ BLINK-FIX (2026-07-30, User „die Liquidationspfeile blinken nur
# manchmal auf"): ein einzelner Fehlschlag (HTTP-Timeout, HL-Server
# kurz busy, Snapshot minimal zu alt) darf die Pfeile NICHT löschen.
# Ohne den letzten guten Wert fehlen die LQ-Zeilen in der CSV → der
# Indikator löscht beim Redraw alle Objekte und zeichnet sie nicht neu
# → Pfeil weg, beim nächsten Erfolg wieder da = sichtbares Blinken.
# Innerhalb der Grace wird der letzte gute Stand weitergereicht;
# erst danach verschwinden die Pfeile wirklich (echter Ausfall).
data = self._last_good
self._cache = data
self._cache_ts = now
return data