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
@@ -24,11 +24,11 @@
#include "../Classes/x-121.smc.market.cycle.helper.class.mq5"
#include "../Libraries/x-121.smc.guard.lib.mq5"
#include "../Libraries/x-121.smc.lib.mq5"
#include "./x-121.smc.xich.signal.lib.mq5"
#include "./x-121.smc.xind.signal.lib.mq5"
//
// Definition ...
class XCX121SMCXICHSignalDetector : public XCBase
class XCX121SMCXINDSignalDetector : public XCBase
{
//
public:
@@ -36,12 +36,12 @@ class XCX121SMCXICHSignalDetector : public XCBase
// Props ...
bool useGuards;
double rfRewar;
X121SMCStrategyXICHSignalConditions mConditions;
X121SMCStrategyXICHSignalConditions mConditionsCollection[];
X121SMCStrategyXINDSignalConditions mConditions;
X121SMCStrategyXINDSignalConditions mConditionsCollection[];
//
// Constructor(s) ...
XCX121SMCXICHSignalDetector(
XCX121SMCXINDSignalDetector(
string _symbol,
ENUM_TIMEFRAMES _period //
)
@@ -54,7 +54,7 @@ class XCX121SMCXICHSignalDetector : public XCBase
//
// Deconstructor ...
~XCX121SMCXICHSignalDetector()
~XCX121SMCXINDSignalDetector()
{
DeInit();
}
@@ -199,7 +199,7 @@ class XCX121SMCXICHSignalDetector : public XCBase
XBoxZone signalBox;
bool hasSignalBox = false;
ENUM_X_DIRECTION signalBoxDir = X_DIRECTION_NONE;
ENUM_X121SMC_XICH_PROVIDERS signalProvider = X121SMC_XICH_PROVIDER_NONE;
ENUM_X121SMC_XIND_PROVIDERS signalProvider = X121SMC_XIND_PROVIDER_NONE;
//
//
@@ -208,8 +208,8 @@ class XCX121SMCXICHSignalDetector : public XCBase
//
// Provider XTkKumo ...
X121SMCStrategyConditionParser cParser;
hasSignalBox = cParser.HasXICHConditions(
X_CYCLE_ANALYSE,
hasSignalBox = cParser.HasXSTRConditions(
X_CYCLE_DECISION,
signalBox,
signalBoxDir,
provider,
@@ -217,7 +217,7 @@ class XCX121SMCXICHSignalDetector : public XCBase
);
if (hasSignalBox)
{
signalProvider = X121SMC_XICH_PROVIDER_XTKKUMO;
signalProvider = X121SMC_XIND_PROVIDER_XSTR;
}
//
@@ -298,20 +298,17 @@ class XCX121SMCXICHSignalDetector : public XCBase
//
// Select and Provide SL Based on ...
double iAtr = 0;
if (signalProvider == X121SMC_XICH_PROVIDER_XTKKUMO)
if (signalProvider == X121SMC_XIND_PROVIDER_XSTR)
{
//
iAtr = provider.decisionXConditions.atrBuffer[1];
iAtr *= 0;
iAtr *= 0.5;
//
// Fix rf Reward ...
rfRewar = 1.5;
rfRewar = 2;
}
//
Print("XICH ", ToString(signalBoxDir), " Signal Provided: ", EnumToString(signalProvider));
//
// Select Condition SL ...
@@ -411,7 +408,7 @@ class XCX121SMCXICHSignalDetector : public XCBase
// Detect Trigger Conditions ...
bool DetectSignalTrigger(
//
X121SMCStrategyXICHSignalConditions &conditions,
X121SMCStrategyXINDSignalConditions &conditions,
//
X121SMCStrategySignalProviderData &provider,
//
@@ -534,7 +531,7 @@ class XCX121SMCXICHSignalDetector : public XCBase
//
// Set Provider for Common Guards ...
string signalProvider = ToString(X121SMC_XICH_PROVIDER_XTKKUMO);
string signalProvider = ToString(X121SMC_XIND_PROVIDER_XTKKUMO);
//
int zIndex = 0;
@@ -1077,7 +1074,7 @@ class XCX121SMCXICHSignalDetector : public XCBase
{
//
// Copy Original Items ...
X121SMCStrategyXICHSignalConditions tmpItems[];
X121SMCStrategyXINDSignalConditions tmpItems[];
Copy(
mConditionsCollection,
tmpItems //
@@ -1091,7 +1088,7 @@ class XCX121SMCXICHSignalDetector : public XCBase
for (int i = 0; i < count; i++)
{
//
X121SMCStrategyXICHSignalConditions iItem = tmpItems[i];
X121SMCStrategyXINDSignalConditions iItem = tmpItems[i];
//
bool canRemove = mConditions.dir == iItem.dir &&
@@ -28,10 +28,11 @@
//
// Provided Signals Enumeration ...
enum ENUM_X121SMC_XICH_PROVIDERS
enum ENUM_X121SMC_XIND_PROVIDERS
{
X121SMC_XICH_PROVIDER_NONE,
X121SMC_XICH_PROVIDER_XTKKUMO,
X121SMC_XIND_PROVIDER_NONE,
X121SMC_XIND_PROVIDER_XSTR,
X121SMC_XIND_PROVIDER_XTKKUMO,
};
//
@@ -39,7 +40,7 @@ enum ENUM_X121SMC_XICH_PROVIDERS
//
// XICH Signal Conditions ...
struct X121SMCStrategyXICHSignalConditions
struct X121SMCStrategyXINDSignalConditions
{
//
// Props ...
@@ -70,11 +71,11 @@ struct X121SMCStrategyXICHSignalConditions
XBoxZone signalBox;
//
ENUM_X121SMC_XICH_PROVIDERS provider;
ENUM_X121SMC_XIND_PROVIDERS provider;
//
// Constructor ...
X121SMCStrategyXICHSignalConditions()
X121SMCStrategyXINDSignalConditions()
{
Clean();
}
@@ -198,7 +199,7 @@ struct X121SMCStrategyXICHSignalConditions
signalBox.Clean();
//
provider = X121SMC_XICH_PROVIDER_NONE;
provider = X121SMC_XIND_PROVIDER_NONE;
}
//
@@ -2185,7 +2185,7 @@ struct X121SMCStrategyXWZWorkingZone
}
//
cPraser.Clean();
cParser.Clean();
//
return result;