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
+25 -6
View File
@@ -1097,12 +1097,31 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
PWA-Chart. **Für das Desktop-Terminal: Datei-Bridge** — `engine._write_levels_file`
(im `_run_analysis`, ~5 s, `[trading] export_mql5_levels=true`) schreibt atomar
`<terminal>\MQL5\Files\sr_levels.csv` (`SYM;…` / `R;preis` / `S;preis` / **`CH;<U|M|L>;
t1;p1;t2;p2`** = Regressionskanal-Anker / **`PT;name;dir;trigger;target;status`** =
erkanntes Chartmuster (2026-07-27, top 2 aus `patterns.snapshot`); Quelle
**`_draw_levels`** (S/R) + **`structure.channel_line`** (Kanal) + **`self.patterns`**
(Muster), Indikator-Farben blau DodgerBlue/DeepSkyBlue, Muster rot/grün);
der Indikator **`mql5/SR_Levels.mq5`** (**v1.11** — zeichnet jetzt auch die Muster:
Trigger-/Nackenlinie kräftig + gepunktete Ziel-Linie + Label; in `MQL5\Indicators\`, **braucht
t1;p1;t2;p2`** = Regressionskanal-Anker / **`LQ;<B|A>;preis;size`** = ECHTE
Liquiditäts-Wand, s. u.); Quelle **`_draw_levels`** (S/R) +
**`structure.channel_line`** (Kanal) + **`self.hl_walls`** (Liquidität),
Indikator-Farben blau DodgerBlue/DeepSkyBlue, Wände grün/orangerot.
⚠ **Chartmuster-Linien (`PT;…`) 2026-07-30 auf User-Wunsch ENTFERNT** („entferne die
chartmuster linien aus dem mt5" — Chart war zu voll); die Muster-Kachel + das
PWA-Chart-Overlay bleiben unverändert, nur der MT5-Export/Indikator-Handler ist raus.
**ECHTE Liquiditäts-Wände im MT5-Chart (User-Wunsch 2026-07-30 „zeichne mir die
liquiditätslinien in den mt5 ein"):** `core/hl_walls.py` holt vom **HL-Dashboard**
(`GET http://127.0.0.1:8001/api/walls`, `[trading] export_hl_walls=true`) das
**größte L2-Orderbuch-Level je Seite** — die einzigen Linien im Chart, die NICHT aus
Pivots geschätzt sind, sondern **tatsächlich ruhende Orders** zeigen (Pepperstone =
Market Maker, liefert kein Buch). ⚠ **Basis-Korrektur zwingend:** HL `xyz:CL` notiert
**~0,45 $ unter** dem CFD (anderer Kontrakt/Contango) — die Umrechnung passiert
serverseitig im HL-Projekt (Median über 60 Snapshots), hier kommt schon
`bid_mt5`/`ask_mt5` an; fehlt die Basis, wird NICHT gezeichnet. ⚠ **`127.0.0.1`, nicht
`localhost`** (IPv6-Auflösung → 2066 ms statt 1946 ms, lief in den 2-s-Timeout) und
der HL-Endpoint liest **nur seine DB** (live-`fetch_l2_book` dauerte ~2 s = Timeout).
Fail-safe: HL-Server aus → keine Linien, kein Fehler (Log 1×, dann still), Cache 10 s,
Daten älter als 60 s werden verworfen. **REINE ANZEIGE** — ob HL-Buch-Signale auf den
CFD übertragbar sind, wird gerade gemessen (`analyze_bookflow.py` im HL-Projekt,
Datensammlung seit 2026-07-30, Urteil in ~2 Wochen). Der Indikator
**`mql5/SR_Levels.mq5`** (**v1.12** — `LQ`-Handler: dick gestrichelt + Größen-Label
„Liquidität NACHFRAGE/ANGEBOT <kontrakte>", `InpShowWalls`/`InpWallBidColor`/
`InpWallAskColor`; PT-Handler entfernt; in `MQL5\Indicators\`, **braucht
`OnCalculate` als No-op** sonst Compile-Error, F7-kompilieren, auf den Chart ziehen)
liest die S/R-Linien per Timer (OBJ_HLINE) UND den **M30-Regressionskanal als 3
diagonale Trendlinien** (OBJ_TREND, nach rechts verlängert, oben/unten gestrichelt/