MT5-Chart: echte Liquiditaets-Waende statt Chartmuster-Linien (Indikator v1.12)

User-Wunsch: "zeichne mir die liquiditaetslinien in den mt5 ein. entferne die
chartmuster linien aus dem mt5".

- core/hl_walls.py: holt GET /api/walls vom HL-Dashboard (groesstes L2-Level je
  Seite, basis-korrigiert auf CFD-Niveau). Fail-safe: HL aus -> keine Linien, kein
  Fehler; Cache 10s, Daten >60s alt werden verworfen, Log nur 1x.
- engine._write_levels_file: PT-Zeilen raus, LQ;<B|A>;preis;size rein.
- SR_Levels.mq5 v1.12: PT-Handler entfernt, LQ-Handler (dick gestrichelt +
  Groessen-Label), InpShowWalls/InpWallBidColor/InpWallAskColor. Kompiliert.
- config: export_hl_walls=true, hl_walls_url.

Zwei Fallen dokumentiert: (1) Basis-Differenz HL vs CFD ~0,45$ -- ungerechnet laegen
die Linien falsch. (2) 127.0.0.1 statt localhost (IPv6 -> 2066ms statt 19-46ms, lief
in den 2s-Timeout).

Verifiziert: LQ-Zeilen erscheinen in sr_levels.csv (B 83.619/3120, A 83.665/1721),
plausibel zwischen R 83.721 und S 83.516.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-07-30 15:16:19 +02:00
co-authored by Claude Opus 4.8
parent 29f53c45c1
commit 7f2285ddb3
5 changed files with 176 additions and 65 deletions
+18 -9
View File
@@ -153,6 +153,13 @@ class TradingEngine:
self.elliott = ElliottAnalyzer(mt5.TIMEFRAME_M5)
self.structure = MarketStructure() # Marktstruktur (M30) — reine Anzeige
self.patterns = PatternDetector() # visuelle Chartmuster (M30) — reine Anzeige
# Echte Liquiditäts-Wände vom HL-Orderbuch (Anzeige im MT5-Chart, kein Signal).
# Braucht das HL-Dashboard auf 8001; ist es aus, bleibt der Chart unverändert.
from core.hl_walls import HLWalls
_t2 = self.cfg["trading"]
self.hl_walls = HLWalls(
url=_t2.get("hl_walls_url", "http://localhost:8001/api/walls"),
enabled=_t2.get("export_hl_walls", "true").lower() == "true")
self.candles = CandleLogger(HISTORY_DB_FILE) # M1-Candle-Log (Daten-Sammlung)
# News: eigener Fetch-Loop (versorgt UI /api/news UND Agent-Kontext)
tcfg = self.cfg["translation"]
@@ -1926,16 +1933,18 @@ class TradingEngine:
lines.append(f"CH;{kind};{cl['t1']};{pts[0]};{cl['t2']};{pts[1]}")
except Exception:
pass
# Erkannte Chartmuster (reine Anzeige): Trigger/Nackenlinie + Ziel als
# horizontale Linien + Label. Format PT;name;dir;trigger;target;status
# (target leer = Ausbruch offen, z. B. symmetrisches Dreieck).
# Chartmuster-Linien (PT;…) 2026-07-30 auf User-Wunsch ENTFERNT — die
# Kachel/PWA-Anzeige bleibt, im MT5-Chart wurde es zu voll. Der Indikator
# (v1.12) hat den PT-Handler ebenfalls nicht mehr.
# ECHTE Liquiditäts-Wände von Hyperliquid (größtes L2-Level je Seite,
# basis-korrigiert auf CFD-Niveau) — Format LQ;<B|A>;preis;size.
# Anders als R/S NICHT aus Pivots geschätzt, sondern tatsächlich ruhende
# Orders. REINE ANZEIGE (Übertragbarkeit auf den CFD wird gerade gemessen).
try:
pats = (self.patterns.snapshot() or {}).get("patterns") or []
for m in pats[:2]:
tgt = m.get("target")
lines.append(f"PT;{m.get('name','')};{m.get('dir','')};"
f"{m.get('trigger')};{tgt if tgt is not None else ''};"
f"{m.get('status','')}")
w = self.hl_walls.walls()
if w:
lines.append(f"LQ;B;{w['bid']};{w['bid_sz']:.0f}")
lines.append(f"LQ;A;{w['ask']};{w['ask_sz']:.0f}")
except Exception:
pass
# Zonen NICHT mehr aus der (statischen) [zones]-Config — die dynamische