///////////////////////////////////////////////////////////////////////// // // Detect Signal Conditions ... bool hasSignal = false; // bool useTestSignal = false; bool useXPVOBSignal = false; bool useXPVDPSignal = false; bool useXVWPBSignal = false; bool useXTWPVSignal = true; bool useXPVSUPDEMSignal = false; // bool hasTestSignal = false; bool hasXPVOBSignal = false; bool hasXPVDPSignal = false; bool hasXVWPBSignal = false; bool hasXTWPVSignal = false; bool hasXPVSUPDEMSignal = false; // // Test Signal ... if (useTestSignal && !hasSignal) { // hasTestSignal = DetectTestSignal(conditions); hasSignal = hasTestSignal; } // // XPVOB Signal ... if (useXPVOBSignal && !hasSignal) { // hasXPVOBSignal = DetectXPVOBSignal(conditions); hasSignal = hasXPVOBSignal; } // // XPVDP Signal ... if (useXPVDPSignal && !hasSignal) { // hasXPVDPSignal = DetectXPVDPSignal(conditions); hasSignal = hasXPVDPSignal; } // // XVWPB Signal ... if (useXVWPBSignal && !hasSignal) { // hasXVWPBSignal = DetectXVWPBSignal(conditions); hasSignal = hasXVWPBSignal; } // // XTWPV Signal ... if (useXTWPVSignal && !hasSignal) { // hasXTWPVSignal = DetectXTWPVSignal(conditions); hasSignal = hasXTWPVSignal; } // // XPVSUPDEM Signal ... if (useXPVSUPDEMSignal && !hasSignal) { // hasXPVSUPDEMSignal = DetectXPVSUPDEMSignal(conditions); hasSignal = hasXPVSUPDEMSignal; } //////////////////////////////////////////////////////////////////////// // // Test Signal ... X121SMCStrategyTestSignalConditions mTestConditions; bool DetectTestSignal( X121SMCStrategyConditions &conditions // ) { // bool result = false; // bool isBullish = false; bool isBearish = false; // string symbol = GetSymbol(); ENUM_TIMEFRAMES period = GetPeriod(); // datetime cTime = TimeCurrent(); // ENUM_X_121_SMC_PROVIDERS provider = X_121_SMC_PROVIDER_XTEST; string providerStr = ToString(provider); // // Detect Setup Conditions ... datetime setupTime = mTestConditions.setupTime; bool isSetuped = mTestConditions.IsSetuped(); ENUM_X_DIRECTION setupDir = mTestConditions.dir; if (!isSetuped) { // // Detect Signal Setup ... isSetuped = DetectX121SMCTestSiganlSetup( symbol, period, mTestConditions, mTriggerCycleHelper, mDecisionCycleHelper, mAnalyseCycleHelper, mVerificationCycleHelper, mConsolidationCycleHelper, mVisionCycleHelper // ); // setupDir = mTestConditions.dir; setupTime = mTestConditions.setupTime; } // ClearDraws(); // ENUM_X_DIRECTION activeZoneDir; // bool hasTicksZone = mTestConditions.HasTicksZone(); // bool hasActiveZone = mTestConditions.HasActiveZone(activeZoneDir); // if (hasActiveZone) // { // // // if (IsBullish(activeZoneDir)) // { // // // mTestConditions.activeDemandZone.To(cTime); // XCDemandZoneObject *iObj; // bool isCreated = mPOIDrawer.CreateDemandZone( // mTestConditions.activeDemandZone, // iObj // // ); // if (isCreated) // { // AddObjectIfNotExists(iObj); // } // } // else // { // // // mTestConditions.activeSupplyZone.To(cTime); // XCSupplyZoneObject *iObj; // bool isCreated = mPOIDrawer.CreateSupplyZone( // mTestConditions.activeSupplyZone, // iObj // // ); // if (isCreated) // { // AddObjectIfNotExists(iObj); // } // } // } // if (hasTicksZone) // { // // // XCTicksZoneObject *iObj; // bool isCreated = mPOIDrawer.CreateTicksZone( // mTestConditions.ticksZone, // iObj // // ); // if (isCreated) // { // AddObjectIfNotExists(iObj); // } // } // result = isSetuped; if (!result) { return result; } // // Detect Trigger Conditions ... bool canTrigger = mTestConditions.CanTrigger(); datetime triggerTime = mTestConditions.triggerTime; if (!canTrigger) { // // Detect Signal Trigger ... canTrigger = DetectX121SMCTestSiganlTrigger( mTestConditions, symbol, period, mTriggerCycleHelper, mDecisionCycleHelper, mAnalyseCycleHelper, mVerificationCycleHelper, mConsolidationCycleHelper, mVisionCycleHelper // ); // result = canTrigger; if (!result) { return result; } // triggerTime = mTestConditions.triggerTime; } // // Check Signal Direction ... // isBullish = IsBullish(setupDir); isBearish = IsBearish(setupDir); result = isBullish || isBearish; if (!result) { return result; } // // Issues Signal on Conditions ... conditions.signalDir = setupDir; conditions.provider = providerStr; conditions.sl = mTestConditions.sl; conditions.target = mTestConditions.target; // mTestConditions.Clean(); // return result; } // // XPVOB Signal ... X121SMCStrategyXPVOBSignalConditions mXPVOBConditions; bool DetectXPVOBSignal( X121SMCStrategyConditions &conditions // ) { // bool result = false; // bool isBullish = false; bool isBearish = false; // string symbol = GetSymbol(); ENUM_TIMEFRAMES period = GetPeriod(); // datetime cTime = TimeCurrent(); // ENUM_X_121_SMC_PROVIDERS provider = X_121_SMC_PROVIDER_XPVOB; string providerStr = ToString(provider); // // Detect Setup Conditions ... datetime setupTime = mXPVOBConditions.setupTime; bool isSetuped = mXPVOBConditions.IsSetuped(); ENUM_X_DIRECTION setupDir = mXPVOBConditions.dir; if (!isSetuped) { // // Detect Signal Setup ... isSetuped = DetectX121SMCXPVOBSiganlSetup( symbol, period, mXPVOBConditions, mTriggerCycleHelper, mDecisionCycleHelper, mAnalyseCycleHelper, mVerificationCycleHelper, mConsolidationCycleHelper, mVisionCycleHelper // ); // result = isSetuped; if (!result) { return result; } // setupDir = mXPVOBConditions.dir; setupTime = mXPVOBConditions.setupTime; } // // Draw Conditions Active FVG ... // if (isSetuped) // { // // // XCFVG *iFVG = mXPVOBConditions.activeFVG; // if (iFVG != NULL && iFVG.IsValid()) // { // // // ClearDraws(); // iFVG.To(cTime); // if (IsBullish(setupDir) && iFVG.IsBullish()) // { // // // XCBullishFairValueGapObject *iObj; // bool isCreated = mPOIDrawer.CreateBullishFairValueGap( // iFVG, // iObj // // ); // if (isCreated) // { // AddObjectIfNotExists(iObj); // } // } // else if (IsBearish(setupDir) && iFVG.IsBearish()) // { // // // XCBearishFairValueGapObject *iObj; // bool isCreated = mPOIDrawer.CreateBearishFairValueGap( // iFVG, // iObj // // ); // if (isCreated) // { // AddObjectIfNotExists(iObj); // } // } // } // } // // Detect Trigger Conditions ... bool canTrigger = mXPVOBConditions.CanTrigger(); datetime triggerTime = mXPVOBConditions.triggerTime; if (!canTrigger) { // // Detect Signal Trigger ... canTrigger = DetectX121SMCXPVOBSiganlTrigger( mXPVOBConditions, symbol, period, mTriggerCycleHelper, mDecisionCycleHelper, mAnalyseCycleHelper, mVerificationCycleHelper, mConsolidationCycleHelper, mVisionCycleHelper // ); // result = canTrigger; if (!result) { return result; } // triggerTime = mXPVOBConditions.triggerTime; } // // Check Signal Direction ... // isBullish = IsBullish(setupDir); isBearish = IsBearish(setupDir); result = isBullish || isBearish; if (!result) { return result; } // // Issues Signal on Conditions ... conditions.signalDir = setupDir; conditions.provider = providerStr; conditions.sl = mXPVOBConditions.sl; conditions.target = mXPVOBConditions.target; // mXPVOBConditions.Clean(); // return result; } // // XPVDP Signal ... X121SMCStrategyXPVDPSignalConditions mXPVDPConditions; bool DetectXPVDPSignal( X121SMCStrategyConditions &conditions // ) { // bool result = false; // bool isBullish = false; bool isBearish = false; // string symbol = GetSymbol(); ENUM_TIMEFRAMES period = GetPeriod(); // datetime cTime = TimeCurrent(); // ENUM_X_121_SMC_PROVIDERS provider = X_121_SMC_PROVIDER_XPVDP; string providerStr = ToString(provider); // // Detect Setup Conditions ... datetime setupTime = mXPVDPConditions.setupTime; bool isSetuped = mXPVDPConditions.IsSetuped(); ENUM_X_DIRECTION setupDir = mXPVDPConditions.dir; if (!isSetuped) { // // Detect Signal Setup ... isSetuped = DetectX121SMCXPVDPSiganlSetup( symbol, period, mXPVDPConditions, mTriggerCycleHelper, mDecisionCycleHelper, mAnalyseCycleHelper, mVerificationCycleHelper, mConsolidationCycleHelper, mVisionCycleHelper // ); // setupDir = mXPVDPConditions.dir; setupTime = mXPVDPConditions.setupTime; } result = isSetuped; if (!result) { return result; } // // Detect Trigger Conditions ... bool canTrigger = mXPVDPConditions.CanTrigger(); datetime triggerTime = mXPVDPConditions.triggerTime; if (!canTrigger) { // // Detect Signal Trigger ... canTrigger = DetectX121SMCXPVDPSiganlTrigger( mXPVDPConditions, symbol, period, mTriggerCycleHelper, mDecisionCycleHelper, mAnalyseCycleHelper, mVerificationCycleHelper, mConsolidationCycleHelper, mVisionCycleHelper // ); // result = canTrigger; if (!result) { return result; } // triggerTime = mXPVDPConditions.triggerTime; } // // Check Signal Direction ... // isBullish = IsBullish(setupDir); isBearish = IsBearish(setupDir); result = isBullish || isBearish; if (!result) { return result; } // // Issues Signal on Conditions ... conditions.signalDir = setupDir; conditions.provider = providerStr; conditions.sl = mXPVDPConditions.sl; conditions.target = mXPVDPConditions.target; // mXPVDPConditions.Clean(); // return result; } // // XVWPB Signal ... X121SMCStrategyXVWPBSignalConditions mXVWPBConditions; bool DetectXVWPBSignal( X121SMCStrategyConditions &conditions // ) { // bool result = false; // bool isBullish = false; bool isBearish = false; // string symbol = GetSymbol(); ENUM_TIMEFRAMES period = GetPeriod(); // datetime cTime = TimeCurrent(); // ENUM_X_121_SMC_PROVIDERS provider = X_121_SMC_PROVIDER_XVWPB; string providerStr = ToString(provider); // // Detect Setup Conditions ... datetime setupTime = mXVWPBConditions.setupTime; bool isSetuped = mXVWPBConditions.IsSetuped(); ENUM_X_DIRECTION setupDir = mXVWPBConditions.dir; if (!isSetuped) { // // Detect Signal Setup ... isSetuped = DetectX121SMCXVWPBSiganlSetup( symbol, period, mXVWPBConditions, mTriggerCycleHelper, mDecisionCycleHelper, mAnalyseCycleHelper, mVerificationCycleHelper, mConsolidationCycleHelper, mVisionCycleHelper // ); // setupDir = mXVWPBConditions.dir; setupTime = mXVWPBConditions.setupTime; } result = isSetuped; if (!result) { return result; } // // Detect Trigger Conditions ... bool canTrigger = mXVWPBConditions.CanTrigger(); datetime triggerTime = mXVWPBConditions.triggerTime; if (!canTrigger) { // // Detect Signal Trigger ... canTrigger = DetectX121SMCXVWPBSiganlTrigger( mXVWPBConditions, symbol, period, mTriggerCycleHelper, mDecisionCycleHelper, mAnalyseCycleHelper, mVerificationCycleHelper, mConsolidationCycleHelper, mVisionCycleHelper // ); // result = canTrigger; if (!result) { return result; } // triggerTime = mXVWPBConditions.triggerTime; } // // Check Signal Direction ... // isBullish = IsBullish(setupDir); isBearish = IsBearish(setupDir); result = isBullish || isBearish; if (!result) { return result; } // // Issues Signal on Conditions ... conditions.signalDir = setupDir; conditions.provider = providerStr; conditions.sl = mXVWPBConditions.sl; conditions.target = mXVWPBConditions.target; // mXVWPBConditions.Clean(); // return result; } // // XTWPV Signal ... X121SMCStrategyXTWPVSignalConditions mXTWPVConditions; bool DetectXTWPVSignal( X121SMCStrategyConditions &conditions // ) { // bool result = false; // bool isBullish = false; bool isBearish = false; // string symbol = GetSymbol(); ENUM_TIMEFRAMES period = GetPeriod(); // datetime cTime = TimeCurrent(); // ENUM_X_121_SMC_PROVIDERS provider = X_121_SMC_PROVIDER_XTWPV; string providerStr = ToString(provider); // // Detect Setup Conditions ... datetime setupTime = mXTWPVConditions.setupTime; bool isSetuped = mXTWPVConditions.IsSetuped(); ENUM_X_DIRECTION setupDir = mXTWPVConditions.dir; if (!isSetuped) { // // Detect Signal Setup ... isSetuped = DetectX121SMCXTWPVSiganlSetup( symbol, period, mXTWPVConditions, mTriggerCycleHelper, mDecisionCycleHelper, mAnalyseCycleHelper, mVerificationCycleHelper, mConsolidationCycleHelper, mVisionCycleHelper // ); // setupDir = mXTWPVConditions.dir; setupTime = mXTWPVConditions.setupTime; } result = isSetuped; if (!result) { return result; } // // Detect Trigger Conditions ... bool canTrigger = mXTWPVConditions.CanTrigger(); datetime triggerTime = mXTWPVConditions.triggerTime; if (!canTrigger) { // // Detect Signal Trigger ... canTrigger = DetectX121SMCXTWPVSiganlTrigger( mXTWPVConditions, symbol, period, mTriggerCycleHelper, mDecisionCycleHelper, mAnalyseCycleHelper, mVerificationCycleHelper, mConsolidationCycleHelper, mVisionCycleHelper // ); // result = canTrigger; if (!result) { return result; } // triggerTime = mXTWPVConditions.triggerTime; } // // Check Signal Direction ... // isBullish = IsBullish(setupDir); isBearish = IsBearish(setupDir); result = isBullish || isBearish; if (!result) { return result; } // // Issues Signal on Conditions ... conditions.signalDir = setupDir; conditions.provider = providerStr; conditions.sl = mXTWPVConditions.sl; conditions.target = mXTWPVConditions.target; // mXTWPVConditions.Clean(); // return result; } // // XPVSUPDEM Signal ... X121SMCStrategyXPVSUPDEMSignalConditions mXPVSUPDEMConditions; bool DetectXPVSUPDEMSignal( X121SMCStrategyConditions &conditions // ) { // bool result = false; // bool isBullish = false; bool isBearish = false; // string symbol = GetSymbol(); ENUM_TIMEFRAMES period = GetPeriod(); // datetime cTime = TimeCurrent(); // ENUM_X_121_SMC_PROVIDERS provider = X_121_SMC_PROVIDER_XPVSUPDEM; string providerStr = ToString(provider); // // Detect Setup Conditions ... datetime setupTime = mXPVSUPDEMConditions.setupTime; bool isSetuped = mXPVSUPDEMConditions.IsSetuped(); ENUM_X_DIRECTION setupDir = mXPVSUPDEMConditions.dir; if (!isSetuped) { // // Detect Signal Setup ... isSetuped = DetectX121SMCXPVSUPDEMSiganlSetup( symbol, period, mXPVSUPDEMConditions, mTriggerCycleHelper, mDecisionCycleHelper, mAnalyseCycleHelper, mVerificationCycleHelper, mConsolidationCycleHelper, mVisionCycleHelper // ); // setupDir = mXPVSUPDEMConditions.dir; setupTime = mXPVSUPDEMConditions.setupTime; } // ClearDraws(); // ENUM_X_DIRECTION activeZoneDir; // bool hasTicksZone = mXPVSUPDEMConditions.HasTicksZone(); // bool hasActiveZone = mXPVSUPDEMConditions.HasActiveZone(activeZoneDir); // if (hasActiveZone) // { // // // if (IsBullish(activeZoneDir)) // { // // // mXPVSUPDEMConditions.activeDemandZone.To(cTime); // XCDemandZoneObject *iObj; // bool isCreated = mPOIDrawer.CreateDemandZone( // mXPVSUPDEMConditions.activeDemandZone, // iObj // // ); // if (isCreated) // { // AddObjectIfNotExists(iObj); // } // } // else // { // // // mXPVSUPDEMConditions.activeSupplyZone.To(cTime); // XCSupplyZoneObject *iObj; // bool isCreated = mPOIDrawer.CreateSupplyZone( // mXPVSUPDEMConditions.activeSupplyZone, // iObj // // ); // if (isCreated) // { // AddObjectIfNotExists(iObj); // } // } // } // if (hasTicksZone) // { // // // XCTicksZoneObject *iObj; // bool isCreated = mPOIDrawer.CreateTicksZone( // mXPVSUPDEMConditions.ticksZone, // iObj // // ); // if (isCreated) // { // AddObjectIfNotExists(iObj); // } // } // result = isSetuped; if (!result) { return result; } // // Detect Trigger Conditions ... bool canTrigger = mXPVSUPDEMConditions.CanTrigger(); datetime triggerTime = mXPVSUPDEMConditions.triggerTime; if (!canTrigger) { // // Detect Signal Trigger ... canTrigger = DetectX121SMCXPVSUPDEMSiganlTrigger( mXPVSUPDEMConditions, symbol, period, mTriggerCycleHelper, mDecisionCycleHelper, mAnalyseCycleHelper, mVerificationCycleHelper, mConsolidationCycleHelper, mVisionCycleHelper // ); // result = canTrigger; if (!result) { return result; } // triggerTime = mXPVSUPDEMConditions.triggerTime; } // // Check Signal Direction ... // isBullish = IsBullish(setupDir); isBearish = IsBearish(setupDir); result = isBullish || isBearish; if (!result) { return result; } // // Issues Signal on Conditions ... conditions.signalDir = setupDir; conditions.provider = providerStr; conditions.sl = mXPVSUPDEMConditions.sl; conditions.target = mXPVSUPDEMConditions.target; // mXPVSUPDEMConditions.Clean(); // return result; } ///////////////////////////////////////////////////////////////////////////////