This commit is contained in:
2025-01-09 13:18:03 +03:30
parent 0fd0889413
commit e43aa6e6f8
4 changed files with 1043 additions and 36 deletions
+6 -6
View File
@@ -36,7 +36,7 @@ const string X121SMCStrategyToken = "X121SMC";
//
const string X121SMCXTestToken = "X121XTest";
const string X121SMCXTWPVToken = "X121XTWPV";
const string X121SMCXOBGPVToken = "X121XOBGPV";
//
// X121 SMC Providers ...
@@ -45,7 +45,7 @@ enum ENUM_X_121_SMC_PROVIDERS
//
X_121_SMC_PROVIDER_NONE,
X_121_SMC_PROVIDER_XTEST,
X_121_SMC_PROVIDER_XTWPV,
X_121_SMC_PROVIDER_XOBGPV,
};
//
@@ -674,8 +674,8 @@ string ToString(ENUM_X_121_SMC_PROVIDERS value)
break;
//
case X_121_SMC_PROVIDER_XTWPV:
result = X121SMCXTWPVToken;
case X_121_SMC_PROVIDER_XOBGPV:
result = X121SMCXOBGPVToken;
break;
}
@@ -706,9 +706,9 @@ ENUM_X_121_SMC_PROVIDERS ParseProvider(string value)
{
result = X_121_SMC_PROVIDER_XTEST;
}
else if (Contains(X121SMCXTWPVToken, value))
else if (Contains(X121SMCXOBGPVToken, value))
{
result = X_121_SMC_PROVIDER_XTWPV;
result = X_121_SMC_PROVIDER_XOBGPV;
}
//
File diff suppressed because it is too large Load Diff
+30 -30
View File
@@ -28,7 +28,7 @@
//
#include "../Signals/x-121.smc.test.signal.lib.mq5"
#include "../Signals/x-121.smc.xtwpv.signal.lib.mq5"
#include "../Signals/x-121.smc.xobgpv.signal.lib.mq5"
//
// Definitions ...
@@ -184,11 +184,11 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
bool useTestSignal = false;
bool useXTWPVSignal = true;
bool useXOBGPVSignal = true;
//
bool hasTestSignal = false;
bool hasXTWPVSignal = false;
bool hasXOBGPVSignal = false;
//
// Test Signal ...
@@ -200,12 +200,12 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
}
//
// XTWPV Signal ...
if (useXTWPVSignal && !hasSignal)
// XOBGPV Signal ...
if (useXOBGPVSignal && !hasSignal)
{
//
hasXTWPVSignal = DetectXTWPVSignal(conditions);
hasSignal = hasXTWPVSignal;
hasXOBGPVSignal = DetectXOBGPVSignal(conditions);
hasSignal = hasXOBGPVSignal;
}
//
@@ -476,10 +476,10 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
}
//
// XTWPV Signal ...
X121SMCStrategyXTWPVSignalConditions mXTWPVConditions;
X121SMCStrategyXTWPVSignalConditions mXTWPVConditionsCollection[];
bool DetectXTWPVSignal(
// XOBGPV Signal ...
X121SMCStrategyXOBGPVSignalConditions mXOBGPVConditions;
X121SMCStrategyXOBGPVSignalConditions mXOBGPVConditionsCollection[];
bool DetectXOBGPVSignal(
X121SMCStrategyConditions &conditions //
)
{
@@ -544,22 +544,22 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
datetime cTime = TimeCurrent();
//
ENUM_X_121_SMC_PROVIDERS provider = X_121_SMC_PROVIDER_XTWPV;
ENUM_X_121_SMC_PROVIDERS provider = X_121_SMC_PROVIDER_XOBGPV;
string providerStr = ToString(provider);
//
// Detect Setup Conditions ...
datetime setupTime = mXTWPVConditions.setupTime;
bool isSetuped = mXTWPVConditions.IsSetuped();
ENUM_X_DIRECTION setupDir = mXTWPVConditions.dir;
datetime setupTime = mXOBGPVConditions.setupTime;
bool isSetuped = mXOBGPVConditions.IsSetuped();
ENUM_X_DIRECTION setupDir = mXOBGPVConditions.dir;
if (!isSetuped)
{
//
// Detect Signal Setup ...
isSetuped = DetectX121SMCXTWPVSiganlSetup(
isSetuped = DetectX121SMCXOBGPVSiganlSetup(
symbol,
period,
mXTWPVConditions,
mXOBGPVConditions,
mTriggerCycleHelper,
mDecisionCycleHelper,
mAnalyseCycleHelper,
@@ -569,25 +569,25 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
);
//
setupDir = mXTWPVConditions.dir;
setupTime = mXTWPVConditions.setupTime;
setupDir = mXOBGPVConditions.dir;
setupTime = mXOBGPVConditions.setupTime;
//
if (isSetuped)
{
//
int items = AddX121SMCXTWPVConditionsIfNotExists(
mXTWPVConditions,
mXTWPVConditionsCollection //
int items = AddX121SMCXOBGPVConditionsIfNotExists(
mXOBGPVConditions,
mXOBGPVConditionsCollection //
);
//
mXTWPVConditions.Clean();
mXOBGPVConditions.Clean();
}
}
//
int conditionsCount = ArraySize(mXTWPVConditionsCollection);
int conditionsCount = ArraySize(mXOBGPVConditionsCollection);
result = IsValidSize(conditionsCount);
if (!result)
{
@@ -597,12 +597,12 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
// Looking For Conditions ...
int selectedIndex = 0;
X121SMCStrategyXTWPVSignalConditions mTmpConditions[];
X121SMCStrategyXOBGPVSignalConditions mTmpConditions[];
Copy(
mXTWPVConditionsCollection,
mXOBGPVConditionsCollection,
mTmpConditions //
);
X121SMCStrategyXTWPVSignalConditions mConditions;
X121SMCStrategyXOBGPVSignalConditions mConditions;
for (int i = 0; i < conditionsCount; i++)
{
//
@@ -648,7 +648,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
{
//
ArrayRemove(
mXTWPVConditionsCollection,
mXOBGPVConditionsCollection,
i,
1 //
);
@@ -665,7 +665,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
{
//
// Detect Signal Trigger ...
canTrigger = DetectX121SMCXTWPVSiganlTrigger(
canTrigger = DetectX121SMCXOBGPVSiganlTrigger(
mTmpConditions[i],
symbol,
period,
@@ -709,7 +709,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
// Remove Selected Index from Main Collection ...
ArrayRemove(
mXTWPVConditionsCollection,
mXOBGPVConditionsCollection,
selectedIndex,
1 //
);