Liquiditaets-Waende: Richtungs-Pfeil + pinke Liquiditaets-Trendlinie (v1.13)
User-Wunsch: "Kennzeiche die Liquiditaetslinie mit einem Pfeil in welche richtung
die linie den Kurs treibt. Zeichne mir eine Trendlnie in pink im mt5 auf basis
der liquiditaet ein".
(a) Pfeil je Wand in Wirkrichtung (Lesart "die Wand haelt": Nachfrage stuetzt hoch,
Angebot deckelt runter); groessere Wand dicker + "<<". CSV-Format erweitert:
LQ;<B|A>;preis;size;<U|D>;<1|0>.
WICHTIG: Pfeilrichtung ist INTERPRETATION, nicht gemessen -- die Gegenthese
("Liquidity Grab", Kurs laeuft ZUR Wand) ist genauso verbreitet. Klaert
analyze_bookflow.py Frage 3.
(b) Pinke Liquiditaets-Trendlinie LT;t1;p1;t2;p2;<U|D>: Regression ueber den
VOLUMENGEWICHTETEN Wand-Schwerpunkt der letzten 60 min. Zeigt, wohin das
Gewicht der RUHENDEN Orders wandert -- nicht der gehandelte Kurs.
Zeiten im Bot in Broker-Zeit umgerechnet, Preise basis-korrigiert.
HL /api/walls liefert jetzt arrow_bid/arrow_ask/dominant/trend.
Verifiziert: LQ;B;84.182;2441;U;1 / LQ;A;84.223;2441;D;0 /
LT;1785427175;84.135;1785430664;83.978;D in sr_levels.csv. Indikator kompiliert.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
f64677895e
commit
06b37a1474
+81
-3
@@ -12,7 +12,14 @@
|
||||
//| 4) Der Bot muss laufen (schreibt die CSV alle ~5 s). |
|
||||
//+------------------------------------------------------------------+
|
||||
#property copyright "Oil Trading Bot"
|
||||
#property version "1.12"
|
||||
#property version "1.13"
|
||||
// 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
|
||||
// LIQUIDITÄTS-TRENDLINIE (LT;…) = Regression über den volumengewichteten
|
||||
// Wand-Schwerpunkt der letzten ~60 min — zeigt, wohin das Gewicht der
|
||||
// RUHENDEN Orders wandert (nicht der gehandelte Kurs).
|
||||
// ⚠ Pfeilrichtung ist INTERPRETATION, nicht gemessen (s. analyze_bookflow.py).
|
||||
// v1.12 (2026-07-30): Chartmuster-Linien (PT;…) ENTFERNT (User-Wunsch, Chart war zu
|
||||
// voll — Kachel/PWA-Anzeige bleibt). NEU: ECHTE Liquiditäts-Wände (LQ;…) aus
|
||||
// dem Hyperliquid-L2-Orderbuch, basis-korrigiert auf CFD-Niveau — die einzigen
|
||||
@@ -36,6 +43,8 @@ input color InpChanColor = clrYellow; // Kanal-Farbe
|
||||
input bool InpShowWalls = true; // echte Liquiditäts-Wände (Hyperliquid-Orderbuch)
|
||||
input color InpWallBidColor = clrMediumSpringGreen; // Nachfrage-Wand (Bid, Käufer)
|
||||
input color InpWallAskColor = clrOrangeRed; // Angebots-Wand (Ask, Verkäufer)
|
||||
input bool InpShowLiqTrend = true; // Liquiditäts-Trendlinie zeichnen
|
||||
input color InpLiqTrendColor = clrMagenta; // Liquiditäts-Trend (pink)
|
||||
|
||||
const string PFX = "SRB_"; // Präfix S/R-Linien (aus Datei)
|
||||
const string RPFX = "SRR_"; // Präfix dynamische Range (aus Chart)
|
||||
@@ -279,8 +288,16 @@ void Redraw()
|
||||
}
|
||||
else
|
||||
ObjectMove(0, nm, 0, 0, lpx);
|
||||
string llbl = (isBid ? "Liquidität NACHFRAGE " : "Liquidität ANGEBOT ")
|
||||
+ DoubleToString(lsz, 0);
|
||||
// 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 + "<<".
|
||||
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))
|
||||
{
|
||||
@@ -295,6 +312,67 @@ void Redraw()
|
||||
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);
|
||||
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_SELECTABLE, false);
|
||||
}
|
||||
else
|
||||
ObjectMove(0, an, 0, atime, lpx);
|
||||
continue;
|
||||
}
|
||||
// Liquiditäts-TRENDLINIE: LT;t1;p1;t2;p2;<U|D> (pink, nach rechts verlängert).
|
||||
// Regression über den VOLUMENGEWICHTETEN Schwerpunkt der beiden Wände über die
|
||||
// letzten ~60 min: zeigt, wohin das Gewicht der RUHENDEN Orders wandert —
|
||||
// NICHT wohin der gehandelte Kurs läuft. Steigt sie, ziehen die Käufer ihre
|
||||
// großen Gebote hoch. Zeiten kommen bereits in Broker-Zeit aus dem Bot.
|
||||
if(typ == "LT")
|
||||
{
|
||||
if(k < 5) continue;
|
||||
if(!InpShowLiqTrend) continue;
|
||||
datetime t1 = (datetime)StringToInteger(p[1]);
|
||||
double q1 = StringToDouble(p[2]);
|
||||
datetime t2 = (datetime)StringToInteger(p[3]);
|
||||
double q2 = StringToDouble(p[4]);
|
||||
string td = (k > 5) ? p[5] : "";
|
||||
if(t1 <= 0 || t2 <= 0 || q1 <= 0 || q2 <= 0) continue;
|
||||
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_STYLE, STYLE_SOLID);
|
||||
ObjectSetInteger(0, nm, OBJPROP_WIDTH, 2);
|
||||
ObjectSetInteger(0, nm, OBJPROP_RAY_RIGHT, true);
|
||||
ObjectSetInteger(0, nm, OBJPROP_RAY_LEFT, false);
|
||||
ObjectSetInteger(0, nm, OBJPROP_BACK, true);
|
||||
ObjectSetInteger(0, nm, OBJPROP_SELECTABLE, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
ObjectMove(0, nm, 0, t1, q1);
|
||||
ObjectMove(0, nm, 1, t2, q2);
|
||||
}
|
||||
string tl = PFX + "TLIQTREND";
|
||||
string tt = "Liquiditäts-Trend " + (td == "U" ? CharToString(94) : CharToString(118));
|
||||
if(ObjectCreate(0, tl, OBJ_TEXT, 0, t2, q2))
|
||||
{
|
||||
ObjectSetString (0, tl, OBJPROP_TEXT, tt);
|
||||
ObjectSetInteger(0, tl, OBJPROP_COLOR, InpLiqTrendColor);
|
||||
ObjectSetInteger(0, tl, OBJPROP_FONTSIZE, 9);
|
||||
ObjectSetInteger(0, tl, OBJPROP_ANCHOR, ANCHOR_LOWER);
|
||||
ObjectSetInteger(0, tl, OBJPROP_SELECTABLE, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
ObjectMove(0, tl, 0, t2, q2);
|
||||
ObjectSetString(0, tl, OBJPROP_TEXT, tt);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
// ("Z;"-Zonen-Zeilen schreibt der Bot nicht mehr — die dynamische Handels-
|
||||
|
||||
Reference in New Issue
Block a user