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++;