97 lines
2.3 KiB
Plaintext
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();
|