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 X121SMCXTestToken = "X121XTest";
const string X121SMCXTWPVToken = "X121XTWPV"; const string X121SMCXOBGPVToken = "X121XOBGPV";
// //
// X121 SMC Providers ... // X121 SMC Providers ...
@@ -45,7 +45,7 @@ enum ENUM_X_121_SMC_PROVIDERS
// //
X_121_SMC_PROVIDER_NONE, X_121_SMC_PROVIDER_NONE,
X_121_SMC_PROVIDER_XTEST, 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; break;
// //
case X_121_SMC_PROVIDER_XTWPV: case X_121_SMC_PROVIDER_XOBGPV:
result = X121SMCXTWPVToken; result = X121SMCXOBGPVToken;
break; break;
} }
@@ -706,9 +706,9 @@ ENUM_X_121_SMC_PROVIDERS ParseProvider(string value)
{ {
result = X_121_SMC_PROVIDER_XTEST; 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.test.signal.lib.mq5"
#include "../Signals/x-121.smc.xtwpv.signal.lib.mq5" #include "../Signals/x-121.smc.xobgpv.signal.lib.mq5"
// //
// Definitions ... // Definitions ...
@@ -184,11 +184,11 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
// //
bool useTestSignal = false; bool useTestSignal = false;
bool useXTWPVSignal = true; bool useXOBGPVSignal = true;
// //
bool hasTestSignal = false; bool hasTestSignal = false;
bool hasXTWPVSignal = false; bool hasXOBGPVSignal = false;
// //
// Test Signal ... // Test Signal ...
@@ -200,12 +200,12 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
} }
// //
// XTWPV Signal ... // XOBGPV Signal ...
if (useXTWPVSignal && !hasSignal) if (useXOBGPVSignal && !hasSignal)
{ {
// //
hasXTWPVSignal = DetectXTWPVSignal(conditions); hasXOBGPVSignal = DetectXOBGPVSignal(conditions);
hasSignal = hasXTWPVSignal; hasSignal = hasXOBGPVSignal;
} }
// //
@@ -476,10 +476,10 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
} }
// //
// XTWPV Signal ... // XOBGPV Signal ...
X121SMCStrategyXTWPVSignalConditions mXTWPVConditions; X121SMCStrategyXOBGPVSignalConditions mXOBGPVConditions;
X121SMCStrategyXTWPVSignalConditions mXTWPVConditionsCollection[]; X121SMCStrategyXOBGPVSignalConditions mXOBGPVConditionsCollection[];
bool DetectXTWPVSignal( bool DetectXOBGPVSignal(
X121SMCStrategyConditions &conditions // X121SMCStrategyConditions &conditions //
) )
{ {
@@ -544,22 +544,22 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
datetime cTime = TimeCurrent(); 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); string providerStr = ToString(provider);
// //
// Detect Setup Conditions ... // Detect Setup Conditions ...
datetime setupTime = mXTWPVConditions.setupTime; datetime setupTime = mXOBGPVConditions.setupTime;
bool isSetuped = mXTWPVConditions.IsSetuped(); bool isSetuped = mXOBGPVConditions.IsSetuped();
ENUM_X_DIRECTION setupDir = mXTWPVConditions.dir; ENUM_X_DIRECTION setupDir = mXOBGPVConditions.dir;
if (!isSetuped) if (!isSetuped)
{ {
// //
// Detect Signal Setup ... // Detect Signal Setup ...
isSetuped = DetectX121SMCXTWPVSiganlSetup( isSetuped = DetectX121SMCXOBGPVSiganlSetup(
symbol, symbol,
period, period,
mXTWPVConditions, mXOBGPVConditions,
mTriggerCycleHelper, mTriggerCycleHelper,
mDecisionCycleHelper, mDecisionCycleHelper,
mAnalyseCycleHelper, mAnalyseCycleHelper,
@@ -569,25 +569,25 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
); );
// //
setupDir = mXTWPVConditions.dir; setupDir = mXOBGPVConditions.dir;
setupTime = mXTWPVConditions.setupTime; setupTime = mXOBGPVConditions.setupTime;
// //
if (isSetuped) if (isSetuped)
{ {
// //
int items = AddX121SMCXTWPVConditionsIfNotExists( int items = AddX121SMCXOBGPVConditionsIfNotExists(
mXTWPVConditions, mXOBGPVConditions,
mXTWPVConditionsCollection // mXOBGPVConditionsCollection //
); );
// //
mXTWPVConditions.Clean(); mXOBGPVConditions.Clean();
} }
} }
// //
int conditionsCount = ArraySize(mXTWPVConditionsCollection); int conditionsCount = ArraySize(mXOBGPVConditionsCollection);
result = IsValidSize(conditionsCount); result = IsValidSize(conditionsCount);
if (!result) if (!result)
{ {
@@ -597,12 +597,12 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
// //
// Looking For Conditions ... // Looking For Conditions ...
int selectedIndex = 0; int selectedIndex = 0;
X121SMCStrategyXTWPVSignalConditions mTmpConditions[]; X121SMCStrategyXOBGPVSignalConditions mTmpConditions[];
Copy( Copy(
mXTWPVConditionsCollection, mXOBGPVConditionsCollection,
mTmpConditions // mTmpConditions //
); );
X121SMCStrategyXTWPVSignalConditions mConditions; X121SMCStrategyXOBGPVSignalConditions mConditions;
for (int i = 0; i < conditionsCount; i++) for (int i = 0; i < conditionsCount; i++)
{ {
// //
@@ -648,7 +648,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
{ {
// //
ArrayRemove( ArrayRemove(
mXTWPVConditionsCollection, mXOBGPVConditionsCollection,
i, i,
1 // 1 //
); );
@@ -665,7 +665,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
{ {
// //
// Detect Signal Trigger ... // Detect Signal Trigger ...
canTrigger = DetectX121SMCXTWPVSiganlTrigger( canTrigger = DetectX121SMCXOBGPVSiganlTrigger(
mTmpConditions[i], mTmpConditions[i],
symbol, symbol,
period, period,
@@ -709,7 +709,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
// //
// Remove Selected Index from Main Collection ... // Remove Selected Index from Main Collection ...
ArrayRemove( ArrayRemove(
mXTWPVConditionsCollection, mXOBGPVConditionsCollection,
selectedIndex, selectedIndex,
1 // 1 //
); );