Meldungen oben links im MT5-Chart (MS;<text>, Indikator v1.36)
User-Wunsch. Neue CSV-Zeile MS;<text>, im Indikator als gestapelte OBJ_LABEL an CORNER_LEFT_UPPER (oben rechts sind Kurs, G/V und HL belegt). Inhalt = dieselben Zeilen wie die Dashboard-Karte "Meldungen": Squeeze, Ueberdehnung, S/R-Ziel mit P(break), Stop-Seite, News-Blackout. NUR ZUSAMMENGESETZT, NICHT NEU GERECHNET -- alles aus bereits berechneten Snapshot-Teilen bzw. _last_sr_close_hint/_last_stop_approach; calendar.blackout() ist ein reiner Speicher-Zugriff. Der Konsens-Pfeil hat im 5-s-Export-Takt einmal ein komplettes zweites _verdict() gezogen. Zwei Felder vorher geprueft statt angenommen: _last_calendar und _export_meldungen gab es NICHT -- ohne die Pruefung haette das umgebende except Exception es still verschluckt und die Meldungen waeren dauerhaft leer geblieben (dieselbe Klasse wie der wave_snap-Fallstrick vom 04.08.). ASCII-SICHER, real noetig: der erste Lauf lieferte "MS; Kompression Ausbruch steht bevor" -- Emoji und Gedankenstrich waren zu Leerzeichen geworden. Der Indikator liest die CSV nicht als UTF-8 (deshalb steht dort auch "Unterstuetzung"). Jetzt Ersetzung + Filter auf 32-126. Verifiziert: MS;Squeeze-Ausbruch LONG @ 82.413, 0 Nicht-ASCII-Zeichen. Deckel 5 Zeilen a 70 Zeichen; eigener Praefix SRB_MSG_*, damit die Labels beim Redraw verschwinden. Abschaltbar per [trading] export_meldungen=false oder InpShowMeldungen. Kompiliert ins richtige Terminal (0 errors, 0 warnings), deployt und am laufenden Server verifiziert. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
55dc69ef42
commit
204e80bb68
+42
-1
@@ -12,7 +12,13 @@
|
||||
//| 4) Der Bot muss laufen (schreibt die CSV alle ~5 s). |
|
||||
//+------------------------------------------------------------------+
|
||||
#property copyright "Oil Trading Bot"
|
||||
#property version "1.35"
|
||||
#property version "1.36"
|
||||
// v1.36 (2026-08-17): MELDUNGEN oben links (MS;<text>) — dieselben Zeilen wie
|
||||
// die Dashboard-Karte "Meldungen" (Squeeze, Ueberdehnung, S/R-Ziel,
|
||||
// Stop-Seite, News-Blackout). Der Bot setzt sie nur ZUSAMMEN aus bereits
|
||||
// berechneten Snapshot-Teilen, er rechnet nichts neu -- die Lehre aus dem
|
||||
// Konsens-Pfeil, der im 5-s-Takt ein zweites _verdict() zog.
|
||||
// Abschaltbar per InpShowMeldungen oder [trading] export_meldungen=false.
|
||||
// v1.35 (2026-08-13): S/R-LABEL WORTGLEICH ZUR M15-KARTE (User: „die Beschriftung
|
||||
// fuer S/R im Chart stimmt nicht mit der Analyse in der M15-Karte ueberein").
|
||||
// Das Label trug seit v1.27 die NACKTE Zahl = P(Durchbruch); die Karte klappt
|
||||
@@ -218,6 +224,12 @@ input color InpThemeText = C'139,148,158'; // Achsen/Text
|
||||
input color InpThemeBidLine = clrWhite; // aktuelle Kurslinie (Bid) — weiss
|
||||
input double InpShiftPct = 12.0; // Platz rechts fuer Pfeile/Labels (% der Chartbreite)
|
||||
input bool InpShowTradeLevels = true; // MT5-Positionslinien+Labels (stehen immer LINKS)
|
||||
// Meldungen oben links (User-Wunsch 2026-08-17) — dieselben Zeilen wie die
|
||||
// Dashboard-Karte „Meldungen". Der Bot deckelt auf 5; abschaltbar per ini
|
||||
// (`[trading] export_meldungen=false`) ODER hier.
|
||||
input bool InpShowMeldungen = true; // Meldungen oben links einblenden
|
||||
input int InpMeldungSize = 10; // Schriftgroesse der Meldungen
|
||||
input color InpMeldungColor = clrGainsboro; // Farbe der Meldungen
|
||||
|
||||
const string PFX = "SRB_"; // Präfix S/R-Linien (aus Datei)
|
||||
const string RPFX = "SRR_"; // Präfix dynamische Range (aus Chart)
|
||||
@@ -450,6 +462,7 @@ void Redraw()
|
||||
string rows[];
|
||||
int nr = StringSplit(content, '\n', rows);
|
||||
int idx = 0;
|
||||
int msg_idx = 0; // Meldungs-Stapel oben links
|
||||
// Kegel-Verkettung je Redraw zuruecksetzen (sonst haengt der Faecher am Stand
|
||||
// des vorherigen Durchlaufs)
|
||||
g_coneT = 0; g_coneLo = 0.0; g_coneHi = 0.0; g_conePx = 0.0;
|
||||
@@ -886,6 +899,34 @@ void Redraw()
|
||||
ObjectSetInteger(0, pn, OBJPROP_COLOR, InpPriceColor);
|
||||
continue;
|
||||
}
|
||||
// MELDUNGEN oben LINKS (MS;<text>) — User-Wunsch 2026-08-17.
|
||||
// Dieselben Zeilen wie die Dashboard-Karte „Meldungen"; der Bot setzt sie
|
||||
// zusammen und deckelt auf 5. Hier nur gestapelt darstellen.
|
||||
// ⚠ Eigener Praefix MSPFX, damit sie beim Redraw sauber verschwinden, wenn
|
||||
// der Bot keine MS-Zeile mehr schickt (sonst blieben Alt-Meldungen
|
||||
// stehen — genau der Fehler, den die HL-Pfeile schon einmal hatten).
|
||||
if(typ == "MS")
|
||||
{
|
||||
if(!InpShowMeldungen || k < 2) continue;
|
||||
string mn = PFX + "MSG_" + IntegerToString(msg_idx);
|
||||
if(ObjectFind(0, mn) < 0)
|
||||
{
|
||||
ObjectCreate(0, mn, OBJ_LABEL, 0, 0, 0);
|
||||
ObjectSetInteger(0, mn, OBJPROP_CORNER, CORNER_LEFT_UPPER);
|
||||
ObjectSetInteger(0, mn, OBJPROP_XDISTANCE, 12);
|
||||
ObjectSetInteger(0, mn, OBJPROP_ANCHOR, ANCHOR_LEFT_UPPER);
|
||||
ObjectSetString (0, mn, OBJPROP_FONT, "Arial");
|
||||
ObjectSetInteger(0, mn, OBJPROP_FONTSIZE, InpMeldungSize);
|
||||
ObjectSetInteger(0, mn, OBJPROP_SELECTABLE, false);
|
||||
ObjectSetInteger(0, mn, OBJPROP_BACK, false);
|
||||
}
|
||||
ObjectSetInteger(0, mn, OBJPROP_YDISTANCE,
|
||||
16 + msg_idx * (InpMeldungSize + 6));
|
||||
ObjectSetString (0, mn, OBJPROP_TEXT, p[1]);
|
||||
ObjectSetInteger(0, mn, OBJPROP_COLOR, InpMeldungColor);
|
||||
msg_idx++;
|
||||
continue;
|
||||
}
|
||||
// G/V der offenen Position — direkt UNTER dem Kurs (User-Wunsch 2026-07-30):
|
||||
// PL;wert;waehrung. Wert ist NETTO (Bot rechnet die WHT-Quellensteuer schon
|
||||
// raus, wie im Dashboard). Gruen im Plus, rot im Minus. Ohne offene Position
|
||||
|
||||
Reference in New Issue
Block a user