diff --git a/mql5/SR_Levels.mq5 b/mql5/SR_Levels.mq5 index a5a2a2c..79064c3 100644 --- a/mql5/SR_Levels.mq5 +++ b/mql5/SR_Levels.mq5 @@ -12,7 +12,15 @@ //| 4) Der Bot muss laufen (schreibt die CSV alle ~5 s). | //+------------------------------------------------------------------+ #property copyright "Oil Trading Bot" -#property version "1.23" +#property version "1.24" +// v1.24 (2026-07-30): Farb-Inputs UMBENANNT — MT5 speichert Input-Werte je +// Chart-Instanz und ueberschreibt damit NEUE Defaults, auch nach Recompile +// (deshalb blieben die Pfeile gold). Durch die Umbenennung findet MT5 keinen +// gespeicherten Wert mehr und nimmt den Default: +// InpWallBidColor -> InpArrowUpColor (neongruen #00FF7F) +// InpWallAskColor -> InpArrowDownColor (rot #FF4500) +// InpLiqTrendColor -> InpTrendLineColor (neongruen) +// InpLiqZoneColor/Alpha -> InpZoneColor/InpZoneAlpha // v1.23 (2026-07-30): (a) Pfeile wieder NEONGRUEN/ROT statt Gold (User-Wunsch). // (b) Liquiditaets-Trendlinie neongruen wie der Up-Pfeil (statt pink). // (c) FIX „Beschriftungen nicht komplett rechtsbuendig": auf den Linien war @@ -40,7 +48,7 @@ // v1.19 (2026-07-30): Liquiditaetszone TRANSPARENT (User: „Transparenz der Zone // auf 10 %"). MT5 kann bei OBJ_RECTANGLE kein echtes Alpha -> BlendBg() // mischt die Fuellfarbe gegen den (bekannten, einfarbigen) Chart-Hintergrund; -// das Ergebnis sieht identisch aus. InpLiqZoneAlpha = Deckkraft in %. +// das Ergebnis sieht identisch aus. InpZoneAlpha = Deckkraft in %. // Die gestrichelte Kante bleibt in voller Farbe (wie im Referenzbild). // v1.18 (2026-07-30): NEU (User-Wuensche) — (a) LIQUIDITAETSZONEN: Equal Highs / // Equal Lows aus den M30-Pivots als goldenes Band + gestrichelte Kante, @@ -95,17 +103,17 @@ input bool InpRangeFill = false; // Range füllen (aus = nur Umris input bool InpShowChannel = true; // Regressionskanal (M30) zeichnen input color InpChanColor = clrYellow; // Kanal-Farbe input bool InpShowWalls = true; // echte Liquiditäts-Wände (Hyperliquid-Orderbuch) -input color InpWallBidColor = C'0,255,127'; // Liquiditaet Nachfrage (Bid) — NEONGRUEN -input color InpWallAskColor = C'255,69,0'; // Liquiditaet Angebot (Ask) — ROT +input color InpArrowUpColor = C'0,255,127'; // Liquiditaet Nachfrage (Bid) — NEONGRUEN +input color InpArrowDownColor = C'255,69,0'; // Liquiditaet Angebot (Ask) — ROT input bool InpShowLiqTrend = true; // Liquiditäts-Trendlinie zeichnen -input color InpLiqTrendColor = C'0,255,127'; // Liquiditaets-Trend — NEONGRUEN (wie Up-Pfeil) +input color InpTrendLineColor = C'0,255,127'; // Liquiditaets-Trend — NEONGRUEN (wie Up-Pfeil) input bool InpLiqTrendLabel = false; // Beschriftung der Trendlinie (aus per User-Wunsch) input bool InpShowTrades = false; // Trade-Kerzen umranden (AUS per User-Wunsch) input color InpTradeOpenColor = C'134,239,172'; // Eroeffnung — hellgruen input color InpTradeCloseColor = C'21,128,61'; // Close — dunkelgruen input bool InpShowLiqZones = true; // Liquiditaetszonen (Equal Highs/Lows) -input color InpLiqZoneColor = C'245,158,11'; // Zonen-Grundfarbe (Gold #F59E0B) -input int InpLiqZoneAlpha = 10; // Deckkraft der Zonenfuellung in % (10 = sehr transparent) +input color InpZoneColor = C'245,158,11'; // Zonen-Grundfarbe (Gold #F59E0B) +input int InpZoneAlpha = 10; // Deckkraft der Zonenfuellung in % (10 = sehr transparent) input bool InpShowPrice = true; // aktuellen Kurs oben rechts anzeigen input int InpPriceSize = 20; // Schriftgroesse des Kurses input int InpLabelSize = 12; // Schriftgroesse der Linien-Beschriftungen (+4 per User-Wunsch) @@ -447,7 +455,7 @@ void Redraw() double lsz = (k > 3) ? StringToDouble(p[3]) : 0.0; if(lpx <= 0) continue; bool isBid = (side == "B"); - color lcol = isBid ? InpWallBidColor : InpWallAskColor; + color lcol = isBid ? InpArrowUpColor : InpArrowDownColor; // ⚠ 2026-07-30 (User): KEINE waagerechte Linie und KEIN Text-Label mehr — // der Chart war zu voll. Es bleibt NUR der Pfeil, RECHTSBÜNDIG am aktuellen // Rand, auf dem Preisniveau der Wand. Die Details (Seite/Größe/Dominanz) @@ -500,7 +508,7 @@ void Redraw() if(zlo <= 0 || zhi <= 0 || zt <= 0) continue; datetime zend = iTime(_Symbol, PERIOD_CURRENT, 0) + (datetime)(PeriodSeconds() * 3); string zn = PFX + "EQZ_" + zs; - color zfill = BlendBg(InpLiqZoneColor, InpLiqZoneAlpha); + color zfill = BlendBg(InpZoneColor, InpZoneAlpha); if(ObjectCreate(0, zn, OBJ_RECTANGLE, 0, zt, zlo, zend, zhi)) { ObjectSetInteger(0, zn, OBJPROP_STYLE, STYLE_SOLID); @@ -525,7 +533,7 @@ void Redraw() double edge = (zs == "H" ? zhi : zlo); if(ObjectCreate(0, zl, OBJ_TREND, 0, zt, edge, zend, edge)) { - ObjectSetInteger(0, zl, OBJPROP_COLOR, InpLiqZoneColor); + ObjectSetInteger(0, zl, OBJPROP_COLOR, InpZoneColor); ObjectSetInteger(0, zl, OBJPROP_STYLE, STYLE_DASH); ObjectSetInteger(0, zl, OBJPROP_WIDTH, 1); ObjectSetInteger(0, zl, OBJPROP_RAY_RIGHT, true); @@ -617,7 +625,7 @@ void Redraw() string nm = PFX + "LIQTREND"; if(ObjectCreate(0, nm, OBJ_TREND, 0, t1, q1, t2, q2)) { - ObjectSetInteger(0, nm, OBJPROP_COLOR, InpLiqTrendColor); + ObjectSetInteger(0, nm, OBJPROP_COLOR, InpTrendLineColor); ObjectSetInteger(0, nm, OBJPROP_STYLE, STYLE_SOLID); ObjectSetInteger(0, nm, OBJPROP_WIDTH, 2); // ⚠ KEIN RAY_RIGHT: eine 60-min-Regression 100 Bars in die Zukunft zu