S/R als ZONE statt Linie (RZ/SZ, Indikator v1.37)
User-Wunsch nach einem TradingView-Bild: Resistance Zone und eine untere Zone
als farbige Baender. Neu RZ;lo;hi und SZ;lo;hi, im Indikator als OBJ_RECTANGLE
mit Beschriftung, nach rechts verlaengert.
DIE BREITE IST ECHT: sie ist die Spanne der M30-Pivots, die den Cluster gebildet
haben (sr_levels.zonen(), additiv -- cluster() bleibt unveraendert, weil es den
S/R-Auto-Close speist). Live verifiziert: R;82.786 liegt in RZ;82.776;82.797,
S;82.15 in SZ;82.14;82.16. Einzel-Pivot bekommt 0,10xATR Mindestbreite.
ZWEI ABWEICHUNGEN VOM VORBILD, beide begruendet:
(1) KEIN Fibonacci. Das Bild leitet seine Zone aus 0,618/0,658 ab. Fib ist hier
gemessen und verworfen (04.08.): 54,3/54,5 % Haltequote gegen 55,7/53,8 %
einer Zufallslinie gleicher Distanz, und schlechter als M30-Pivots.
(2) Die untere Zone heisst SUPPORT, nicht "Cumulative Long Liquidation". Echte
Liquidationsdaten hat das Projekt nicht; die HL-Waende sind am 17.08. als
reaktiv gemessen. Bricht die Support-Zone, liegen dort die Long-Stops --
dieselbe Stelle, ehrlich benannt.
Abschaltbar InpShowZonen. Kompiliert ins richtige Terminal (0/0), deployt,
verifiziert.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
8d17cf08e0
commit
ca61cf1498
+52
-1
@@ -12,7 +12,12 @@
|
||||
//| 4) Der Bot muss laufen (schreibt die CSV alle ~5 s). |
|
||||
//+------------------------------------------------------------------+
|
||||
#property copyright "Oil Trading Bot"
|
||||
#property version "1.36"
|
||||
#property version "1.37"
|
||||
// v1.37 (2026-08-17): ZONEN (RZ/SZ) — S/R zusaetzlich als farbiges Band, wie im
|
||||
// TradingView-Vorbild des Users. Die Breite ist die echte Spanne der
|
||||
// M30-Pivots im Cluster; die Vorlage leitet ihre Zone aus Fibonacci ab,
|
||||
// das ist hier gemessen und verworfen. Untere Zone heisst SUPPORT, nicht
|
||||
// "Long Liquidation" -- echte Liquidationsdaten hat das Projekt nicht.
|
||||
// v1.36 (2026-08-17): MELDUNGEN oben links (MS;<text>) — dieselben Zeilen wie
|
||||
// die Dashboard-Karte "Meldungen" (Squeeze, Ueberdehnung, S/R-Ziel,
|
||||
// Stop-Seite, News-Blackout). Der Bot setzt sie nur ZUSAMMEN aus bereits
|
||||
@@ -230,6 +235,12 @@ input bool InpShowTradeLevels = true; // MT5-Positionslinien+Labels (st
|
||||
input bool InpShowMeldungen = true; // Meldungen oben links einblenden
|
||||
input int InpMeldungSize = 10; // Schriftgroesse der Meldungen
|
||||
input color InpMeldungColor = clrGainsboro; // Farbe der Meldungen
|
||||
// Zonen statt nackter Linien (User-Wunsch 2026-08-17). Die BREITE ist die echte
|
||||
// Spanne der Pivots im Cluster — NICHT Fibonacci (im Projekt gemessen und
|
||||
// verworfen: haelt nicht besser als eine Zufallslinie gleicher Distanz).
|
||||
input bool InpShowZonen = true; // S/R als ZONE (Band) zeichnen
|
||||
input color InpZoneResColor = C'60,25,30'; // Widerstands-Zone (dunkelrot)
|
||||
input color InpZoneSupColor = C'20,45,35'; // Support-Zone (dunkelgruen)
|
||||
|
||||
const string PFX = "SRB_"; // Präfix S/R-Linien (aus Datei)
|
||||
const string RPFX = "SRR_"; // Präfix dynamische Range (aus Chart)
|
||||
@@ -899,6 +910,46 @@ void Redraw()
|
||||
ObjectSetInteger(0, pn, OBJPROP_COLOR, InpPriceColor);
|
||||
continue;
|
||||
}
|
||||
// ZONEN (RZ;lo;hi = Widerstand · SZ;lo;hi = Support) — User-Wunsch
|
||||
// 2026-08-17 nach einem TradingView-Bild. Farbiges Band statt nackter
|
||||
// Linie; die BREITE ist die echte Spanne der Pivots, die den Cluster
|
||||
// gebildet haben (nicht Fibonacci — das ist im Projekt gemessen und
|
||||
// verworfen). Nach rechts verlaengert, damit es wie im Vorbild wirkt.
|
||||
if(typ == "RZ" || typ == "SZ")
|
||||
{
|
||||
if(!InpShowZonen || k < 3) continue;
|
||||
double zlo = StringToDouble(p[1]), zhi = StringToDouble(p[2]);
|
||||
if(zlo <= 0 || zhi <= 0) continue;
|
||||
string zn = PFX + "ZONE_" + typ;
|
||||
color zc = (typ == "RZ" ? InpZoneResColor : InpZoneSupColor);
|
||||
datetime t1 = iTime(_Symbol, PERIOD_CURRENT, MathMin(60, Bars(_Symbol, PERIOD_CURRENT) - 1));
|
||||
if(ObjectFind(0, zn) < 0)
|
||||
{
|
||||
ObjectCreate(0, zn, OBJ_RECTANGLE, 0, t1, zlo, RightTime(), zhi);
|
||||
ObjectSetInteger(0, zn, OBJPROP_FILL, true);
|
||||
ObjectSetInteger(0, zn, OBJPROP_BACK, true);
|
||||
ObjectSetInteger(0, zn, OBJPROP_SELECTABLE, false);
|
||||
}
|
||||
ObjectSetInteger(0, zn, OBJPROP_COLOR, zc);
|
||||
ObjectMove(0, zn, 0, t1, zlo);
|
||||
ObjectMove(0, zn, 1, RightTime(), zhi);
|
||||
// Beschriftung an der Oberkante, rechtsbuendig wie die S/R-Labels
|
||||
string zt = PFX + "TZONE_" + typ;
|
||||
if(ObjectFind(0, zt) < 0)
|
||||
{
|
||||
ObjectCreate(0, zt, OBJ_TEXT, 0, RightTime(), zhi);
|
||||
ObjectSetInteger(0, zt, OBJPROP_ANCHOR, ANCHOR_RIGHT_LOWER);
|
||||
ObjectSetInteger(0, zt, OBJPROP_FONTSIZE, InpLabelSize);
|
||||
ObjectSetInteger(0, zt, OBJPROP_SELECTABLE, false);
|
||||
}
|
||||
ObjectSetString (0, zt, OBJPROP_TEXT,
|
||||
(typ == "RZ" ? "Resistance Zone " : "Support Zone ")
|
||||
+ DoubleToString(zlo, (int)_Digits) + " - "
|
||||
+ DoubleToString(zhi, (int)_Digits));
|
||||
ObjectSetInteger(0, zt, OBJPROP_COLOR, zc);
|
||||
ObjectMove(0, zt, 0, RightTime(), zhi);
|
||||
continue;
|
||||
}
|
||||
// MELDUNGEN oben LINKS (MS;<text>) — User-Wunsch 2026-08-17.
|
||||
// Dieselben Zeilen wie die Dashboard-Karte „Meldungen"; der Bot setzt sie
|
||||
// zusammen und deckelt auf 5. Hier nur gestapelt darstellen.
|
||||
|
||||
Reference in New Issue
Block a user