MQL5 v1.19: Liquiditaetszone mit 10% Deckkraft (transparent)
User: "setze die transparenz der zone auf 10 %". MT5 kann bei OBJ_RECTANGLE KEIN echtes Alpha (nur Canvas-Objekte koennten das). Loesung: BlendBg() mischt die Fuellfarbe gegen den bekannten, einfarbigen Chart-Hintergrund -- optisch identisch zu echter Transparenz. Gold #F59E0B bei 10% auf #0D1117 -> #241F15 (dezent) InpLiqZoneAlpha = Deckkraft in % (Default 10). Farbe wird bei JEDEM Redraw neu gesetzt, damit eine Alpha-Aenderung sofort greift (nicht erst beim Neuanlegen des Objekts). Die gestrichelte Kante bleibt in voller Goldfarbe wie im Referenzbild. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
03567adf6b
commit
4709410c51
@@ -1202,7 +1202,7 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
|
|||||||
Daten älter als 60 s werden verworfen. **REINE ANZEIGE** — ob HL-Buch-Signale auf den
|
Daten älter als 60 s werden verworfen. **REINE ANZEIGE** — ob HL-Buch-Signale auf den
|
||||||
CFD übertragbar sind, wird gerade gemessen (`analyze_bookflow.py` im HL-Projekt,
|
CFD übertragbar sind, wird gerade gemessen (`analyze_bookflow.py` im HL-Projekt,
|
||||||
Datensammlung seit 2026-07-30, Urteil in ~2 Wochen). Der Indikator
|
Datensammlung seit 2026-07-30, Urteil in ~2 Wochen). Der Indikator
|
||||||
**`mql5/SR_Levels.mq5`** (**v1.18** — `LQ`-Handler zeichnet seit v1.14 **nur noch
|
**`mql5/SR_Levels.mq5`** (**v1.19** — `LQ`-Handler zeichnet seit v1.14 **nur noch
|
||||||
den PFEIL**, rechtsbündig am aktuellen Rand (in `RepositionLabels()` nachgeführt,
|
den PFEIL**, rechtsbündig am aktuellen Rand (in `RepositionLabels()` nachgeführt,
|
||||||
bleibt beim Scrollen rechts; Details im **Tooltip**) — Linie und Text-Label sind
|
bleibt beim Scrollen rechts; Details im **Tooltip**) — Linie und Text-Label sind
|
||||||
auf User-Wunsch raus („Chart zu voll"). **v1.15 = CHART-THEME** (User „Farben im
|
auf User-Wunsch raus („Chart zu voll"). **v1.15 = CHART-THEME** (User „Farben im
|
||||||
|
|||||||
+31
-3
@@ -12,7 +12,12 @@
|
|||||||
//| 4) Der Bot muss laufen (schreibt die CSV alle ~5 s). |
|
//| 4) Der Bot muss laufen (schreibt die CSV alle ~5 s). |
|
||||||
//+------------------------------------------------------------------+
|
//+------------------------------------------------------------------+
|
||||||
#property copyright "Oil Trading Bot"
|
#property copyright "Oil Trading Bot"
|
||||||
#property version "1.18"
|
#property version "1.19"
|
||||||
|
// 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 %.
|
||||||
|
// Die gestrichelte Kante bleibt in voller Farbe (wie im Referenzbild).
|
||||||
// v1.18 (2026-07-30): NEU (User-Wuensche) — (a) LIQUIDITAETSZONEN: Equal Highs /
|
// v1.18 (2026-07-30): NEU (User-Wuensche) — (a) LIQUIDITAETSZONEN: Equal Highs /
|
||||||
// Equal Lows aus den M30-Pivots als goldenes Band + gestrichelte Kante,
|
// Equal Lows aus den M30-Pivots als goldenes Band + gestrichelte Kante,
|
||||||
// nach rechts verlaengert (EQ;<H|L>;lo;hi;zeit). REINE ANZEIGE, als Signal
|
// nach rechts verlaengert (EQ;<H|L>;lo;hi;zeit). REINE ANZEIGE, als Signal
|
||||||
@@ -75,7 +80,8 @@ input bool InpShowTrades = true; // Trade-Kerzen umranden (Eroeffn
|
|||||||
input color InpTradeOpenColor = C'134,239,172'; // Eroeffnung — hellgruen
|
input color InpTradeOpenColor = C'134,239,172'; // Eroeffnung — hellgruen
|
||||||
input color InpTradeCloseColor = C'21,128,61'; // Close — dunkelgruen
|
input color InpTradeCloseColor = C'21,128,61'; // Close — dunkelgruen
|
||||||
input bool InpShowLiqZones = true; // Liquiditaetszonen (Equal Highs/Lows)
|
input bool InpShowLiqZones = true; // Liquiditaetszonen (Equal Highs/Lows)
|
||||||
input color InpLiqZoneColor = C'146,94,10'; // Zonen-Band (gedaempftes Gold)
|
input color InpLiqZoneColor = C'245,158,11'; // Zonen-Grundfarbe (Gold #F59E0B)
|
||||||
|
input int InpLiqZoneAlpha = 10; // Deckkraft der Zonenfuellung in % (10 = sehr transparent)
|
||||||
input bool InpShowPrice = true; // aktuellen Kurs oben rechts anzeigen
|
input bool InpShowPrice = true; // aktuellen Kurs oben rechts anzeigen
|
||||||
input int InpPriceSize = 20; // Schriftgroesse des Kurses
|
input int InpPriceSize = 20; // Schriftgroesse des Kurses
|
||||||
input color InpPriceColor = C'230,237,243'; // Kurs-Farbe
|
input color InpPriceColor = C'230,237,243'; // Kurs-Farbe
|
||||||
@@ -112,6 +118,25 @@ int OnInit()
|
|||||||
//| Kerzen werden GEFÜLLT gezeichnet (Body in Bull-/Bear-Farbe), damit|
|
//| Kerzen werden GEFÜLLT gezeichnet (Body in Bull-/Bear-Farbe), damit|
|
||||||
//| es aussieht wie im Referenzbild. |
|
//| es aussieht wie im Referenzbild. |
|
||||||
//+------------------------------------------------------------------+
|
//+------------------------------------------------------------------+
|
||||||
|
//+------------------------------------------------------------------+
|
||||||
|
//| Farbe mit dem Chart-Hintergrund mischen — simuliert TRANSPARENZ. |
|
||||||
|
//| ⚠ MT5 kann bei OBJ_RECTANGLE KEIN echtes Alpha (nur Canvas- |
|
||||||
|
//| Objekte könnten das). Da der Hintergrund bekannt und einfarbig |
|
||||||
|
//| ist, sieht die Mischung exakt aus wie eine transparente Füllung. |
|
||||||
|
//| pct = Deckkraft in % (10 = sehr transparent, 100 = voll deckend). |
|
||||||
|
//+------------------------------------------------------------------+
|
||||||
|
color BlendBg(color c, int pct)
|
||||||
|
{
|
||||||
|
if(pct >= 100) return c;
|
||||||
|
if(pct < 0) pct = 0;
|
||||||
|
color bg = (color)ChartGetInteger(0, CHART_COLOR_BACKGROUND);
|
||||||
|
double a = pct / 100.0;
|
||||||
|
int r = (int)((c & 0xFF) * a + (bg & 0xFF) * (1 - a));
|
||||||
|
int g = (int)(((c >> 8) & 0xFF) * a + ((bg >> 8) & 0xFF) * (1 - a));
|
||||||
|
int b = (int)(((c >> 16)& 0xFF) * a + ((bg >> 16)& 0xFF) * (1 - a));
|
||||||
|
return (color)(r | (g << 8) | (b << 16));
|
||||||
|
}
|
||||||
|
//+------------------------------------------------------------------+
|
||||||
void ApplyTheme()
|
void ApplyTheme()
|
||||||
{
|
{
|
||||||
ChartSetInteger(0, CHART_MODE, CHART_CANDLES);
|
ChartSetInteger(0, CHART_MODE, CHART_CANDLES);
|
||||||
@@ -417,9 +442,9 @@ void Redraw()
|
|||||||
if(zlo <= 0 || zhi <= 0 || zt <= 0) continue;
|
if(zlo <= 0 || zhi <= 0 || zt <= 0) continue;
|
||||||
datetime zend = iTime(_Symbol, PERIOD_CURRENT, 0) + (datetime)(PeriodSeconds() * 3);
|
datetime zend = iTime(_Symbol, PERIOD_CURRENT, 0) + (datetime)(PeriodSeconds() * 3);
|
||||||
string zn = PFX + "EQZ_" + zs;
|
string zn = PFX + "EQZ_" + zs;
|
||||||
|
color zfill = BlendBg(InpLiqZoneColor, InpLiqZoneAlpha);
|
||||||
if(ObjectCreate(0, zn, OBJ_RECTANGLE, 0, zt, zlo, zend, zhi))
|
if(ObjectCreate(0, zn, OBJ_RECTANGLE, 0, zt, zlo, zend, zhi))
|
||||||
{
|
{
|
||||||
ObjectSetInteger(0, zn, OBJPROP_COLOR, InpLiqZoneColor);
|
|
||||||
ObjectSetInteger(0, zn, OBJPROP_STYLE, STYLE_SOLID);
|
ObjectSetInteger(0, zn, OBJPROP_STYLE, STYLE_SOLID);
|
||||||
ObjectSetInteger(0, zn, OBJPROP_WIDTH, 1);
|
ObjectSetInteger(0, zn, OBJPROP_WIDTH, 1);
|
||||||
ObjectSetInteger(0, zn, OBJPROP_FILL, true);
|
ObjectSetInteger(0, zn, OBJPROP_FILL, true);
|
||||||
@@ -434,6 +459,9 @@ void Redraw()
|
|||||||
ObjectMove(0, zn, 0, zt, zlo);
|
ObjectMove(0, zn, 0, zt, zlo);
|
||||||
ObjectMove(0, zn, 1, zend, zhi);
|
ObjectMove(0, zn, 1, zend, zhi);
|
||||||
}
|
}
|
||||||
|
// Farbe IMMER setzen (auch beim Bewegen) — sonst bliebe nach einer
|
||||||
|
// Alpha-Änderung die alte Füllung stehen, bis das Objekt neu entsteht.
|
||||||
|
ObjectSetInteger(0, zn, OBJPROP_COLOR, zfill);
|
||||||
// gestrichelte Kante auf Höhe des Levels (wie im Bild)
|
// gestrichelte Kante auf Höhe des Levels (wie im Bild)
|
||||||
string zl = PFX + "EQL_" + zs;
|
string zl = PFX + "EQL_" + zs;
|
||||||
double edge = (zs == "H" ? zhi : zlo);
|
double edge = (zs == "H" ? zhi : zlo);
|
||||||
|
|||||||
Reference in New Issue
Block a user