Entry-Checkliste im Order-Dialog + Liquiditaets-Pfeile rechtsbuendig (v=120, MQL5 v1.14)
1) Entry-Checkliste (User: "blende einen Hinweis ein wenn die Checkliste gegen
meine Eroeffnung ist"): engine._entry_checklist prueft 7 Punkte mit Live-Daten
-- Signal-Deckung, HTF-Trend M30+H1, Entry-Raum, News-Konflikt, Kosten,
Verlust-Serie heute (Mental-Check), Nacht-Stunde. Snapshot checklist{long,short},
Anzeige im Bestaetigungs-Dialog, blockt nicht. Kommt jetzt auch bei vorhandenem
Signal (alter Dialog nur bei WARTEN/Gegen-Signal).
Real beim Einbau: beide Richtungen "stop" (11 Verluste heute = 80% des Kontos).
2) MQL5 v1.14 (User: "blende die liquiditaetslinien aus, nur die Pfeile sollen
rechtsbuendig angezeigt werden"): LQ-Linien + Text-Labels raus, nur noch der
Pfeil auf dem Wand-Preis, rechtsbuendig am aktuellen Rand (in RepositionLabels
nachgefuehrt, bleibt beim Scrollen rechts). Details im Tooltip. Pinke
Liquiditaets-Trendlinie unveraendert. Kompiliert.
3) backtest_liquidity_sweep.py (SMC Equal Highs/Lows + Swing Liquidity, Multi-TF-
und Session-Achse): faellt durch -- Details folgen in der Doku.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
b77b3d60f5
commit
919fe61dc3
+40
-38
@@ -12,7 +12,13 @@
|
||||
//| 4) Der Bot muss laufen (schreibt die CSV alle ~5 s). |
|
||||
//+------------------------------------------------------------------+
|
||||
#property copyright "Oil Trading Bot"
|
||||
#property version "1.13"
|
||||
#property version "1.14"
|
||||
// v1.14 (2026-07-30): Liquiditäts-LINIEN + Text-Labels ENTFERNT (User: „blende die
|
||||
// liquiditätslinien aus, nur die Pfeile sollen rechtsbündig angezeigt werden").
|
||||
// Es bleibt NUR der Pfeil auf dem Wand-Preis, RECHTSBÜNDIG am aktuellen Rand
|
||||
// (wird in RepositionLabels() nachgeführt, bleibt beim Scrollen rechts).
|
||||
// Details (Seite/Größe/Dominanz/Preis) jetzt im TOOLTIP statt im Chart.
|
||||
// Die pinke Liquiditäts-Trendlinie bleibt unverändert.
|
||||
// v1.13 (2026-07-30): Liquiditäts-Wände bekommen einen PFEIL in ihrer Wirkrichtung
|
||||
// (Lesart „die Wand hält" — Nachfrage stützt hoch, Angebot deckelt runter;
|
||||
// die GRÖSSERE Wand wird dicker gezeichnet + "<<"). NEU: pinke
|
||||
@@ -95,6 +101,17 @@ void RepositionLabels()
|
||||
ObjectMove(0, nm, 0, ct, pr);
|
||||
}
|
||||
}
|
||||
// Liquiditäts-PFEILE rechtsbündig halten: die CSV ändert sich nicht bei jedem
|
||||
// Tick, ohne Nachführung würden die Pfeile mit jeder neuen Kerze nach links
|
||||
// wandern. Preis bleibt, nur die Zeit wird an den rechten Rand gezogen.
|
||||
datetime rt = iTime(_Symbol, PERIOD_CURRENT, 0) + (datetime)(PeriodSeconds() * 2);
|
||||
int na = ObjectsTotal(0, 0, OBJ_ARROW);
|
||||
for(int i = 0; i < na; i++)
|
||||
{
|
||||
string nm = ObjectName(0, i, 0, OBJ_ARROW);
|
||||
if(StringFind(nm, PFX + "ALQ_") == 0)
|
||||
ObjectMove(0, nm, 0, rt, ObjectGetDouble(0, nm, OBJPROP_PRICE));
|
||||
}
|
||||
ChartRedraw();
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
@@ -277,54 +294,39 @@ void Redraw()
|
||||
if(lpx <= 0) continue;
|
||||
bool isBid = (side == "B");
|
||||
color lcol = isBid ? InpWallBidColor : InpWallAskColor;
|
||||
string nm = PFX + "LQ_" + side;
|
||||
if(ObjectCreate(0, nm, OBJ_HLINE, 0, 0, lpx))
|
||||
{
|
||||
ObjectSetInteger(0, nm, OBJPROP_COLOR, lcol);
|
||||
ObjectSetInteger(0, nm, OBJPROP_STYLE, STYLE_DASH);
|
||||
ObjectSetInteger(0, nm, OBJPROP_WIDTH, 2);
|
||||
ObjectSetInteger(0, nm, OBJPROP_BACK, true);
|
||||
ObjectSetInteger(0, nm, OBJPROP_SELECTABLE, false);
|
||||
}
|
||||
else
|
||||
ObjectMove(0, nm, 0, 0, lpx);
|
||||
// Pfeil = Wirkrichtung der Wand (Feld 4: U/D). Lesart „die Wand HÄLT":
|
||||
// Nachfrage-Wand stützt von unten (hoch), Angebots-Wand deckelt (runter).
|
||||
// Feld 5 = 1 bei der GRÖSSEREN der beiden Wände → dickere Linie + "<<".
|
||||
// ⚠ 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)
|
||||
// stehen im TOOLTIP (Maus drüber) statt fest im Chart.
|
||||
string dirc = (k > 4) ? p[4] : (isBid ? "U" : "D");
|
||||
bool isDom = (k > 5 && p[5] == "1");
|
||||
string arrow = (dirc == "U" ? CharToString(94) : CharToString(118)); // ^ / v
|
||||
if(isDom)
|
||||
ObjectSetInteger(0, nm, OBJPROP_WIDTH, 3);
|
||||
string llbl = arrow + " " + (isBid ? "Liquidität NACHFRAGE " : "Liquidität ANGEBOT ")
|
||||
+ DoubleToString(lsz, 0) + (isDom ? " <<" : "");
|
||||
string ltn = PFX + "TLQ_" + side;
|
||||
if(ObjectCreate(0, ltn, OBJ_TEXT, 0, CenterTime(), lpx))
|
||||
{
|
||||
ObjectSetString (0, ltn, OBJPROP_TEXT, llbl);
|
||||
ObjectSetInteger(0, ltn, OBJPROP_COLOR, lcol);
|
||||
ObjectSetInteger(0, ltn, OBJPROP_FONTSIZE, 9);
|
||||
ObjectSetInteger(0, ltn, OBJPROP_ANCHOR, ANCHOR_LOWER);
|
||||
ObjectSetInteger(0, ltn, OBJPROP_SELECTABLE, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
ObjectMove(0, ltn, 0, CenterTime(), lpx);
|
||||
ObjectSetString(0, ltn, OBJPROP_TEXT, llbl);
|
||||
}
|
||||
// Echtes Pfeil-Objekt am rechten Rand (Wingdings 233 hoch / 234 runter) —
|
||||
// deutlicher sichtbar als das Textzeichen im Label.
|
||||
string an = PFX + "ALQ_" + side;
|
||||
datetime atime = CenterTime() + (datetime)(PeriodSeconds() * 6);
|
||||
// Rechter Rand = aktuelle (rechteste) Kerze + kleiner Versatz, damit der
|
||||
// Pfeil frei neben dem Kursverlauf steht und beim Scrollen rechts bleibt.
|
||||
datetime atime = iTime(_Symbol, PERIOD_CURRENT, 0)
|
||||
+ (datetime)(PeriodSeconds() * 2);
|
||||
if(ObjectCreate(0, an, OBJ_ARROW, 0, atime, lpx))
|
||||
{
|
||||
ObjectSetInteger(0, an, OBJPROP_ARROWCODE, (dirc == "U" ? 233 : 234));
|
||||
ObjectSetInteger(0, an, OBJPROP_COLOR, lcol);
|
||||
ObjectSetInteger(0, an, OBJPROP_WIDTH, (isDom ? 3 : 2));
|
||||
ObjectSetInteger(0, an, OBJPROP_WIDTH, (isDom ? 4 : 2));
|
||||
ObjectSetInteger(0, an, OBJPROP_ANCHOR, ANCHOR_LEFT);
|
||||
ObjectSetInteger(0, an, OBJPROP_SELECTABLE, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
ObjectMove(0, an, 0, atime, lpx);
|
||||
ObjectSetInteger(0, an, OBJPROP_WIDTH, (isDom ? 4 : 2));
|
||||
ObjectSetInteger(0, an, OBJPROP_COLOR, lcol);
|
||||
ObjectSetInteger(0, an, OBJPROP_ARROWCODE, (dirc == "U" ? 233 : 234));
|
||||
}
|
||||
ObjectSetString(0, an, OBJPROP_TOOLTIP,
|
||||
(isBid ? "Liquiditaet NACHFRAGE " : "Liquiditaet ANGEBOT ")
|
||||
+ DoubleToString(lsz, 0) + (isDom ? " (dominant)" : "")
|
||||
+ " @ " + DoubleToString(lpx, (int)_Digits));
|
||||
// evtl. noch vorhandene Alt-Objekte (Linie/Label aus v1.13) entfernen
|
||||
ObjectDelete(0, PFX + "LQ_" + side);
|
||||
ObjectDelete(0, PFX + "TLQ_" + side);
|
||||
continue;
|
||||
}
|
||||
// Liquiditäts-TRENDLINIE: LT;t1;p1;t2;p2;<U|D> (pink, nach rechts verlängert).
|
||||
|
||||
Reference in New Issue
Block a user