last worsk ...

This commit is contained in:
2024-12-25 11:54:00 +03:30
parent 43b3cdc6b9
commit f20dbaea13
11 changed files with 1662 additions and 20 deletions
+131 -6
View File
@@ -27,9 +27,10 @@
#include "../Classes/x-121.smc.market.cycle.helper.class.mq5"
//
#include "../Signals/x-121.smc.test.signal.class.mq5"
#include "../Signals/x-121.smc.xpvob.signal.class.mq5"
#include "../Signals/x-121.smc.xpvsupdem.signal.class.mq5"
#include "../Signals/x-121.smc.test.signal.lib.mq5"
#include "../Signals/x-121.smc.xpvdp.signal.lib.mq5"
#include "../Signals/x-121.smc.xpvob.signal.lib.mq5"
#include "../Signals/x-121.smc.xpvsupdem.signal.lib.mq5"
//
// Definitions ...
@@ -158,6 +159,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
bool hasTestSignal = false;
bool hasXPVOBSignal = false;
bool hasXPVDPSignal = false;
bool hasXPVSUPDEMSignal = false;
//
@@ -174,8 +176,17 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
if (!hasSignal)
{
//
// hasXPVOBSignal = DetectXPVOBSignal(conditions);
// hasSignal = hasXPVOBSignal;
hasXPVOBSignal = DetectXPVOBSignal(conditions);
hasSignal = hasXPVOBSignal;
}
//
// XPVDP Signal ...
if (!hasSignal)
{
//
hasXPVDPSignal = DetectXPVDPSignal(conditions);
hasSignal = hasXPVDPSignal;
}
//
@@ -275,6 +286,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
// Configure Signal Protecting ...
if (hasXPVOBSignal ||
hasXPVDPSignal ||
hasXPVSUPDEMSignal)
{
//
@@ -288,7 +300,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
signal.trailSL = true;
signal.trailSLStartOnReachTPLevel = 4;
signal.trailSLStartOnReachTPLevel = 3;
}
//
@@ -828,6 +840,119 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
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;
//
mXPVDPConditions.Clean();
//
return result;
}
//
// XPVSUPDEM Signal ...
X121SMCStrategyXPVSUPDEMSignalConditions mXPVSUPDEMConditions;