last ...
This commit is contained in:
@@ -0,0 +1,346 @@
|
||||
//
|
||||
// Detect Inside Zones ...
|
||||
|
||||
//
|
||||
XCFVG *insideFVG;
|
||||
bool hasInsideFVG = false;
|
||||
|
||||
//
|
||||
XCOrderBlock *insideOB;
|
||||
bool hasInsideOB = false;
|
||||
|
||||
//
|
||||
XCSupplyZone *insideSupply;
|
||||
bool hasInsideSupply = false;
|
||||
|
||||
//
|
||||
XCDemandZone *insideDemand;
|
||||
bool hasInsideDemand = false;
|
||||
|
||||
//
|
||||
XCSupportZone *insideSupport;
|
||||
bool hasInsideSupport = false;
|
||||
|
||||
//
|
||||
XCResistanceZone *insideResistnce;
|
||||
bool hasInsideResistance = false;
|
||||
|
||||
//
|
||||
// Detect PullBack ...
|
||||
|
||||
//
|
||||
ENUM_X_DIRECTION pullbackDir;
|
||||
bool hasPullBack = mXWZBarAnalyser.HasPullBack(
|
||||
pullbackDir,
|
||||
iBar //
|
||||
);
|
||||
bool hasBullishPullBack =
|
||||
hasPullBack &&
|
||||
IsBullish(pullbackDir);
|
||||
bool hasBearishPullBack =
|
||||
hasPullBack &&
|
||||
IsBearish(pullbackDir);
|
||||
|
||||
//
|
||||
// Detect PinBar ...
|
||||
|
||||
//
|
||||
ENUM_X_DIRECTION pinBarDir;
|
||||
bool hasPinBar = mXWZBarAnalyser.IsPinBar(
|
||||
iBar,
|
||||
pinBarDir,
|
||||
0 //
|
||||
);
|
||||
bool hasBullishPinBar =
|
||||
hasPinBar &&
|
||||
IsBullish(pinBarDir);
|
||||
bool hasBearishPinBar =
|
||||
hasPinBar &&
|
||||
IsBearish(pinBarDir);
|
||||
|
||||
//
|
||||
// Detect Order Block ...
|
||||
|
||||
//
|
||||
XOHCL obBar;
|
||||
XCOrderBlock *ob;
|
||||
ENUM_X_DIRECTION obDir;
|
||||
bool hasOB = mXWZBarAnalyser.HasOrderBlock(
|
||||
iBar,
|
||||
obBar,
|
||||
obDir //
|
||||
);
|
||||
bool hasBullishOB =
|
||||
hasOB &&
|
||||
IsBullish(obDir);
|
||||
bool hasBearishOB =
|
||||
hasOB &&
|
||||
IsBearish(obDir);
|
||||
if (hasOB)
|
||||
{
|
||||
//
|
||||
ob = new XCOrderBlock();
|
||||
bool isInited = ob.Init(obBar, obDir);
|
||||
if (isInited)
|
||||
{
|
||||
//
|
||||
ENUM_X_DIRECTION forDir = ob.GetDirection();
|
||||
|
||||
//
|
||||
// Check OB Not Activated ...
|
||||
XOHCL activationBar;
|
||||
bool isObActivationBarBodyIn = false;
|
||||
bool isActivated = ob.IsActivated(
|
||||
forDir,
|
||||
activationBar,
|
||||
isObActivationBarBodyIn,
|
||||
false,
|
||||
_Period //
|
||||
);
|
||||
|
||||
//
|
||||
if (isActivated)
|
||||
{
|
||||
//
|
||||
hasOB = false;
|
||||
obBar.Clean();
|
||||
ZeroMemory(ob);
|
||||
hasBullishOB = false;
|
||||
hasBearishOB = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
if (hasBullishPinBar)
|
||||
{
|
||||
//
|
||||
XCBarArrowObject *iObj;
|
||||
bool isCreated = mXWZPOIDrawer
|
||||
.CreateBarArrow(
|
||||
iBar,
|
||||
iObj,
|
||||
X_PRICE_LOW,
|
||||
159,
|
||||
clrAqua,
|
||||
3,
|
||||
ANCHOR_BOTTOM,
|
||||
"BULLPULL" //
|
||||
);
|
||||
if (isCreated)
|
||||
{
|
||||
mXWZDrawnObjects.Add(iObj);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
if (hasBearishPinBar)
|
||||
{
|
||||
//
|
||||
XCBarArrowObject *iObj;
|
||||
bool isCreated = mXWZPOIDrawer
|
||||
.CreateBarArrow(
|
||||
iBar,
|
||||
iObj,
|
||||
X_PRICE_HIGH,
|
||||
159,
|
||||
clrMagenta,
|
||||
3,
|
||||
ANCHOR_TOP,
|
||||
"BEARPULL" //
|
||||
);
|
||||
if (isCreated)
|
||||
{
|
||||
mXWZDrawnObjects.Add(iObj);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
if (hasOB)
|
||||
{
|
||||
//
|
||||
XCBaseObject *iObj;
|
||||
bool isCreated = mXWZPOIDrawer.CreateOrderBlock(
|
||||
ob,
|
||||
iObj //
|
||||
);
|
||||
if (isCreated)
|
||||
{
|
||||
mXWZDrawnObjects.Add(iObj);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
int idx = -1;
|
||||
int count = 0;
|
||||
bool has = false;
|
||||
|
||||
//
|
||||
ENUM_X_DIRECTION trend =
|
||||
IsValid(lastBullishTrend) &&
|
||||
lastBullishTrend > lastBearishTrend
|
||||
? X_DIRECTION_BULLISH
|
||||
: IsValid(lastBearishTrend) &&
|
||||
lastBearishTrend > lastBullishTrend
|
||||
? X_DIRECTION_BEARISH
|
||||
: X_DIRECTION_NONE;
|
||||
bool hasTrend = HasDirection(trend);
|
||||
bool hasBullishTrend = hasTrend &&
|
||||
IsBullish(trend);
|
||||
bool hasBearishTrend = hasTrend &&
|
||||
IsBearish(trend);
|
||||
|
||||
//
|
||||
// Order Block ...
|
||||
has = hasBullishTrend;
|
||||
if (has)
|
||||
{
|
||||
}
|
||||
has = hasBearishTrend;
|
||||
if (has)
|
||||
{
|
||||
}
|
||||
|
||||
//
|
||||
// Fair Value Gap ...
|
||||
has = hasBullishTrend;
|
||||
if (has)
|
||||
{
|
||||
}
|
||||
has = hasBearishTrend;
|
||||
if (has)
|
||||
{
|
||||
}
|
||||
|
||||
//
|
||||
// Supply Zone ...
|
||||
has = hasBearishTrend;
|
||||
if (has)
|
||||
{
|
||||
}
|
||||
|
||||
//
|
||||
// Resistance Zone ...
|
||||
has = hasBearishTrend;
|
||||
if (has)
|
||||
{
|
||||
}
|
||||
|
||||
//
|
||||
// Demand Zone ...
|
||||
has = hasBullishTrend;
|
||||
if (has)
|
||||
{
|
||||
}
|
||||
|
||||
//
|
||||
// Support Zone ...
|
||||
has = hasBullishTrend;
|
||||
if (has)
|
||||
{
|
||||
}
|
||||
|
||||
//
|
||||
// Draw Inside Zones ...
|
||||
|
||||
//
|
||||
if (hasInsideOB)
|
||||
{
|
||||
//
|
||||
XCBaseObject *iObj;
|
||||
bool isCreated = mXWZPOIDrawer
|
||||
.CreateOrderBlock(
|
||||
insideOB,
|
||||
iObj //
|
||||
);
|
||||
//
|
||||
if (isCreated)
|
||||
{
|
||||
mXWZDrawnObjects.Add(iObj);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
if (hasInsideFVG)
|
||||
{
|
||||
//
|
||||
XCBaseObject *iObj;
|
||||
bool isCreated = mXWZPOIDrawer
|
||||
.CreateFairValueGap(
|
||||
insideFVG,
|
||||
iObj //
|
||||
);
|
||||
//
|
||||
if (isCreated)
|
||||
{
|
||||
mXWZDrawnObjects.Add(iObj);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
if (hasInsideSupply)
|
||||
{
|
||||
//
|
||||
XCSupplyZoneObject *iObj;
|
||||
bool isCreated = mXWZPOIDrawer
|
||||
.CreateSupplyZone(
|
||||
insideSupply,
|
||||
iObj //
|
||||
);
|
||||
//
|
||||
if (isCreated)
|
||||
{
|
||||
mXWZDrawnObjects.Add(iObj);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
if (hasInsideDemand)
|
||||
{
|
||||
//
|
||||
XCDemandZoneObject *iObj;
|
||||
bool isCreated = mXWZPOIDrawer
|
||||
.CreateDemandZone(
|
||||
insideDemand,
|
||||
iObj //
|
||||
);
|
||||
//
|
||||
if (isCreated)
|
||||
{
|
||||
mXWZDrawnObjects.Add(iObj);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
if (hasInsideSupport)
|
||||
{
|
||||
//
|
||||
XCSupportZoneObject *iObj;
|
||||
bool isCreated = mXWZPOIDrawer
|
||||
.CreateSupportZone(
|
||||
insideSupport,
|
||||
iObj //
|
||||
);
|
||||
//
|
||||
if (isCreated)
|
||||
{
|
||||
mXWZDrawnObjects.Add(iObj);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
if (hasInsideResistance)
|
||||
{
|
||||
//
|
||||
XCResistanceZoneObject *iObj;
|
||||
bool isCreated = mXWZPOIDrawer
|
||||
.CreateResistanceZone(
|
||||
insideResistnce,
|
||||
iObj //
|
||||
);
|
||||
//
|
||||
if (isCreated)
|
||||
{
|
||||
mXWZDrawnObjects.Add(iObj);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user