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 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-08-19 00:07:49 +02:00
co-authored by Claude Opus 5
parent adcae09317
commit 046d9c6948
+20 -2
View File
@@ -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++;