This commit is contained in:
2024-12-03 01:03:32 +03:30
parent de90f2d5fb
commit 29c9df62c5
7 changed files with 6420 additions and 332 deletions
+330
View File
@@ -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];
// }