last ...
This commit is contained in:
@@ -30,8 +30,9 @@
|
||||
#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.xvwpb.signal.lib.mq5"
|
||||
#include "../Signals/x-121.smc.xpvsupdem.signal.lib.mq5"
|
||||
#include "../Signals/x-121.smc.xvwpb.signal.lib.mq5"
|
||||
#include "../Signals/x-121.smc.xtwpv.signal.lib.mq5"
|
||||
|
||||
//
|
||||
// Definitions ...
|
||||
@@ -159,16 +160,18 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
||||
|
||||
//
|
||||
bool useTestSignal = false;
|
||||
bool useXPVOBSignal = false;
|
||||
bool useXPVDPSignal = false;
|
||||
bool useXPVOBSignal = true;
|
||||
bool useXPVDPSignal = true;
|
||||
bool useXVWPBSignal = true;
|
||||
bool useXPVSUPDEMSignal = false;
|
||||
bool useXTWPVSignal = true;
|
||||
bool useXPVSUPDEMSignal = true;
|
||||
|
||||
//
|
||||
bool hasTestSignal = false;
|
||||
bool hasXPVOBSignal = false;
|
||||
bool hasXPVDPSignal = false;
|
||||
bool hasXVWPBSignal = false;
|
||||
bool hasXTWPVSignal = false;
|
||||
bool hasXPVSUPDEMSignal = false;
|
||||
|
||||
//
|
||||
@@ -207,6 +210,15 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
||||
hasSignal = hasXVWPBSignal;
|
||||
}
|
||||
|
||||
//
|
||||
// XTWPV Signal ...
|
||||
if (useXTWPVSignal && !hasSignal)
|
||||
{
|
||||
//
|
||||
hasXTWPVSignal = DetectXTWPVSignal(conditions);
|
||||
hasSignal = hasXTWPVSignal;
|
||||
}
|
||||
|
||||
//
|
||||
// XPVSUPDEM Signal ...
|
||||
if (useXPVSUPDEMSignal && !hasSignal)
|
||||
@@ -303,40 +315,41 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
||||
|
||||
//
|
||||
// Configure Signal Protecting ...
|
||||
if (hasXPVOBSignal ||
|
||||
hasXPVDPSignal ||
|
||||
hasXPVSUPDEMSignal)
|
||||
{
|
||||
//
|
||||
signal.fullTPLevel = r2r;
|
||||
signal.partialCloseOnTPLevel = 2;
|
||||
signal.partialCloseMultiplier = 0.5;
|
||||
// if (hasXPVOBSignal ||
|
||||
// hasXPVDPSignal ||
|
||||
// hasXPVSUPDEMSignal)
|
||||
// {
|
||||
// //
|
||||
// signal.fullTPLevel = r2r;
|
||||
// signal.partialCloseOnTPLevel = 2;
|
||||
// signal.partialCloseMultiplier = 0.5;
|
||||
|
||||
//
|
||||
signal.riskFreeOnBreakEven = true;
|
||||
signal.tpLevelForBreakEven = 1;
|
||||
// //
|
||||
// signal.riskFreeOnBreakEven = true;
|
||||
// signal.tpLevelForBreakEven = 1;
|
||||
|
||||
//
|
||||
signal.trailSL = true;
|
||||
signal.trailSLStartOnReachTPLevel = 3;
|
||||
}
|
||||
// //
|
||||
// signal.trailSL = true;
|
||||
// signal.trailSLStartOnReachTPLevel = 3;
|
||||
// }
|
||||
|
||||
//
|
||||
// Configure Signal Protecting ...
|
||||
if (hasXVWPBSignal) {
|
||||
//
|
||||
signal.fullTPLevel = r2r;
|
||||
signal.partialCloseOnTPLevel = 2;
|
||||
signal.partialCloseMultiplier = 0.5;
|
||||
// if (hasXVWPBSignal)
|
||||
// {
|
||||
// //
|
||||
// signal.fullTPLevel = r2r;
|
||||
// signal.partialCloseOnTPLevel = 2;
|
||||
// signal.partialCloseMultiplier = 0.5;
|
||||
|
||||
//
|
||||
signal.riskFreeOnBreakEven = true;
|
||||
signal.tpLevelForBreakEven = 1;
|
||||
// //
|
||||
// signal.riskFreeOnBreakEven = true;
|
||||
// signal.tpLevelForBreakEven = 1;
|
||||
|
||||
//
|
||||
signal.trailSL = true;
|
||||
signal.trailSLStartOnReachTPLevel = 2;
|
||||
}
|
||||
// //
|
||||
// signal.trailSL = true;
|
||||
// signal.trailSLStartOnReachTPLevel = 2;
|
||||
// }
|
||||
|
||||
//
|
||||
result = PrepareSignal(signal);
|
||||
@@ -1101,6 +1114,119 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
||||
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;
|
||||
|
||||
//
|
||||
mXTWPVConditions.Clean();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// XPVSUPDEM Signal ...
|
||||
X121SMCStrategyXPVSUPDEMSignalConditions mXPVSUPDEMConditions;
|
||||
|
||||
Reference in New Issue
Block a user