Files
MQL5Data/Documents/BKP/detect.block.base.trigger.mq5
T
2025-05-10 03:27:45 +03:30

97 lines
2.3 KiB
Plaintext

//
// Detect Block Based Trigger ...
XBoxZone ob;
XOHCL swing;
XOHCL breaker;
XOHCL outSide;
ENUM_X_DIRECTION passedDir;
bool isPassed = helper.IsBlockBasedTriggerBar(
ob,
swing,
breaker,
outSide,
passedDir,
1, // Bar Index ...
50, // Loopback ...
3 // Swing Length ...
);
if (isPassed)
{
//
// Draw Block Based Trigger ...
//
// Draw OB ...
XCBoxObject *obObject;
has = helper.poiDrawer.DrawBox(
ob,
obObject //
);
if (has)
{
//
obObject.BoxWidth(2);
obObject.BoxStyle(STYLE_SOLID);
//
color obColor =
ob.IsBullish()
? clrAqua
: clrMagenta;
obObject.BoxColor(obColor);
//
mObjects.Add(obObject);
//
ZeroMemory(obObject);
}
//
double breakPrice =
ob.IsBullish()
? swing.high
: swing.low;
//
// Draw Swing and Breake ...
CChartObjectTrend *tObj;
tObj = new CChartObjectTrend();
string tName = "Swing_For_" + ToString(ob.dir) + "_" + ToString(breakPrice);
has = tObj.Create(
0,
tName,
0,
swing.time,
breakPrice,
breaker.time,
breakPrice //
);
if (has)
{
//
tObj.Width(2);
tObj.Style(STYLE_SOLID);
//
color tColor = ob.IsBullish()
? clrRed
: clrLime;
tObj.Color(tColor);
//
mObjects.Add(tObj);
//
ZeroMemory(tObj);
}
//
Print("Passed Bar ...");
}
ob.Clean();
swing.Clean();
breaker.Clean();
outSide.Clean();