Trade-Umrandungen entfernt + Darstellungsfehler behoben (MQL5 v1.22)
User: "entferne die umrandungen fuer trade open und close" + "das bild sieht
komiesch aus" (Screenshot).
(a) Trade-Umrandungen AUS: InpShowTrades=false UND Export im Bot abgeschaltet
([trading] export_trade_marks=false) -- spart auch die DB-Abfrage im
5-s-Export-Takt. Code bleibt reaktivierbar.
(b) Liquiditaets-Trendlinie: RAY_RIGHT entfernt. Eine 60-min-Regression 100 Bars
in die Zukunft zu verlaengern riss die Linie steil ins Bodenlose (im
Screenshot deutlich zu sehen). Sie endet jetzt am aktuellen Rand.
(c) CHART_SHIFT_SIZE auf 12% begrenzt (InpShiftPct). Ohne Begrenzung war der
Shift-Bereich so gross, dass der Kursverlauf links gequetscht stand.
Verifiziert: TR-Zeilen aus sr_levels.csv verschwunden, Rest unveraendert.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
e40e962db4
commit
73712b5ea7
@@ -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.21** — `LQ`-Handler zeichnet seit v1.14 **nur noch
|
**`mql5/SR_Levels.mq5`** (**v1.22** — `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
|
||||||
|
|||||||
@@ -298,6 +298,7 @@ class TradingEngine:
|
|||||||
"runtime_state.json")
|
"runtime_state.json")
|
||||||
self._load_runtime_state()
|
self._load_runtime_state()
|
||||||
self._mql5_files_dir = None # <terminal>\MQL5\Files (lazy, für den Indikator)
|
self._mql5_files_dir = None # <terminal>\MQL5\Files (lazy, für den Indikator)
|
||||||
|
self._export_trade_marks = self.cfg["trading"].get("export_trade_marks", "false").lower() == "true"
|
||||||
self._export_mql5 = self.cfg["trading"].get("export_mql5_levels", "true").lower() == "true"
|
self._export_mql5 = self.cfg["trading"].get("export_mql5_levels", "true").lower() == "true"
|
||||||
self._draw_last = {"r": None, "s": None} # letzte gezeichnete S/R (Hysterese)
|
self._draw_last = {"r": None, "s": None} # letzte gezeichnete S/R (Hysterese)
|
||||||
try: # WHT-Quellensteuer (Broker behält % je GEWINN ein) → Netto-Anzeige
|
try: # WHT-Quellensteuer (Broker behält % je GEWINN ein) → Netto-Anzeige
|
||||||
@@ -2010,7 +2011,13 @@ class TradingEngine:
|
|||||||
# Trade-Marker: TR;<O|C>;<broker_time> → der Indikator umrandet die Kerze,
|
# Trade-Marker: TR;<O|C>;<broker_time> → der Indikator umrandet die Kerze,
|
||||||
# in der eröffnet (hellgrün) bzw. geschlossen (dunkelgrün) wurde
|
# in der eröffnet (hellgrün) bzw. geschlossen (dunkelgrün) wurde
|
||||||
# (User-Vorgabe 2026-07-30). Offene Position + die letzten Trades des Tages.
|
# (User-Vorgabe 2026-07-30). Offene Position + die letzten Trades des Tages.
|
||||||
|
# ⚠ Per Default AUS (User-Wunsch 2026-07-30: „entferne die Umrandungen
|
||||||
|
# für Trade open und close" — kurz nach dem Einbau wieder verworfen).
|
||||||
|
# Code bleibt reaktivierbar via `[trading] export_trade_marks=true`;
|
||||||
|
# spart im Aus-Zustand die DB-Abfrage im ~5-s-Export-Takt.
|
||||||
try:
|
try:
|
||||||
|
if not self._export_trade_marks:
|
||||||
|
raise StopIteration
|
||||||
boff = self.trader._broker_offset_s()
|
boff = self.trader._broker_offset_s()
|
||||||
marks: list[tuple[str, int]] = []
|
marks: list[tuple[str, int]] = []
|
||||||
ps = self.trader.snapshot()
|
ps = self.trader.snapshot()
|
||||||
|
|||||||
+21
-3
@@ -12,7 +12,15 @@
|
|||||||
//| 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.21"
|
#property version "1.22"
|
||||||
|
// v1.22 (2026-07-30): Aufraeumen nach User-Feedback „das Bild sieht komisch aus":
|
||||||
|
// (a) Trade-Umrandungen ENTFERNT (InpShowTrades=false, Export im Bot aus).
|
||||||
|
// (b) Liquiditaets-Trendlinie nicht mehr RAY_RIGHT — eine 60-min-Regression
|
||||||
|
// 100 Bars in die Zukunft zu ziehen riss die Linie ins Bodenlose.
|
||||||
|
// (c) CHART_SHIFT_SIZE begrenzt (InpShiftPct=12 %) — ohne Begrenzung stand
|
||||||
|
// der Kursverlauf ganz links gequetscht.
|
||||||
|
// ⚠ MT5 uebernimmt beim Neukompilieren NICHT die neuen Default-Inputs, wenn
|
||||||
|
// der Indikator schon auf dem Chart liegt: einmal ENTFERNEN und neu aufziehen.
|
||||||
// v1.21 (2026-07-30): Beschriftungen aller Linien RECHTSBUENDIG am rechten
|
// v1.21 (2026-07-30): Beschriftungen aller Linien RECHTSBUENDIG am rechten
|
||||||
// Chart-Rand (vorher zentriert; ANCHOR_RIGHT_LOWER -> Text endet am Anker,
|
// Chart-Rand (vorher zentriert; ANCHOR_RIGHT_LOWER -> Text endet am Anker,
|
||||||
// laeuft nach links, ragt nicht raus) + Schriftgroesse 8 -> 12 (+4 px,
|
// laeuft nach links, ragt nicht raus) + Schriftgroesse 8 -> 12 (+4 px,
|
||||||
@@ -82,7 +90,7 @@ input color InpWallAskColor = C'245,158,11'; // Liquidität Angebot (Ask) —
|
|||||||
input bool InpShowLiqTrend = true; // Liquiditäts-Trendlinie zeichnen
|
input bool InpShowLiqTrend = true; // Liquiditäts-Trendlinie zeichnen
|
||||||
input color InpLiqTrendColor = clrMagenta; // Liquiditäts-Trend (pink)
|
input color InpLiqTrendColor = clrMagenta; // Liquiditäts-Trend (pink)
|
||||||
input bool InpLiqTrendLabel = false; // Beschriftung der Trendlinie (aus per User-Wunsch)
|
input bool InpLiqTrendLabel = false; // Beschriftung der Trendlinie (aus per User-Wunsch)
|
||||||
input bool InpShowTrades = true; // Trade-Kerzen umranden (Eroeffnung/Close)
|
input bool InpShowTrades = false; // Trade-Kerzen umranden (AUS per User-Wunsch)
|
||||||
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)
|
||||||
@@ -106,6 +114,7 @@ input color InpThemeBg = C'13,17,23'; // Hintergrund
|
|||||||
input color InpThemeGrid = C'16,21,28'; // Gitternetz (dezent)
|
input color InpThemeGrid = C'16,21,28'; // Gitternetz (dezent)
|
||||||
input color InpThemeText = C'139,148,158'; // Achsen/Text
|
input color InpThemeText = C'139,148,158'; // Achsen/Text
|
||||||
input color InpThemeBidLine = clrWhite; // aktuelle Kurslinie (Bid) — weiss
|
input color InpThemeBidLine = clrWhite; // aktuelle Kurslinie (Bid) — weiss
|
||||||
|
input double InpShiftPct = 12.0; // Platz rechts fuer Pfeile/Labels (% der Chartbreite)
|
||||||
|
|
||||||
const string PFX = "SRB_"; // Präfix S/R-Linien (aus Datei)
|
const string PFX = "SRB_"; // Präfix S/R-Linien (aus Datei)
|
||||||
const string RPFX = "SRR_"; // Präfix dynamische Range (aus Chart)
|
const string RPFX = "SRR_"; // Präfix dynamische Range (aus Chart)
|
||||||
@@ -171,6 +180,10 @@ void ApplyTheme()
|
|||||||
// letzten Kerze. Ohne Shift gibt es dort keinen sichtbaren Bereich → die Pfeile
|
// letzten Kerze. Ohne Shift gibt es dort keinen sichtbaren Bereich → die Pfeile
|
||||||
// wären unsichtbar (das war der zweite Grund für „Pfeile werden nicht angezeigt").
|
// wären unsichtbar (das war der zweite Grund für „Pfeile werden nicht angezeigt").
|
||||||
ChartSetInteger(0, CHART_SHIFT, true);
|
ChartSetInteger(0, CHART_SHIFT, true);
|
||||||
|
// Shift-Bereich klein halten: nur so viel Platz rechts, dass Pfeile und
|
||||||
|
// Beschriftungen hinpassen. Ohne Begrenzung stand der Kursverlauf ganz links
|
||||||
|
// gequetscht (User-Feedback „das Bild sieht komisch aus", 2026-07-30).
|
||||||
|
ChartSetDouble(0, CHART_SHIFT_SIZE, InpShiftPct);
|
||||||
ChartRedraw();
|
ChartRedraw();
|
||||||
}
|
}
|
||||||
//+------------------------------------------------------------------+
|
//+------------------------------------------------------------------+
|
||||||
@@ -586,7 +599,11 @@ void Redraw()
|
|||||||
ObjectSetInteger(0, nm, OBJPROP_COLOR, InpLiqTrendColor);
|
ObjectSetInteger(0, nm, OBJPROP_COLOR, InpLiqTrendColor);
|
||||||
ObjectSetInteger(0, nm, OBJPROP_STYLE, STYLE_SOLID);
|
ObjectSetInteger(0, nm, OBJPROP_STYLE, STYLE_SOLID);
|
||||||
ObjectSetInteger(0, nm, OBJPROP_WIDTH, 2);
|
ObjectSetInteger(0, nm, OBJPROP_WIDTH, 2);
|
||||||
ObjectSetInteger(0, nm, OBJPROP_RAY_RIGHT, true);
|
// ⚠ KEIN RAY_RIGHT: eine 60-min-Regression 100 Bars in die Zukunft zu
|
||||||
|
// verlängern ergibt keinen Sinn und riss die Linie optisch ins
|
||||||
|
// Bodenlose (User-Feedback „das Bild sieht komisch aus", 2026-07-30).
|
||||||
|
// Die Linie endet jetzt am aktuellen Rand.
|
||||||
|
ObjectSetInteger(0, nm, OBJPROP_RAY_RIGHT, false);
|
||||||
ObjectSetInteger(0, nm, OBJPROP_RAY_LEFT, false);
|
ObjectSetInteger(0, nm, OBJPROP_RAY_LEFT, false);
|
||||||
ObjectSetInteger(0, nm, OBJPROP_BACK, true);
|
ObjectSetInteger(0, nm, OBJPROP_BACK, true);
|
||||||
ObjectSetInteger(0, nm, OBJPROP_SELECTABLE, false);
|
ObjectSetInteger(0, nm, OBJPROP_SELECTABLE, false);
|
||||||
@@ -595,6 +612,7 @@ void Redraw()
|
|||||||
{
|
{
|
||||||
ObjectMove(0, nm, 0, t1, q1);
|
ObjectMove(0, nm, 0, t1, q1);
|
||||||
ObjectMove(0, nm, 1, t2, q2);
|
ObjectMove(0, nm, 1, t2, q2);
|
||||||
|
ObjectSetInteger(0, nm, OBJPROP_RAY_RIGHT, false);
|
||||||
}
|
}
|
||||||
// Beschriftung der Liquiditäts-Trendlinie: auf User-Wunsch (2026-07-30)
|
// Beschriftung der Liquiditäts-Trendlinie: auf User-Wunsch (2026-07-30)
|
||||||
// per Default AUS — der Chart soll sauber bleiben. Die Richtung liest man
|
// per Default AUS — der Chart soll sauber bleiben. Die Richtung liest man
|
||||||
|
|||||||
Reference in New Issue
Block a user