Last ...
This commit is contained in:
@@ -2261,3 +2261,333 @@
|
||||
{
|
||||
bearOB = mBearOB;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//
|
||||
// Detect an Order Block in Vision ...
|
||||
if (conditions.visionBullOB == NULL ||
|
||||
conditions.visionBearOB == NULL)
|
||||
{
|
||||
//
|
||||
result = DetectOrderBlocks(
|
||||
NULL,
|
||||
NULL,
|
||||
conditions.visionBullOB,
|
||||
conditions.visionBearOB,
|
||||
cBar,
|
||||
mVisionState //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
//
|
||||
conditions.Clean();
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
XCBullishOrderBlockObject *iBullOBObj;
|
||||
conditions.visionBullOB.To(cTime);
|
||||
result = mPOIDrawer.CreateBullishOrderBlock(
|
||||
conditions.visionBullOB,
|
||||
iBullOBObj //
|
||||
);
|
||||
if (result)
|
||||
{
|
||||
AddObjectIfNotExists(iBullOBObj);
|
||||
}
|
||||
|
||||
//
|
||||
XCBearishOrderBlockObject *iBearOBObj;
|
||||
conditions.visionBearOB.To(cTime);
|
||||
result = mPOIDrawer.CreateBearishOrderBlock(
|
||||
conditions.visionBearOB,
|
||||
iBearOBObj //
|
||||
);
|
||||
if (result)
|
||||
{
|
||||
AddObjectIfNotExists(iBearOBObj);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Consolidation Order Blocks ...
|
||||
if (conditions.consolidationBullOB == NULL ||
|
||||
conditions.consolidationBearOB == NULL)
|
||||
{
|
||||
//
|
||||
result = DetectOrderBlocks(
|
||||
conditions.visionBullOB,
|
||||
conditions.visionBearOB,
|
||||
conditions.consolidationBullOB,
|
||||
conditions.consolidationBearOB,
|
||||
cBar,
|
||||
mConsolidationState //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
//
|
||||
conditions.Clean();
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
XCBullishOrderBlockObject *iBullOBObj;
|
||||
conditions.consolidationBullOB.To(cTime);
|
||||
result = mPOIDrawer.CreateBullishOrderBlock(
|
||||
conditions.consolidationBullOB,
|
||||
iBullOBObj //
|
||||
);
|
||||
if (result)
|
||||
{
|
||||
AddObjectIfNotExists(iBullOBObj);
|
||||
}
|
||||
|
||||
//
|
||||
XCBearishOrderBlockObject *iBearOBObj;
|
||||
conditions.consolidationBearOB.To(cTime);
|
||||
result = mPOIDrawer.CreateBearishOrderBlock(
|
||||
conditions.consolidationBearOB,
|
||||
iBearOBObj //
|
||||
);
|
||||
if (result)
|
||||
{
|
||||
AddObjectIfNotExists(iBearOBObj);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
msg = "OrderBlocks Detected ...";
|
||||
Alert(msg);
|
||||
|
||||
//
|
||||
// Detect Trigger Order Flow ...
|
||||
if (!HasValidOrderFlow())
|
||||
{
|
||||
//
|
||||
int samePivots = 40;
|
||||
int requiredPivots = 10;
|
||||
|
||||
//
|
||||
bool useVisionState = false;
|
||||
bool useConsolidationState = false;
|
||||
bool useVerificationState = false;
|
||||
bool useAnalyseState = false;
|
||||
bool useDecisionState = true;
|
||||
bool useTriggerState = false;
|
||||
|
||||
//
|
||||
DetectOrderFlow(
|
||||
cIndex,
|
||||
samePivots,
|
||||
requiredPivots,
|
||||
mTriggerCycleHelper,
|
||||
mOrderFlow,
|
||||
mOrderFlowDir,
|
||||
//
|
||||
// Filling Pivot State ...
|
||||
useVisionState, // Use Vision State ...
|
||||
useConsolidationState, // Use Consolidation State ...
|
||||
useVerificationState, // Use Verification State ...
|
||||
useAnalyseState, // Use Analyse State ...
|
||||
useDecisionState, // Use Decision State ...
|
||||
useTriggerState // Use Trigger State ...
|
||||
);
|
||||
|
||||
//
|
||||
result = HasValidOrderFlow();
|
||||
if (!result)
|
||||
{
|
||||
//
|
||||
conditions.Clean();
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
bool ignoreSwingHighs = true;
|
||||
bool ignoreSwingLows = true;
|
||||
bool ignoreSupportZones = true;
|
||||
bool ignoreResistanceZones = true;
|
||||
bool ignoreSupplyZones = true;
|
||||
bool ignoreDemandZones = true;
|
||||
bool ignoreBullishOrderBlocks = true;
|
||||
bool ignoreBearishOrderBlocks = true;
|
||||
bool ignoreBullishFairValueGaps = true;
|
||||
bool ignoreBearishFairValueGaps = true;
|
||||
bool ignoreBullishRejectionBars = true;
|
||||
bool ignoreBearishRejectionBars = true;
|
||||
bool ignoreBullishMomentumBars = true;
|
||||
bool ignoreBearishMomentumBars = true;
|
||||
|
||||
//
|
||||
RedrawOrderFlow(
|
||||
false, // Force Clean ...
|
||||
false, // Same Period ...
|
||||
true, // Order Flow ...
|
||||
true, // Order Flow State ...
|
||||
false, // Only Last Order Flow ...
|
||||
true, // Only Last Order Flow State ...
|
||||
//
|
||||
mOrderFlowDir, // Direction Force ...
|
||||
ignoreSwingHighs,
|
||||
ignoreSwingLows,
|
||||
ignoreSupportZones,
|
||||
ignoreResistanceZones,
|
||||
ignoreSupplyZones,
|
||||
ignoreDemandZones,
|
||||
ignoreBullishOrderBlocks,
|
||||
ignoreBearishOrderBlocks,
|
||||
ignoreBullishFairValueGaps,
|
||||
ignoreBearishFairValueGaps,
|
||||
ignoreBullishRejectionBars,
|
||||
ignoreBearishRejectionBars,
|
||||
ignoreBullishMomentumBars,
|
||||
ignoreBearishMomentumBars //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
msg = "Found OrderFlow : " + (IsBullish(mOrderFlowDir) ? "Bullish" : "Berish");
|
||||
Alert(msg);
|
||||
|
||||
//
|
||||
// Check Market Conditions for
|
||||
// Specified Structure ...
|
||||
// ENUM_X_DIRECTION marketStructureDir = X_DIRECTION_NONE;
|
||||
// result = conditions.HasDirection(
|
||||
// marketStructureDir,
|
||||
// cBar //
|
||||
// );
|
||||
// if (!result)
|
||||
// {
|
||||
// //
|
||||
// conditions.Clean();
|
||||
// return result;
|
||||
// }
|
||||
// msg = "Found Market Strucutre : " + (IsBullish(marketStructureDir) ? "Bullish" : "Berish");
|
||||
// Alert(msg);
|
||||
|
||||
//
|
||||
// conditions.marketStructureDir = marketStructureDir;
|
||||
|
||||
// //
|
||||
// XPVPivot lastPivot;
|
||||
// result = GetLastItem(
|
||||
// lastPivot,
|
||||
// mOrderFlow //
|
||||
// );
|
||||
// if (!result)
|
||||
// {
|
||||
// //
|
||||
// conditions.Clean();
|
||||
// return result;
|
||||
// }
|
||||
|
||||
//
|
||||
// Detect Last FVG ...
|
||||
// XOHCL breakerBar;
|
||||
// result = DetectLastBreakerBar(
|
||||
// cBar,
|
||||
// breakerBar,
|
||||
// lastPivot,
|
||||
// marketStructureDir //
|
||||
// );
|
||||
// if (!result)
|
||||
// {
|
||||
// //
|
||||
// conditions.Clean();
|
||||
// return result;
|
||||
// }
|
||||
// msg = "Found Breaker Bar: " + breakerBar.GetTag();
|
||||
// Alert(msg);
|
||||
|
||||
// //
|
||||
// // Detect Nearest Momentum or Rejection Bar ...
|
||||
// XOHCL decisionBar;
|
||||
// result = mDecisionCycleHelper.DetectNearestDecisionBar(
|
||||
// decisionBar,
|
||||
// marketStructureDir,
|
||||
// cBar //
|
||||
// );
|
||||
// if (!result)
|
||||
// {
|
||||
// return result;
|
||||
// }
|
||||
// msg = "Found Decision Bar: " + decisionBar.GetTag();
|
||||
// Alert(msg);
|
||||
|
||||
// //
|
||||
// // Detect Nearest Sar Change ...
|
||||
// XOHCL sarChangeBar;
|
||||
// result = mTriggerCycleHelper.DetectNearestCSARChange(
|
||||
// sarChangeBar,
|
||||
// cBar //
|
||||
// );
|
||||
// if (!result)
|
||||
// {
|
||||
// //
|
||||
// conditions.Clean();
|
||||
// return result;
|
||||
// }
|
||||
// msg = "Found Sar Change Bar: " + sarChangeBar.GetTag();
|
||||
// Alert(msg);
|
||||
|
||||
// //
|
||||
// // Now we Hvae to Check Other Conditions ...
|
||||
// result =
|
||||
// // breakerBar.time > sarChangeBar.time &&
|
||||
// // decisionBar.time > breakerBar.time;
|
||||
// decisionBar.time > sarChangeBar.time;
|
||||
// if (!result)
|
||||
// {
|
||||
// //
|
||||
// conditions.Clean();
|
||||
// return result;
|
||||
// }
|
||||
|
||||
// //
|
||||
// // Now we Have Check Direction Related Conditions ...
|
||||
// if (IsBullish(marketStructureDir))
|
||||
// {
|
||||
// //
|
||||
// result =
|
||||
// // bid > decisionBar.high &&
|
||||
// // bid > breakerBar.high &&
|
||||
// bid > sarChangeBar.high &&
|
||||
// bid > conditions.triggerConditions.xchsarConditions.cSars[0];
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// //
|
||||
// result =
|
||||
// // bid < decisionBar.low &&
|
||||
// // bid < breakerBar.low &&
|
||||
// bid < sarChangeBar.high &&
|
||||
// bid < conditions.triggerConditions.xchsarConditions.cSars[0];
|
||||
// }
|
||||
// if (!result)
|
||||
// {
|
||||
// //
|
||||
// conditions.Clean();
|
||||
// return result;
|
||||
// }
|
||||
|
||||
// //
|
||||
// conditions.provider = "X121SMC";
|
||||
// if (IsBullish(marketStructureDir))
|
||||
// {
|
||||
// //
|
||||
// // conditions.sl = decisionBar.low;
|
||||
// // conditions.sl = breakerBar.low;
|
||||
// conditions.sl = conditions.triggerConditions.xchsarConditions.cSars[0];
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// //
|
||||
// // conditions.sl = decisionBar.high;
|
||||
// // conditions.sl = breakerBar.high;
|
||||
// conditions.sl = conditions.triggerConditions.xchsarConditions.cSars[0];
|
||||
// }
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user