This commit is contained in:
2025-03-30 02:46:12 +03:30
parent ac95a26e24
commit eaddb8aa72
5 changed files with 375 additions and 80 deletions
+36 -36
View File
@@ -27,7 +27,7 @@
#include "../Classes/x-121.smc.market.cycle.helper.class.mq5"
//
#include "../Signals/x-121.smc.xich.signal.class.mq5"
#include "../Signals/x-121.smc.xind.signal.class.mq5"
#include "../Signals/x-121.smc.xwz.signal.class.mq5"
//
@@ -43,11 +43,11 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
// Props ...
bool useXWZSignal;
bool useXICHSignal;
bool useXINDSignal;
bool useXWZSignalGuard;
bool useXICHSignalGuard;
bool useXINDSignalGuard;
XCX121SMCXWZSignalDetector *mXWZSignalDetector;
XCX121SMCXICHSignalDetector *mXICHSignalDetector;
XCX121SMCXINDSignalDetector *mXINDSignalDetector;
X121SMCStrategySignalProviderData cycleProvider;
//
@@ -70,7 +70,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
);
//
mXICHSignalDetector = new XCX121SMCXICHSignalDetector(
mXINDSignalDetector = new XCX121SMCXINDSignalDetector(
_symbol,
_period //
);
@@ -131,7 +131,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
ZeroMemory(mXWZSignalDetector);
ZeroMemory(mXICHSignalDetector);
ZeroMemory(mXINDSignalDetector);
//
cycleProvider.Destroy();
@@ -214,7 +214,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
bool hasXWZSignal = false;
bool hasXICHSignal = false;
bool hasXINDSignal = false;
//
X121SMCStrategyXWZSignalConditions mXWZConditions;
@@ -229,15 +229,15 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
}
//
X121SMCStrategyXICHSignalConditions mXICHConditions;
if (useXICHSignal && !hasSignal)
X121SMCStrategyXINDSignalConditions mXICHConditions;
if (useXINDSignal && !hasSignal)
{
//
hasXICHSignal = DetectXICHSignal(
hasXINDSignal = DetectXINDSignal(
conditions,
mXICHConditions //
);
hasSignal = hasXICHSignal;
hasSignal = hasXINDSignal;
}
//
@@ -481,12 +481,12 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
// XICH Guard Detection ...
if (useXICHSignal &&
useXICHSignalGuard)
if (useXINDSignal &&
useXINDSignalGuard)
{
//
X121SMCGuard xichGuards[];
bool hasGuard = mXICHSignalDetector.DetectGuards(
bool hasGuard = mXINDSignalDetector.DetectGuards(
xichGuards,
positions,
cycleProvider //
@@ -730,9 +730,9 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
// XICH Signal ...
bool DetectXICHSignal(
bool DetectXINDSignal(
X121SMCStrategyConditions &conditions,
X121SMCStrategyXICHSignalConditions &xICHConditions //
X121SMCStrategyXINDSignalConditions &xICHConditions //
)
{
//
@@ -761,35 +761,35 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
// Detect Setup Conditions ...
datetime setupTime = mXICHSignalDetector.mConditions.setupTime;
bool isSetuped = mXICHSignalDetector.mConditions.IsSetuped();
ENUM_X_DIRECTION setupDir = mXICHSignalDetector.mConditions.dir;
datetime setupTime = mXINDSignalDetector.mConditions.setupTime;
bool isSetuped = mXINDSignalDetector.mConditions.IsSetuped();
ENUM_X_DIRECTION setupDir = mXINDSignalDetector.mConditions.dir;
if (!isSetuped)
{
//
// Detect Signal Setup ...
isSetuped = mXICHSignalDetector.DetectSignalSetup(
isSetuped = mXINDSignalDetector.DetectSignalSetup(
cycleProvider //
);
//
setupDir = mXICHSignalDetector.mConditions.dir;
setupTime = mXICHSignalDetector.mConditions.setupTime;
setupDir = mXINDSignalDetector.mConditions.dir;
setupTime = mXINDSignalDetector.mConditions.setupTime;
//
if (isSetuped)
{
//
int items = mXICHSignalDetector
int items = mXINDSignalDetector
.AddConditionsIfNotExists();
//
mXICHSignalDetector.mConditions.Clean();
mXINDSignalDetector.mConditions.Clean();
}
}
//
int conditionsCount = ArraySize(mXICHSignalDetector.mConditionsCollection);
int conditionsCount = ArraySize(mXINDSignalDetector.mConditionsCollection);
result = IsValidSize(conditionsCount);
if (!result)
{
@@ -799,12 +799,12 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
// Looking For Conditions ...
int selectedIndex = 0;
X121SMCStrategyXICHSignalConditions mTmpConditions[];
X121SMCStrategyXINDSignalConditions mTmpConditions[];
Copy(
mXICHSignalDetector.mConditionsCollection,
mXINDSignalDetector.mConditionsCollection,
mTmpConditions //
);
X121SMCStrategyXICHSignalConditions mConditions;
X121SMCStrategyXINDSignalConditions mConditions;
for (int i = 0; i < conditionsCount; i++)
{
//
@@ -815,7 +815,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
{
//
// Detect Signal Trigger ...
canTrigger = mXICHSignalDetector
canTrigger = mXINDSignalDetector
.DetectSignalTrigger(
mTmpConditions[i],
cycleProvider //
@@ -831,7 +831,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
{
//
ArrayRemove(
mXICHSignalDetector.mConditionsCollection,
mXINDSignalDetector.mConditionsCollection,
i,
1 //
);
@@ -864,7 +864,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
// Remove Selected Index from Main Collection ...
ArrayRemove(
mXICHSignalDetector.mConditionsCollection,
mXINDSignalDetector.mConditionsCollection,
selectedIndex,
1 //
);
@@ -921,8 +921,8 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
useXWZSignalGuard = false;
//
useXICHSignal = true;
useXICHSignalGuard = false;
useXINDSignal = true;
useXINDSignalGuard = false;
//
string symbol = GetSymbol();
@@ -1034,7 +1034,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
x121Inputs.xpvInputs.showVales = showAll || true;
x121Inputs.xpvInputs.showSupports = showAll || false;
x121Inputs.xpvInputs.showResistances = showAll || false;
x121Inputs.xpvInputs.showGoldenZones = showAll || false;
x121Inputs.xpvInputs.showGoldenZones = showAll || true;
//
// XHK ...
@@ -1090,8 +1090,8 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
// XICH ...
x121Inputs.xichInputs.showTenkanSen = showAll || true;
x121Inputs.xichInputs.showKijunSen = showAll || true;
x121Inputs.xichInputs.showTenkanSen = showAll || false;
x121Inputs.xichInputs.showKijunSen = showAll || false;
x121Inputs.xichInputs.showChikouSpan = showAll || false;
x121Inputs.xichInputs.showSenkouSpanA = showAll || false;
x121Inputs.xichInputs.showSenkouSpanB = showAll || false;