converts signal lib to class ...

This commit is contained in:
2025-02-12 06:55:11 +03:30
parent 712e425b88
commit 34b49f8cb9
3 changed files with 3821 additions and 3741 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+36 -38
View File
@@ -27,7 +27,7 @@
#include "../Classes/x-121.smc.market.cycle.helper.class.mq5"
//
#include "../Signals/x-121.smc.xsupdemobs.signal.lib.mq5"
#include "../Signals/x-121.smc.xsupdemobs.signal.class.mq5"
//
// Definitions ...
@@ -42,6 +42,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
// Props ...
bool useXSupDemOBSSignal;
XCX121SMCXSupDemOBSSignalDetector *mXSupDemONSSignalDetector;
//
// Constructor(s) ...
@@ -53,7 +54,9 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
)
: XCX121SMCBaseStrategy(_symbol, _period)
{
//
InitialHelpers();
mXSupDemONSSignalDetector = new XCX121SMCXSupDemOBSSignalDetector();
}
//
@@ -101,13 +104,6 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
*/
void Destroy() override
{
//
// XSupDemOBS ...
RemoveX121SMCXSupDemOBSDraws();
mX121SMCXSupDemOBSConditions.Clean();
Clean(mX121SMCXSupDemOBSConditionsCollection);
RemoveX121SMCXSupDemOBSWorkingZoneDraws();
//
ZeroMemory(mDecisionCycleHelper);
ZeroMemory(mAnalyseCycleHelper);
@@ -119,6 +115,10 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
delete mAnalyseCycleHelper;
delete mConsolidationCycleHelper;
delete mVisionCycleHelper;
//
ZeroMemory(mXSupDemONSSignalDetector);
delete mXSupDemONSSignalDetector;
}
/**
@@ -324,16 +324,16 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
// Re Draw Working Zone ...
RemoveX121SMCXSupDemOBSWorkingZoneDraws();
DrawX121SMCXSupDemOBSWorkingZone(
mXSupDemONSSignalDetector.RemoveWorkingZoneDraws();
mXSupDemONSSignalDetector.DrawWorkingZone(
mXSupDemOBSConditions,
mVisionCycleHelper.mPOIDrawer //
);
//
// Re Draw Working Zone ...
RemoveX121SMCXSupDemOBSDraws();
DrawX121SMCXSupDemOBSConditions(
mXSupDemONSSignalDetector.RemoveDraws();
mXSupDemONSSignalDetector.DrawConditions(
mXSupDemOBSConditions,
mVisionCycleHelper.mPOIDrawer //
);
@@ -460,7 +460,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
if (useXSupDemOBSSignal)
{
//
bool hasGuard = DetectX121SMCXSupDemOBSGuards(
bool hasGuard = mXSupDemONSSignalDetector.DetectGuards(
guards,
positions,
mDecisionCycleHelper,
@@ -597,17 +597,16 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
// Detect Setup Conditions ...
datetime setupTime = mX121SMCXSupDemOBSConditions.setupTime;
bool isSetuped = mX121SMCXSupDemOBSConditions.IsSetuped();
ENUM_X_DIRECTION setupDir = mX121SMCXSupDemOBSConditions.dir;
datetime setupTime = mXSupDemONSSignalDetector.mConditions.setupTime;
bool isSetuped = mXSupDemONSSignalDetector.mConditions.IsSetuped();
ENUM_X_DIRECTION setupDir = mXSupDemONSSignalDetector.mConditions.dir;
if (!isSetuped)
{
//
// Detect Signal Setup ...
isSetuped = DetectX121SMCXSupDemOBSSignalSetup(
isSetuped = mXSupDemONSSignalDetector.DetectSignalSetup(
symbol,
period,
mX121SMCXSupDemOBSConditions,
mDecisionCycleHelper,
mAnalyseCycleHelper,
mConsolidationCycleHelper,
@@ -615,25 +614,23 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
);
//
setupDir = mX121SMCXSupDemOBSConditions.dir;
setupTime = mX121SMCXSupDemOBSConditions.setupTime;
setupDir = mXSupDemONSSignalDetector.mConditions.dir;
setupTime = mXSupDemONSSignalDetector.mConditions.setupTime;
//
if (isSetuped)
{
//
int items = AddX121SMCXSupDemOBSConditionsIfNotExists(
mX121SMCXSupDemOBSConditions,
mX121SMCXSupDemOBSConditionsCollection //
);
int items = mXSupDemONSSignalDetector
.AddConditionsIfNotExists();
//
mX121SMCXSupDemOBSConditions.Clean();
mXSupDemONSSignalDetector.mConditions.Clean();
}
}
//
int conditionsCount = ArraySize(mX121SMCXSupDemOBSConditionsCollection);
int conditionsCount = ArraySize(mXSupDemONSSignalDetector.mConditionsCollection);
result = IsValidSize(conditionsCount);
if (!result)
{
@@ -645,7 +642,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
int selectedIndex = 0;
X121SMCStrategyXSupDemOBSSignalConditions mTmpConditions[];
Copy(
mX121SMCXSupDemOBSConditionsCollection,
mXSupDemONSSignalDetector.mConditionsCollection,
mTmpConditions //
);
X121SMCStrategyXSupDemOBSSignalConditions mConditions;
@@ -659,15 +656,16 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
{
//
// Detect Signal Trigger ...
canTrigger = DetectX121SMCXSupDemOBSSignalTrigger(
mTmpConditions[i],
symbol,
period,
mDecisionCycleHelper,
mAnalyseCycleHelper,
mConsolidationCycleHelper,
mVisionCycleHelper //
);
canTrigger = mXSupDemONSSignalDetector
.DetectSignalTrigger(
mTmpConditions[i],
symbol,
period,
mDecisionCycleHelper,
mAnalyseCycleHelper,
mConsolidationCycleHelper,
mVisionCycleHelper //
);
//
result = canTrigger;
@@ -679,7 +677,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
{
//
ArrayRemove(
mX121SMCXSupDemOBSConditionsCollection,
mXSupDemONSSignalDetector.mConditionsCollection,
i,
1 //
);
@@ -712,7 +710,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
//
// Remove Selected Index from Main Collection ...
ArrayRemove(
mX121SMCXSupDemOBSConditionsCollection,
mXSupDemONSSignalDetector.mConditionsCollection,
selectedIndex,
1 //
);