last ...
This commit is contained in:
@@ -877,6 +877,7 @@ struct X121SMCStrategyXWZWorkingZone
|
||||
//
|
||||
bool DetectSignalConditions(
|
||||
XBoxZone &box,
|
||||
XBoxZone &holderBox,
|
||||
ENUM_X_DIRECTION &dir,
|
||||
ENUM_X121SMC_XWZ_PROVIDERS &signalProvider,
|
||||
X121SMCStrategySignalProviderData &provider,
|
||||
@@ -891,6 +892,7 @@ struct X121SMCStrategyXWZWorkingZone
|
||||
|
||||
//
|
||||
box.Clean();
|
||||
holderBox.Clean();
|
||||
dir = X_DIRECTION_NONE;
|
||||
signalProvider = X121SMC_XWZ_PROVIDER_NONE;
|
||||
|
||||
@@ -907,6 +909,11 @@ struct X121SMCStrategyXWZWorkingZone
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
int idx = -1;
|
||||
int count = 0;
|
||||
bool has = false;
|
||||
|
||||
//
|
||||
int zIDX = barIndex;
|
||||
int cIDX = zIDX + 1;
|
||||
@@ -953,7 +960,7 @@ struct X121SMCStrategyXWZWorkingZone
|
||||
//
|
||||
// Senario 1:
|
||||
// ----------
|
||||
bool useSenario1 = false;
|
||||
bool useSenario1 = true;
|
||||
bool isSenario1Happend = false;
|
||||
bool isSenario1Bullish = false;
|
||||
bool isSenario1Bearish = false;
|
||||
@@ -1212,15 +1219,160 @@ struct X121SMCStrategyXWZWorkingZone
|
||||
box.from = pBar.time;
|
||||
}
|
||||
|
||||
//
|
||||
// Detect Holder Box ...
|
||||
XBoxZone tmpBoxes[];
|
||||
if (isSenario1Bullish)
|
||||
{
|
||||
//
|
||||
// Demand Zones ...
|
||||
XBoxZone tmp[];
|
||||
ToBox(
|
||||
provider.visionState.demandZones,
|
||||
tmp //
|
||||
);
|
||||
Copy(
|
||||
tmp,
|
||||
tmpBoxes,
|
||||
false //
|
||||
);
|
||||
Clean(tmp);
|
||||
|
||||
//
|
||||
// Bullish Order Blocks ...
|
||||
ToBox(
|
||||
provider.visionState.bullishOrderBlocks,
|
||||
tmp //
|
||||
);
|
||||
Copy(
|
||||
tmp,
|
||||
tmpBoxes,
|
||||
false //
|
||||
);
|
||||
Clean(tmp);
|
||||
|
||||
//
|
||||
// Bullish Fair Value Gaps ...
|
||||
ToBox(
|
||||
provider.visionState.bullishFairValueGaps,
|
||||
tmp //
|
||||
);
|
||||
Copy(
|
||||
tmp,
|
||||
tmpBoxes,
|
||||
false //
|
||||
);
|
||||
Clean(tmp);
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
// Supply Zones ...
|
||||
XBoxZone tmp[];
|
||||
ToBox(
|
||||
provider.visionState.supplyZones,
|
||||
tmp //
|
||||
);
|
||||
Copy(
|
||||
tmp,
|
||||
tmpBoxes,
|
||||
false //
|
||||
);
|
||||
Clean(tmp);
|
||||
|
||||
//
|
||||
// Bearish Order Blocks ...
|
||||
ToBox(
|
||||
provider.visionState.bearishOrderBlocks,
|
||||
tmp //
|
||||
);
|
||||
Copy(
|
||||
tmp,
|
||||
tmpBoxes,
|
||||
false //
|
||||
);
|
||||
Clean(tmp);
|
||||
|
||||
//
|
||||
// Bearish Fair Value Gaps ...
|
||||
ToBox(
|
||||
provider.visionState.bearishFairValueGaps,
|
||||
tmp //
|
||||
);
|
||||
Copy(
|
||||
tmp,
|
||||
tmpBoxes,
|
||||
false //
|
||||
);
|
||||
Clean(tmp);
|
||||
}
|
||||
|
||||
//
|
||||
has = HasChild(tmpBoxes);
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
while (HasChild(tmpBoxes))
|
||||
{
|
||||
//
|
||||
idx = GetOldest(tmpBoxes);
|
||||
has = IsValidIndex(idx);
|
||||
if (!has)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
XBoxZone iBox = tmpBoxes[idx];
|
||||
ArrayRemove(
|
||||
tmpBoxes,
|
||||
idx,
|
||||
1 //
|
||||
);
|
||||
|
||||
//
|
||||
has = IsBoxInside(
|
||||
box,
|
||||
iBox //
|
||||
);
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
holderBox = iBox;
|
||||
holderBox.to = TimeCurrent();
|
||||
iBox.Clean();
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
iBox.Clean();
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
Clean(tmpBoxes);
|
||||
|
||||
//
|
||||
signalProvider = X121SMC_XWZ_PROVIDER_ACTIVATED_BOX;
|
||||
|
||||
//
|
||||
// Validate Conditions to Force Has Holder Box ...
|
||||
// isSenario1Happend =
|
||||
// holderBox.IsValid() &&
|
||||
// isSenario1Happend;
|
||||
// if (!isSenario1Happend)
|
||||
// {
|
||||
// //
|
||||
// isSenario1Bullish = false;
|
||||
// isSenario1Bearish = false;
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Senario 2:
|
||||
// ----------
|
||||
bool useSenario2 = true;
|
||||
bool useSenario2 = false;
|
||||
bool isSenario2Happend = false;
|
||||
bool isSenario2Bullish = false;
|
||||
bool isSenario2Bearish = false;
|
||||
|
||||
Reference in New Issue
Block a user