From e1a671a137fbc4a2c9bdf70d89ea2f2672e46a59 Mon Sep 17 00:00:00 2001 From: Axel Hocks Date: Wed, 19 Aug 2026 00:13:55 +0200 Subject: [PATCH] Y-Stapel oben rechts korrigiert (Indikator v1.41) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User: oben rechts die Texte ueberlagern sich. Dieselbe Punkt-statt-Pixel- Rechnung wie gestern links -- OBJPROP_FONTSIZE ist in PUNKT, die alten Formeln behandelten sie wie Pixel. Bei InpPriceSize=20 stand: Kurs y=14, 20 pt -> belegt 14..50 G/V y=44 -> lag MITTEN im Kurs HL y=56 -> lag MITTEN im G/V Jetzt gestapelt mit Faktor 1,8 px je Punkt (konservativ zwischen 1,6 und 2,0, traegt auch 125 % DPI): Kurs 14 · G/V 50 · HL 78 Die Positionen werden deterministisch aus den Schriftgroessen berechnet, nicht ueber eine laufende Variable -- die CSV-Zeilen kommen nicht in garantierter Reihenfolge, ein Akkumulator waere davon abhaengig. Kompiliert ins richtige Terminal: 0 errors, 0 warnings, .ex5 frisch. Co-Authored-By: Claude Opus 5 --- mql5/SR_Levels.mq5 | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/mql5/SR_Levels.mq5 b/mql5/SR_Levels.mq5 index 94e905e..cf6df51 100644 --- a/mql5/SR_Levels.mq5 +++ b/mql5/SR_Levels.mq5 @@ -12,7 +12,12 @@ //| 4) Der Bot muss laufen (schreibt die CSV alle ~5 s). | //+------------------------------------------------------------------+ #property copyright "Oil Trading Bot" -#property version "1.40" +#property version "1.41" +// v1.41 (2026-08-19): Y-STAPEL oben rechts korrigiert (User: "oben rechts die +// Texte ueberlagern sich"). Dieselbe Punkt-statt-Pixel-Rechnung wie +// gestern links: bei InpPriceSize=20 lag G/V auf y=44 mitten im Kurs +// (14..50) und HL auf y=56 mitten im G/V. Jetzt gestapelt mit Faktor +// 1,8 px je Punkt -> Kurs 14, G/V 50, HL 78. // v1.40 (2026-08-19): MELDUNGEN ZENTRIERT statt oben links (User-Wunsch). // MT5 kennt keine "Mitte"-Ecke: Bezug bleibt CORNER_LEFT_UPPER, aber der // ANKER wird ANCHOR_UPPER (Oberkante mittig) und X = halbe Chartbreite. @@ -879,7 +884,9 @@ void Redraw() ObjectSetInteger(0, hn, OBJPROP_CORNER, CORNER_RIGHT_UPPER); ObjectSetInteger(0, hn, OBJPROP_XDISTANCE, 12); // unter Kurs (14) und G/V (14+PriceSize+6) einreihen - ObjectSetInteger(0, hn, OBJPROP_YDISTANCE, 14 + InpPriceSize + 6 + InpPriceSize - 4); + ObjectSetInteger(0, hn, OBJPROP_YDISTANCE, + 14 + (int)(InpPriceSize * 1.8) + + (int)(MathMax(8, InpPriceSize - 4) * 1.8)); ObjectSetInteger(0, hn, OBJPROP_ANCHOR, ANCHOR_RIGHT_UPPER); ObjectSetInteger(0, hn, OBJPROP_SELECTABLE, false); ObjectSetString (0, hn, OBJPROP_FONT, "Arial"); @@ -911,6 +918,11 @@ void Redraw() ObjectCreate(0, pn, OBJ_LABEL, 0, 0, 0); ObjectSetInteger(0, pn, OBJPROP_CORNER, CORNER_RIGHT_UPPER); ObjectSetInteger(0, pn, OBJPROP_XDISTANCE, 12); + // ⚠ Y-STAPEL oben rechts (Fix 2026-08-19). Reihenfolge von oben: + // Kurs (20 pt) -> G/V (16 pt) -> HL (13 pt). Die Abstaende + // rechnen mit Faktor 1,8 px je PUNKT — FONTSIZE ist in Punkt, + // nicht Pixel. Die alte Formel behandelte sie wie Pixel, dadurch + // lag G/V (y=44) IM Kurs (14..50) und HL (y=56) IM G/V (44..73). ObjectSetInteger(0, pn, OBJPROP_YDISTANCE, 14); ObjectSetInteger(0, pn, OBJPROP_ANCHOR, ANCHOR_RIGHT_UPPER); ObjectSetString (0, pn, OBJPROP_FONT, "Arial Black"); @@ -1026,7 +1038,8 @@ void Redraw() ObjectSetInteger(0, qn, OBJPROP_CORNER, CORNER_RIGHT_UPPER); ObjectSetInteger(0, qn, OBJPROP_XDISTANCE, 12); // direkt unter dem Kurs: dessen Y (14) + Schrifthoehe + kleiner Abstand - ObjectSetInteger(0, qn, OBJPROP_YDISTANCE, 14 + InpPriceSize + 10); + ObjectSetInteger(0, qn, OBJPROP_YDISTANCE, + 14 + (int)(InpPriceSize * 1.8)); ObjectSetInteger(0, qn, OBJPROP_ANCHOR, ANCHOR_RIGHT_UPPER); ObjectSetString (0, qn, OBJPROP_FONT, "Arial Black"); ObjectSetInteger(0, qn, OBJPROP_SELECTABLE, false);