From 046d9c6948849c6dcede161f4da2773b3241d1a2 Mon Sep 17 00:00:00 2001 From: Axel Hocks Date: Wed, 19 Aug 2026 00:07:49 +0200 Subject: [PATCH] Meldungen oben links neu positioniert (Indikator v1.39) User: die Anzeigetexte oben links ueberlagern sich. Zwei Fehler im alten '16 + i*(size+6)': (1) START zu hoch -- MT5 zeichnet oben links SELBST die Symbol-/Zeitrahmen- Zeile; y=16 landete mitten darin. Beleg: es ueberlagerte sich, obwohl nur EINE MS-Zeile aktiv war -- es konnten also gar nicht zwei Meldungen sein. (2) ABSTAND zu knapp -- OBJPROP_FONTSIZE ist PUNKT, nicht Pixel; 10 pt rendern je nach DPI 16-20 px. Bei 16 px Zeilenabstand ueberlappen mehrere Meldungen zwangslaeufig. Jetzt Startabstand ueber InpMeldungY (40) und Zeilenabstand Faktor 2,0. Kompiliert ins richtige Terminal: 0 errors, 0 warnings. Co-Authored-By: Claude Opus 5 --- mql5/SR_Levels.mq5 | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/mql5/SR_Levels.mq5 b/mql5/SR_Levels.mq5 index 3274e3c..da81154 100644 --- a/mql5/SR_Levels.mq5 +++ b/mql5/SR_Levels.mq5 @@ -12,7 +12,13 @@ //| 4) Der Bot muss laufen (schreibt die CSV alle ~5 s). | //+------------------------------------------------------------------+ #property copyright "Oil Trading Bot" -#property version "1.38" +#property version "1.39" +// v1.39 (2026-08-19): MELDUNGEN oben links neu positioniert (User: "die +// Anzeigetexte ueberlagern sich"). Zwei Fehler: der Start lag bei y=16 +// und damit in MT5s EIGENER Symbol-/OHLC-Zeile, und der Zeilenabstand +// rechnete FONTSIZE wie Pixel -- es ist aber PUNKT (10 pt = 16-20 px je +// nach DPI). Jetzt Startabstand ueber InpMeldungY (40) und Abstand +// Faktor 2,0 der Schriftgroesse. // v1.38 (2026-08-17): Beschriftung der KONSOLIDIERUNGS-BOX entfernt (User-Wunsch). // Sie kam in v1.30 auf die Frage "was bedeutet die graue Box" und stand // seither dauerhaft im Chart. Der erklaerende Text bleibt als TOOLTIP an @@ -239,6 +245,7 @@ input bool InpShowTradeLevels = true; // MT5-Positionslinien+Labels (st // (`[trading] export_meldungen=false`) ODER hier. input bool InpShowMeldungen = true; // Meldungen oben links einblenden input int InpMeldungSize = 10; // Schriftgroesse der Meldungen +input int InpMeldungY = 40; // Startabstand von oben (unter MT5s eigener Symbol-Zeile) input color InpMeldungColor = clrGainsboro; // Farbe der Meldungen // Zonen statt nackter Linien (User-Wunsch 2026-08-17). Die BREITE ist die echte // Spanne der Pivots im Cluster — NICHT Fibonacci (im Projekt gemessen und @@ -968,8 +975,19 @@ void Redraw() ObjectSetInteger(0, mn, OBJPROP_SELECTABLE, false); ObjectSetInteger(0, mn, OBJPROP_BACK, false); } + // ⚠⚠ POSITION KORRIGIERT (User 2026-08-19: „die Anzeigetexte oben links + // ueberlagern sich"). ZWEI Fehler steckten im alten `16 + i*(size+6)`: + // (1) START zu hoch: MT5 zeichnet oben links SELBST die Symbol-/ + // Zeitrahmen-Beschriftung ("SpotCrude,M5") und ggf. die + // OHLC-Zeile. y=16 landete mitten darin. Der Beleg war, dass sich + // etwas ueberlagerte, obwohl nur EINE MS-Zeile aktiv war — es + // konnten also gar nicht zwei Meldungen sein. + // (2) ABSTAND zu knapp: `OBJPROP_FONTSIZE` ist in PUNKT, nicht Pixel. + // 10 pt rendern je nach DPI-Skalierung 16-20 px hoch — bei 16 px + // Zeilenabstand ueberlappen mehrere Meldungen zwangslaeufig. + // Jetzt Faktor 2,0 (10 pt -> 20 px), das traegt auch 125 % DPI. ObjectSetInteger(0, mn, OBJPROP_YDISTANCE, - 16 + msg_idx * (InpMeldungSize + 6)); + InpMeldungY + msg_idx * (int)(InpMeldungSize * 2.0)); ObjectSetString (0, mn, OBJPROP_TEXT, p[1]); ObjectSetInteger(0, mn, OBJPROP_COLOR, InpMeldungColor); msg_idx++;