MQL5 v1.46: PT-Muster wurden NIE gezeichnet - PERIOD_CURRENT ist 0
Das bestaetigte M30-Muster "Tasse+Henkel" blieb unsichtbar, obwohl die CSV-Zeile korrekt vorlag (PT;M30;Tasse+Henkel;bull;87.810;88.746) und der Snapshot status=confirmed meldete. URSACHE: der TF-Filter verglich gegen TFName(PERIOD_CURRENT). PERIOD_CURRENT hat den WERT 0. MT5-Funktionen wie iTime() deuten 0 als "dieser Chart" - ein switch trifft damit aber KEINEN case, und TFName() fiel auf EnumToString() zurueck und lieferte den String "PERIOD_CURRENT". Der Vergleich p[1] != "PERIOD_CURRENT" war deshalb IMMER wahr, jede PT-Zeile wurde uebersprungen. Auf JEDER Zeitebene, nicht nur M30. FIX: TFName((ENUM_TIMEFRAMES)_Period) - _Period liefert die tatsaechliche Chart-Periode als Wert. Die uebrigen PERIOD_CURRENT-Verwendungen im Indikator sind korrekt: sie stehen als Argument in iTime()/Bars(), wo MT5 die 0 selbst aufloest. Kompiliert ins richtige Terminal (D0E8209F...), 0 errors 0 warnings, Spiegel mql5/SR_Levels.mq5 bitgleich.
This commit is contained in:
+8
-2
@@ -12,7 +12,7 @@
|
|||||||
//| 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.45"
|
#property version "1.46"
|
||||||
// v1.42 (2026-08-19): Y-Stapel oben rechts GEMESSEN statt geschaetzt. Der
|
// v1.42 (2026-08-19): Y-Stapel oben rechts GEMESSEN statt geschaetzt. Der
|
||||||
// Faktor 1,8 aus v1.41 war nur die naechste Schaetzung; jetzt liefert
|
// Faktor 1,8 aus v1.41 war nur die naechste Schaetzung; jetzt liefert
|
||||||
// TextGetSize die TATSAECHLICHE Pixelhoehe (LabelH). Ausserdem wird Y bei
|
// TextGetSize die TATSAECHLICHE Pixelhoehe (LabelH). Ausserdem wird Y bei
|
||||||
@@ -1021,7 +1021,13 @@ void Redraw()
|
|||||||
if(typ == "PT")
|
if(typ == "PT")
|
||||||
{
|
{
|
||||||
if(!InpShowMuster || k < 6) continue;
|
if(!InpShowMuster || k < 6) continue;
|
||||||
if(p[1] != TFName(PERIOD_CURRENT)) continue; // fremde Zeitebene
|
// ⚠⚠ `_Period`, NICHT `PERIOD_CURRENT`. PERIOD_CURRENT ist der Wert 0 —
|
||||||
|
// MT5-Funktionen wie iTime() deuten das als "dieser Chart", ein
|
||||||
|
// `switch` trifft damit aber KEINEN case und TFName() gab
|
||||||
|
// "PERIOD_CURRENT" zurueck. Der Vergleich schlug also IMMER fehl und
|
||||||
|
// es wurde NIE etwas gezeichnet (real am 21.08.: das bestaetigte
|
||||||
|
// M30-Muster blieb unsichtbar, obwohl die CSV-Zeile korrekt da war).
|
||||||
|
if(p[1] != TFName((ENUM_TIMEFRAMES)_Period)) continue; // fremde Zeitebene
|
||||||
double trg = StringToDouble(p[4]), zl = StringToDouble(p[5]);
|
double trg = StringToDouble(p[4]), zl = StringToDouble(p[5]);
|
||||||
if(trg <= 0 || zl <= 0) continue;
|
if(trg <= 0 || zl <= 0) continue;
|
||||||
bool bull = (p[3] == "bull");
|
bool bull = (p[3] == "bull");
|
||||||
|
|||||||
Reference in New Issue
Block a user