add support back indicators usage ...

This commit is contained in:
2025-02-09 21:29:21 +03:30
parent e53ed9a5c0
commit c79ee42d7c
13 changed files with 1787 additions and 1720 deletions
-38
View File
@@ -23,8 +23,6 @@
// Imports ... // Imports ...
#include "../Classes/x-saherelm.x-alert.class.mq5" #include "../Classes/x-saherelm.x-alert.class.mq5"
#include "../Classes/x-saherelm.x-trade.class.mq5" #include "../Classes/x-saherelm.x-trade.class.mq5"
#include "../Helpers/x-saherelm.xcc.helper.mq5"
#include "../Helpers/x-saherelm.xct.helper.mq5"
// //
// Definitions ... // Definitions ...
@@ -607,36 +605,6 @@ class XCBaseExpert : public XCBaseAlert
// //
// Initialize Indicator Helpers ... // Initialize Indicator Helpers ...
//
// Bar Timer ...
XCTInputs ctInputs;
ctInputs.Default(); // Default Configurations ...
mCTHelper = new XCXCTHelper();
result = mCTHelper.Init(
_Symbol,
_Period,
ctInputs //
);
if (!result)
{
return result;
}
//
// Bar Styles ...
XCCInputs ccInputs;
ccInputs.Default(); // Default Configurations ...
mCCHelper = new XCXCCHelper();
result = mCCHelper.Init(
_Symbol,
_Period,
ccInputs //
);
if (!result)
{
return result;
}
// //
// Create Trader Instance and Configure it ... // Create Trader Instance and Configure it ...
mTrader = new XCTrade( mTrader = new XCTrade(
@@ -655,13 +623,9 @@ class XCBaseExpert : public XCBaseAlert
{ {
// //
delete mTrader; delete mTrader;
delete mCTHelper;
delete mCCHelper;
// //
ZeroMemory(mTrader); ZeroMemory(mTrader);
ZeroMemory(mCTHelper);
ZeroMemory(mCCHelper);
} }
/** /**
@@ -866,8 +830,6 @@ class XCBaseExpert : public XCBaseAlert
// //
XTimeTracker mTimeTracker; // Time Tracker for Providing Reports ... XTimeTracker mTimeTracker; // Time Tracker for Providing Reports ...
XCXCTHelper *mCTHelper; // Bar Timer Indicator Helper class ...
XCXCCHelper *mCCHelper; // Chart Styler Indicator Helper Class ...
// //
// Actions ... // Actions ...
File diff suppressed because it is too large Load Diff
@@ -2,7 +2,7 @@
// //
// SaherElm IT Center MQL5 Helper Class Library // SaherElm IT Center MQL5 Helper Class Library
// ---------------------------------------------- // ----------------------------------------------
// Name: XSCXCCHelper // Name: XSCX121XCCHelper
// Description: provides all Indicator // Description: provides all Indicator
// Helper requirements ... // Helper requirements ...
// //
@@ -29,7 +29,7 @@
// //
// Input Models ... // Input Models ...
struct XCCInputs struct X121XCCInputs
{ {
// //
// Props ... // Props ...
@@ -50,7 +50,7 @@ struct XCCInputs
// //
// Constructor(s) ... // Constructor(s) ...
XCCInputs() X121XCCInputs()
{ {
// //
Clean(); Clean();
@@ -134,7 +134,7 @@ struct XCCInputs
// //
// Class ... // Class ...
class XCXCCHelper : public XCBaseHelper class XCX121XCCHelper : public XCBaseHelper
{ {
// //
// Public ... // Public ...
@@ -144,14 +144,14 @@ class XCXCCHelper : public XCBaseHelper
// //
// Constructors ... // Constructors ...
XCXCCHelper() XCX121XCCHelper()
: XCBaseHelper(_Symbol, _Period) : XCBaseHelper(_Symbol, _Period)
{ {
} }
// //
// Deconstructor ... // Deconstructor ...
~XCXCCHelper() ~XCX121XCCHelper()
{ {
mInputs.Clean(); mInputs.Clean();
} }
@@ -161,7 +161,7 @@ class XCXCCHelper : public XCBaseHelper
bool Init( bool Init(
string symbol, // Trading Symbol string symbol, // Trading Symbol
ENUM_TIMEFRAMES period, // Trading Period ENUM_TIMEFRAMES period, // Trading Period
XCCInputs &inputs // Inputs X121XCCInputs &inputs // Inputs
) )
{ {
// //
@@ -185,7 +185,7 @@ class XCXCCHelper : public XCBaseHelper
mHandler = iCustom( mHandler = iCustom(
mSymbol, mSymbol,
mPeriod, mPeriod,
"x-saherelm.xcc", "x-saherelm.x121.xcc",
// //
// Inputs ... // Inputs ...
// //
@@ -218,14 +218,14 @@ class XCXCCHelper : public XCBaseHelper
// Inputs ... // Inputs ...
// //
XCCInputs GetInputs() X121XCCInputs GetInputs()
{ {
return mInputs; return mInputs;
} }
// //
bool SetInputs( bool SetInputs(
XCCInputs &inputs // Configs X121XCCInputs &inputs // Configs
) )
{ {
// //
@@ -245,7 +245,7 @@ class XCXCCHelper : public XCBaseHelper
private: private:
// //
// Props ... // Props ...
XCCInputs mInputs; // Inputs ... X121XCCInputs mInputs; // Inputs ...
}; };
// //
@@ -2,7 +2,7 @@
// //
// SaherElm IT Center MQL5 Helper Class Library // SaherElm IT Center MQL5 Helper Class Library
// ---------------------------------------------- // ----------------------------------------------
// Name: XSCXCTHelper // Name: XSCX121XCTHelper
// Description: provides all Indicator // Description: provides all Indicator
// Helper requirements ... // Helper requirements ...
// //
@@ -29,7 +29,7 @@
// //
// Input Models ... // Input Models ...
struct XCTInputs struct X121XCTInputs
{ {
// //
// Props ... // Props ...
@@ -46,7 +46,7 @@ struct XCTInputs
// //
// Constructor(s) ... // Constructor(s) ...
XCTInputs() X121XCTInputs()
{ {
Clean(); Clean();
} }
@@ -122,7 +122,7 @@ struct XCTInputs
// //
// Class ... // Class ...
class XCXCTHelper : public XCBaseHelper class XCX121XCTHelper : public XCBaseHelper
{ {
// //
// Public ... // Public ...
@@ -132,14 +132,14 @@ class XCXCTHelper : public XCBaseHelper
// //
// Constructors ... // Constructors ...
XCXCTHelper() XCX121XCTHelper()
: XCBaseHelper(_Symbol, _Period) : XCBaseHelper(_Symbol, _Period)
{ {
} }
// //
// Deconstructor ... // Deconstructor ...
~XCXCTHelper() ~XCX121XCTHelper()
{ {
mInputs.Clean(); mInputs.Clean();
} }
@@ -149,7 +149,7 @@ class XCXCTHelper : public XCBaseHelper
bool Init( bool Init(
string symbol, // Trading Symbol string symbol, // Trading Symbol
ENUM_TIMEFRAMES period, // Trading Period ENUM_TIMEFRAMES period, // Trading Period
XCTInputs &inputs // Inputs X121XCTInputs &inputs // Inputs
) )
{ {
// //
@@ -173,7 +173,7 @@ class XCXCTHelper : public XCBaseHelper
mHandler = iCustom( mHandler = iCustom(
mSymbol, mSymbol,
mPeriod, mPeriod,
"x-saherelm.xct", "x-saherelm.x121.xct",
// //
// Inputs ... // Inputs ...
mInputs.fontSize, // Font Size ... mInputs.fontSize, // Font Size ...
@@ -200,14 +200,14 @@ class XCXCTHelper : public XCBaseHelper
// Inputs ... // Inputs ...
// //
XCTInputs GetInputs() X121XCTInputs GetInputs()
{ {
return mInputs; return mInputs;
} }
// //
bool SetInputs( bool SetInputs(
XCTInputs &inputs // Configs X121XCTInputs &inputs // Configs
) )
{ {
// //
@@ -227,7 +227,7 @@ class XCXCTHelper : public XCBaseHelper
private: private:
// //
// Props ... // Props ...
XCTInputs mInputs; // Inputs ... X121XCTInputs mInputs; // Inputs ...
}; };
// //
@@ -2,7 +2,7 @@
// //
// SaherElm IT Center MQL5 Candle Styles // SaherElm IT Center MQL5 Candle Styles
// --------------------------------------------------- // ---------------------------------------------------
// Name: XCC // Name: X121 XCC
// Description: Candle Styles ... // Description: Candle Styles ...
// //
// //
@@ -16,7 +16,7 @@
#property copyright "Copyright 2023, SaherElm IT Center" #property copyright "Copyright 2023, SaherElm IT Center"
#property link "https://saherelm.ir" #property link "https://saherelm.ir"
#property version "1.00" #property version "1.00"
#property description "SaherElm XCC Indicator" #property description "SaherElm X121 XCC Indicator"
#property strict #property strict
// //
@@ -25,7 +25,7 @@
// //
// Indicator Short Name ... // Indicator Short Name ...
#define ShortName "XCC" #define ShortName "X121 XCC"
// //
// Holds an SnapShot of Charts Configuration ... // Holds an SnapShot of Charts Configuration ...
@@ -2,7 +2,7 @@
// //
// SaherElm IT Center MQL5 Indicator // SaherElm IT Center MQL5 Indicator
// --------------------------------------------- // ---------------------------------------------
// Name: XCT // Name: X121 XCT
// Description: Trend Magic Indicator ... // Description: Trend Magic Indicator ...
// //
// //
@@ -16,7 +16,7 @@
#property copyright "Copyright 2023, SaherElm IT Center" #property copyright "Copyright 2023, SaherElm IT Center"
#property link "https://saherelm.ir" #property link "https://saherelm.ir"
#property version "1.00" #property version "1.00"
#property description "SaherElm XCT Indicator" #property description "SaherElm X121 XCT Indicator"
#property strict #property strict
// //
@@ -24,7 +24,7 @@
// //
// //
#define ShortName "XCT" #define ShortName "X121 XCT"
#include "../Libraries/x-saherelm.common.lib.mq5" #include "../Libraries/x-saherelm.common.lib.mq5"
// //
+68 -14
View File
@@ -2083,6 +2083,7 @@ class XCTwoBarZone : public XCZone
* @param forDir: ENUM_X_DIRECTION member, Specified Action Direction ... * @param forDir: ENUM_X_DIRECTION member, Specified Action Direction ...
* @param breakerBar: XOHCL instance Reference ... * @param breakerBar: XOHCL instance Reference ...
* @param breakerDir: ENUM_X_DIRECTION member ... * @param breakerDir: ENUM_X_DIRECTION member ...
* @param ignoreActivation: ignore Zone Activation and Used Start ...
* @param forPeriod: ENUM_TIMEFRAMES member, Specified Rejection Period ... * @param forPeriod: ENUM_TIMEFRAMES member, Specified Rejection Period ...
* *
* @return ( bool ) * @return ( bool )
@@ -2091,6 +2092,7 @@ class XCTwoBarZone : public XCZone
ENUM_X_DIRECTION forDir, ENUM_X_DIRECTION forDir,
XOHCL &breakerBar, XOHCL &breakerBar,
ENUM_X_DIRECTION &breakerDir, ENUM_X_DIRECTION &breakerDir,
bool ignoreActivation = false,
ENUM_TIMEFRAMES forPeriod = NULL // ENUM_TIMEFRAMES forPeriod = NULL //
) )
{ {
@@ -2117,22 +2119,60 @@ class XCTwoBarZone : public XCZone
} }
// //
XOHCL activatedBar; bool isBullish = IsBullish(forDir);
ENUM_X_DIRECTION activatedDir; bool isBearish = IsBearish(forDir);
bool isActivated = IsActivated( int activatedIndex = -1;
forDir,
activatedBar, //
activatedDir, if (!ignoreActivation)
forPeriod // {
); //
result = isActivated; XOHCL activatedBar;
ENUM_X_DIRECTION activatedDir;
bool isActivated = IsActivated(
forDir,
activatedBar,
activatedDir,
forPeriod //
);
result = isActivated;
if (!result)
{
return result;
}
//
activatedIndex = activatedBar.Index();
}
else
{
//
XOHCL startedBar;
ENUM_X_DIRECTION startedDir;
bool isStarted = IsActivated(
forDir,
startedBar,
startedDir,
forPeriod //
);
result = isStarted;
if (!result)
{
return result;
}
//
activatedIndex = startedBar.Index();
}
//
result = IsValidIndex(activatedIndex);
if (!result) if (!result)
{ {
return result; return result;
} }
// //
int activatedIndex = activatedBar.Index();
activatedIndex--; activatedIndex--;
// //
@@ -2164,16 +2204,30 @@ class XCTwoBarZone : public XCZone
// //
bool isBreakedFromUpper = bool isBreakedFromUpper =
// //
(iPBar.high <= Upper() && isBullish &&
iBar.low > Upper()) //
(
//
iBar.low > Upper() ||
(iBar.low <= Upper() &&
iBar.high > Upper())
//
)
// //
; ;
// //
bool isBreakedFromLower = bool isBreakedFromLower =
// //
(iPBar.low >= Lower() && isBearish &&
iBar.low < Lower()) //
(
//
iBar.low < Lower() ||
(iBar.high >= Lower() &&
iBar.low < Lower())
//
)
// //
; ;
@@ -142,6 +142,10 @@ class XC121SMCCycleHelper : public XCBase
return result; return result;
} }
//
mSymbol = symbol;
mPeriod = period;
// //
// X121 ... // X121 ...
mX121Helper = new XCX121Helper(); mX121Helper = new XCX121Helper();
@@ -199,14 +203,7 @@ class XC121SMCCycleHelper : public XCBase
*/ */
string GetSymbol() string GetSymbol()
{ {
// return mSymbol;
string result = NULL;
//
result = mX121Helper.GetSymbol();
//
return result;
} }
/** /**
@@ -216,14 +213,7 @@ class XC121SMCCycleHelper : public XCBase
*/ */
ENUM_TIMEFRAMES GetPeriod() ENUM_TIMEFRAMES GetPeriod()
{ {
// return mPeriod;
ENUM_TIMEFRAMES result = NULL;
//
result = mX121Helper.GetPeriod();
//
return result;
} }
/** /**
@@ -433,8 +423,8 @@ class XC121SMCCycleHelper : public XCBase
mPOIDetector.GetState(conditions.state); mPOIDetector.GetState(conditions.state);
// //
conditions.symbol = conditions.x121Conditions.symbol; conditions.symbol = GetSymbol();
conditions.period = conditions.x121Conditions.period; conditions.period = GetPeriod();
conditions.time = TimeCurrent(); conditions.time = TimeCurrent();
// //
@@ -465,6 +455,8 @@ class XC121SMCCycleHelper : public XCBase
private: private:
// //
// Props ... // Props ...
string mSymbol;
ENUM_TIMEFRAMES mPeriod;
// //
// Actions ... // Actions ...
+23 -21
View File
@@ -22,6 +22,8 @@
// //
// Imports ... // Imports ...
#include "../../Classes/x-saherelm.x-expert.class.mq5" #include "../../Classes/x-saherelm.x-expert.class.mq5"
#include "../../Helpers/x-saherelm.x121.xatr.helper.mq5"
#include "../../Helpers/x-saherelm.x121.xcc.helper.mq5"
#include "../Classes/x-121.smc.x-tradehandler.class.mq5" #include "../Classes/x-121.smc.x-tradehandler.class.mq5"
#include "../Libraries/x-121.smc.lib.mq5" #include "../Libraries/x-121.smc.lib.mq5"
#include "../Strategy/x-121.smc.strategy.class.mq5" #include "../Strategy/x-121.smc.strategy.class.mq5"
@@ -38,6 +40,8 @@ class XC121SMCExpert : public XCBaseExpert
// //
public: public:
// //
XCX121XCCHelper *xccHelper;
XCX121XCTHelper *xctHelper;
// //
// Signal Event Listener ... // Signal Event Listener ...
@@ -1157,20 +1161,19 @@ class XC121SMCExpert : public XCBaseExpert
bool InitEA() override bool InitEA() override
{ {
// //
bool result = false; bool result = true;
// //
// Initialize Indicator Helpers ... // Initialize Indicator Helpers ...
// //
// Bar Timer ... X121XCCInputs xccInputs;
XCTInputs ctInputs; xccInputs.Default();
ctInputs.Default(); // Default Configurations ... xccHelper = new XCX121XCCHelper();
mCTHelper = new XCXCTHelper(); result = xccHelper.Init(
result = mCTHelper.Init( _Symbol,
GetSymbol(), _Period,
GetPeriod(), xccInputs //
ctInputs //
); );
if (!result) if (!result)
{ {
@@ -1178,14 +1181,13 @@ class XC121SMCExpert : public XCBaseExpert
} }
// //
// Bar Styles ... X121XCTInputs xctInputs;
XCCInputs ccInputs; xctInputs.Default();
ccInputs.Default(); // Default Configurations ... xctHelper = new XCX121XCTHelper();
mCCHelper = new XCXCCHelper(); result = xctHelper.Init(
result = mCCHelper.Init( _Symbol,
GetSymbol(), _Period,
GetPeriod(), xctInputs //
ccInputs //
); );
if (!result) if (!result)
{ {
@@ -1334,13 +1336,13 @@ class XC121SMCExpert : public XCBaseExpert
void DestroyEA() override void DestroyEA() override
{ {
// //
ZeroMemory(mCTHelper); ZeroMemory(xccHelper);
ZeroMemory(mCCHelper); ZeroMemory(xctHelper);
ZeroMemory(mTradeHandler); ZeroMemory(mTradeHandler);
// //
delete mCTHelper; delet xccHelper;
delete mCCHelper; delet xctHelper;
delete mTradeHandler; delete mTradeHandler;
// //
+25 -25
View File
@@ -33,7 +33,7 @@ bool DetectX121SMCGuards(
// XC121SMCCycleHelper *triggerCycleHelper, // XC121SMCCycleHelper *triggerCycleHelper,
XC121SMCCycleHelper *decisionCycleHelper, XC121SMCCycleHelper *decisionCycleHelper,
XC121SMCCycleHelper *analyseCycleHelper, XC121SMCCycleHelper *analyseCycleHelper,
XC121SMCCycleHelper *verificationCycleHelper, // XC121SMCCycleHelper *verificationCycleHelper,
XC121SMCCycleHelper *consolidationCycleHelper, XC121SMCCycleHelper *consolidationCycleHelper,
XC121SMCCycleHelper *visionCycleHelper, XC121SMCCycleHelper *visionCycleHelper,
// //
@@ -273,20 +273,20 @@ bool DetectX121SMCGuards(
// //
// Verification ... // Verification ...
ENUM_XPOI_EVENTS verificationPoiEvents[]; // ENUM_XPOI_EVENTS verificationPoiEvents[];
ENUM_X_CYCLE_EVENTS verificationCycleEvents[]; // ENUM_X_CYCLE_EVENTS verificationCycleEvents[];
X121SMCCycleConditions verificationConditions; // X121SMCCycleConditions verificationConditions;
result = verificationCycleHelper.GetConditions( // result = verificationCycleHelper.GetConditions(
verificationCycleEvents, // verificationCycleEvents,
verificationPoiEvents, // verificationPoiEvents,
verificationConditions, // verificationConditions,
zIndex, // zIndex,
loopback // // loopback //
); // );
if (!result) // if (!result)
{ // {
return result; // return result;
} // }
// //
// Consolidation ... // Consolidation ...
@@ -327,18 +327,18 @@ bool DetectX121SMCGuards(
// XPOIState triggerState = triggerConditions.state; // XPOIState triggerState = triggerConditions.state;
XPOIState decisionState = decisionConditions.state; XPOIState decisionState = decisionConditions.state;
XPOIState analyseState = analyseConditions.state; XPOIState analyseState = analyseConditions.state;
XPOIState verificationState = verificationConditions.state; // XPOIState verificationState = verificationConditions.state;
XPOIState consolidationState = consolidationConditions.state; XPOIState consolidationState = consolidationConditions.state;
XPOIState visionState = visionConditions.state; XPOIState visionState = visionConditions.state;
// //
// Cycle X121Conditions ... // Cycle X121Conditions ...
// X121Conditions triggerXConditions = triggerConditions.x121Conditions; // X121Conditions triggerXConditions = triggerConditions.x121Conditions;
X121Conditions decisionXConditions = decisionConditions.x121Conditions; // X121Conditions decisionXConditions = decisionConditions.x121Conditions;
X121Conditions analyseXConditions = analyseConditions.x121Conditions; // X121Conditions analyseXConditions = analyseConditions.x121Conditions;
X121Conditions verificationXConditions = verificationConditions.x121Conditions; // X121Conditions verificationXConditions = verificationConditions.x121Conditions;
X121Conditions consolidationXConditions = consolidationConditions.x121Conditions; // X121Conditions consolidationXConditions = consolidationConditions.x121Conditions;
X121Conditions visionXConditions = visionConditions.x121Conditions; // X121Conditions visionXConditions = visionConditions.x121Conditions;
// //
// //
@@ -861,7 +861,7 @@ bool DetectX121SMCGuards(
// //
if (hasTrendGuard) if (hasTrendGuard)
{ {
guardStop = decisionXConditions.strBuffer[1] - decisionXConditions.atrBuffer[1]; // guardStop = decisionXConditions.strBuffer[1] - decisionXConditions.atrBuffer[1];
} }
// //
@@ -986,7 +986,7 @@ bool DetectX121SMCGuards(
// //
if (hasTrendGuard) if (hasTrendGuard)
{ {
guardStop = decisionXConditions.strBuffer[1] + decisionXConditions.atrBuffer[1]; // guardStop = decisionXConditions.strBuffer[1] + decisionXConditions.atrBuffer[1];
} }
// //
@@ -1228,8 +1228,8 @@ bool DetectX121SMCGuards(
Clean(decisionCycleEvents); Clean(decisionCycleEvents);
Clean(analysePoiEvents); Clean(analysePoiEvents);
Clean(analyseCycleEvents); Clean(analyseCycleEvents);
Clean(verificationPoiEvents); // Clean(verificationPoiEvents);
Clean(verificationCycleEvents); // Clean(verificationCycleEvents);
Clean(consolidationPoiEvents); Clean(consolidationPoiEvents);
Clean(consolidationCycleEvents); Clean(consolidationCycleEvents);
Clean(visionPoiEvents); Clean(visionPoiEvents);
+3 -3
View File
@@ -98,7 +98,7 @@ struct X121SMCCycleConditions
// //
state.Clean(); state.Clean();
x121Conditions.Clean(); // x121Conditions.Clean();
// //
ZeroMemory(this); ZeroMemory(this);
@@ -273,7 +273,7 @@ struct X121SMCStrategyConditions
ENUM_X_DIRECTION signalDir; ENUM_X_DIRECTION signalDir;
// //
X121Conditions conditions; // X121Conditions conditions;
// XPriceZones priceZones; // XPriceZones priceZones;
// XPriceZones decisionZones; // XPriceZones decisionZones;
// XMarketStructure marketStructure; // XMarketStructure marketStructure;
@@ -304,7 +304,7 @@ struct X121SMCStrategyConditions
signalDir = X_DIRECTION_NONE; signalDir = X_DIRECTION_NONE;
// //
conditions.Clean(); // conditions.Clean();
// priceZones.Clean(); // priceZones.Clean();
// decisionZones.Clean(); // decisionZones.Clean();
// marketStructure.Clean(); // marketStructure.Clean();
@@ -195,6 +195,10 @@ struct XOBFVG
isBullish isBullish
? isAbove ? isAbove
: isBelow; : isBelow;
if (!result)
{
return result;
}
// //
// Check FVG Must Be Started ... // Check FVG Must Be Started ...
@@ -1678,10 +1682,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
// //
X121SMCStrategyXSupDemOBSSignalConditions &conditions, X121SMCStrategyXSupDemOBSSignalConditions &conditions,
// //
// XC121SMCCycleHelper *triggerCycleHelper,
XC121SMCCycleHelper *decisionCycleHelper, XC121SMCCycleHelper *decisionCycleHelper,
XC121SMCCycleHelper *analyseCycleHelper, XC121SMCCycleHelper *analyseCycleHelper,
XC121SMCCycleHelper *verificationCycleHelper,
XC121SMCCycleHelper *consolidationCycleHelper, XC121SMCCycleHelper *consolidationCycleHelper,
XC121SMCCycleHelper *visionCycleHelper XC121SMCCycleHelper *visionCycleHelper
// //
@@ -1690,6 +1692,21 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
// //
bool result = false; bool result = false;
//
// Validate Cycle Helpers ...
result =
//
visionCycleHelper != NULL &&
analyseCycleHelper != NULL &&
decisionCycleHelper != NULL &&
consolidationCycleHelper != NULL
//
;
if (!result)
{
return result;
}
// //
bool isBullish = false; bool isBullish = false;
bool isBearish = false; bool isBearish = false;
@@ -1720,23 +1737,6 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
// //
// Cycles Conditions ... // Cycles Conditions ...
//
// Trigger ...
// ENUM_XPOI_EVENTS triggerPoiEvents[];
// ENUM_X_CYCLE_EVENTS triggerCycleEvents[];
// X121SMCCycleConditions triggerConditions;
// result = triggerCycleHelper.GetConditions(
// triggerCycleEvents,
// triggerPoiEvents,
// triggerConditions,
// zIndex,
// loopback //
// );
// if (!result)
// {
// return result;
// }
// //
// Decision ... // Decision ...
ENUM_XPOI_EVENTS decisionPoiEvents[]; ENUM_XPOI_EVENTS decisionPoiEvents[];
@@ -1771,23 +1771,6 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
return result; return result;
} }
//
// Verification ...
ENUM_XPOI_EVENTS verificationPoiEvents[];
ENUM_X_CYCLE_EVENTS verificationCycleEvents[];
X121SMCCycleConditions verificationConditions;
result = verificationCycleHelper.GetConditions(
verificationCycleEvents,
verificationPoiEvents,
verificationConditions,
zIndex,
loopback //
);
if (!result)
{
return result;
}
// //
// Consolidation ... // Consolidation ...
ENUM_XPOI_EVENTS consolidationPoiEvents[]; ENUM_XPOI_EVENTS consolidationPoiEvents[];
@@ -1824,21 +1807,17 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
// //
// Cycles POI States ... // Cycles POI States ...
// XPOIState triggerState = triggerConditions.state;
XPOIState decisionState = decisionConditions.state; XPOIState decisionState = decisionConditions.state;
XPOIState analyseState = analyseConditions.state; XPOIState analyseState = analyseConditions.state;
XPOIState verificationState = verificationConditions.state;
XPOIState consolidationState = consolidationConditions.state; XPOIState consolidationState = consolidationConditions.state;
XPOIState visionState = visionConditions.state; XPOIState visionState = visionConditions.state;
// //
// Cycle X121Conditions ... // Cycle X121Conditions ...
// X121Conditions triggerXConditions = triggerConditions.x121Conditions; // X121Conditions decisionXConditions = decisionConditions.x121Conditions;
X121Conditions decisionXConditions = decisionConditions.x121Conditions; // X121Conditions analyseXConditions = analyseConditions.x121Conditions;
X121Conditions analyseXConditions = analyseConditions.x121Conditions; // X121Conditions consolidationXConditions = consolidationConditions.x121Conditions;
X121Conditions verificationXConditions = verificationConditions.x121Conditions; // X121Conditions visionXConditions = visionConditions.x121Conditions;
X121Conditions consolidationXConditions = consolidationConditions.x121Conditions;
X121Conditions visionXConditions = visionConditions.x121Conditions;
// //
// Setup Conditions ... // Setup Conditions ...
@@ -1865,8 +1844,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
Clean(decisionCycleEvents); Clean(decisionCycleEvents);
Clean(analysePoiEvents); Clean(analysePoiEvents);
Clean(analyseCycleEvents); Clean(analyseCycleEvents);
Clean(verificationPoiEvents); // Clean(verificationPoiEvents);
Clean(verificationCycleEvents); // Clean(verificationCycleEvents);
Clean(consolidationPoiEvents); Clean(consolidationPoiEvents);
Clean(consolidationCycleEvents); Clean(consolidationCycleEvents);
Clean(visionPoiEvents); Clean(visionPoiEvents);
@@ -1881,19 +1860,19 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
decisionPBar.Clean(); decisionPBar.Clean();
decisionState.Clean(); decisionState.Clean();
visionConditions.Clean(); visionConditions.Clean();
visionXConditions.Clean(); // visionXConditions.Clean();
verificationState.Clean(); // verificationState.Clean();
// triggerConditions.Clean(); // triggerConditions.Clean();
analyseConditions.Clean(); analyseConditions.Clean();
consolidationState.Clean(); consolidationState.Clean();
// triggerXConditions.Clean(); // triggerXConditions.Clean();
analyseXConditions.Clean(); // analyseXConditions.Clean();
decisionConditions.Clean(); decisionConditions.Clean();
decisionXConditions.Clean(); // decisionXConditions.Clean();
verificationConditions.Clean(); // verificationConditions.Clean();
verificationXConditions.Clean(); // verificationXConditions.Clean();
consolidationConditions.Clean(); consolidationConditions.Clean();
consolidationXConditions.Clean(); // consolidationXConditions.Clean();
// //
return result; return result;
@@ -1911,8 +1890,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
Clean(decisionCycleEvents); Clean(decisionCycleEvents);
Clean(analysePoiEvents); Clean(analysePoiEvents);
Clean(analyseCycleEvents); Clean(analyseCycleEvents);
Clean(verificationPoiEvents); // Clean(verificationPoiEvents);
Clean(verificationCycleEvents); // Clean(verificationCycleEvents);
Clean(consolidationPoiEvents); Clean(consolidationPoiEvents);
Clean(consolidationCycleEvents); Clean(consolidationCycleEvents);
Clean(visionPoiEvents); Clean(visionPoiEvents);
@@ -1927,19 +1906,19 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
decisionPBar.Clean(); decisionPBar.Clean();
decisionState.Clean(); decisionState.Clean();
visionConditions.Clean(); visionConditions.Clean();
visionXConditions.Clean(); // visionXConditions.Clean();
verificationState.Clean(); // verificationState.Clean();
// triggerConditions.Clean(); // triggerConditions.Clean();
analyseConditions.Clean(); analyseConditions.Clean();
consolidationState.Clean(); consolidationState.Clean();
// triggerXConditions.Clean(); // triggerXConditions.Clean();
analyseXConditions.Clean(); // analyseXConditions.Clean();
decisionConditions.Clean(); decisionConditions.Clean();
decisionXConditions.Clean(); // decisionXConditions.Clean();
verificationConditions.Clean(); // verificationConditions.Clean();
verificationXConditions.Clean(); // verificationXConditions.Clean();
consolidationConditions.Clean(); consolidationConditions.Clean();
consolidationXConditions.Clean(); // consolidationXConditions.Clean();
// //
return result; return result;
@@ -1957,8 +1936,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
Clean(decisionCycleEvents); Clean(decisionCycleEvents);
Clean(analysePoiEvents); Clean(analysePoiEvents);
Clean(analyseCycleEvents); Clean(analyseCycleEvents);
Clean(verificationPoiEvents); // Clean(verificationPoiEvents);
Clean(verificationCycleEvents); // Clean(verificationCycleEvents);
Clean(consolidationPoiEvents); Clean(consolidationPoiEvents);
Clean(consolidationCycleEvents); Clean(consolidationCycleEvents);
Clean(visionPoiEvents); Clean(visionPoiEvents);
@@ -1973,19 +1952,19 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
decisionPBar.Clean(); decisionPBar.Clean();
decisionState.Clean(); decisionState.Clean();
visionConditions.Clean(); visionConditions.Clean();
visionXConditions.Clean(); // visionXConditions.Clean();
verificationState.Clean(); // verificationState.Clean();
// triggerConditions.Clean(); // triggerConditions.Clean();
analyseConditions.Clean(); analyseConditions.Clean();
consolidationState.Clean(); consolidationState.Clean();
// triggerXConditions.Clean(); // triggerXConditions.Clean();
analyseXConditions.Clean(); // analyseXConditions.Clean();
decisionConditions.Clean(); decisionConditions.Clean();
decisionXConditions.Clean(); // decisionXConditions.Clean();
verificationConditions.Clean(); // verificationConditions.Clean();
verificationXConditions.Clean(); // verificationXConditions.Clean();
consolidationConditions.Clean(); consolidationConditions.Clean();
consolidationXConditions.Clean(); // consolidationXConditions.Clean();
// //
return result; return result;
@@ -2202,8 +2181,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
Clean(decisionCycleEvents); Clean(decisionCycleEvents);
Clean(analysePoiEvents); Clean(analysePoiEvents);
Clean(analyseCycleEvents); Clean(analyseCycleEvents);
Clean(verificationPoiEvents); // Clean(verificationPoiEvents);
Clean(verificationCycleEvents); // Clean(verificationCycleEvents);
Clean(consolidationPoiEvents); Clean(consolidationPoiEvents);
Clean(consolidationCycleEvents); Clean(consolidationCycleEvents);
Clean(visionPoiEvents); Clean(visionPoiEvents);
@@ -2218,19 +2197,19 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
decisionPBar.Clean(); decisionPBar.Clean();
decisionState.Clean(); decisionState.Clean();
visionConditions.Clean(); visionConditions.Clean();
visionXConditions.Clean(); // visionXConditions.Clean();
verificationState.Clean(); // verificationState.Clean();
// triggerConditions.Clean(); // triggerConditions.Clean();
analyseConditions.Clean(); analyseConditions.Clean();
consolidationState.Clean(); consolidationState.Clean();
// triggerXConditions.Clean(); // triggerXConditions.Clean();
analyseXConditions.Clean(); // analyseXConditions.Clean();
decisionConditions.Clean(); decisionConditions.Clean();
decisionXConditions.Clean(); // decisionXConditions.Clean();
verificationConditions.Clean(); // verificationConditions.Clean();
verificationXConditions.Clean(); // verificationXConditions.Clean();
consolidationConditions.Clean(); consolidationConditions.Clean();
consolidationXConditions.Clean(); // consolidationXConditions.Clean();
// //
result = false; result = false;
@@ -2260,8 +2239,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
Clean(decisionCycleEvents); Clean(decisionCycleEvents);
Clean(analysePoiEvents); Clean(analysePoiEvents);
Clean(analyseCycleEvents); Clean(analyseCycleEvents);
Clean(verificationPoiEvents); // Clean(verificationPoiEvents);
Clean(verificationCycleEvents); // Clean(verificationCycleEvents);
Clean(consolidationPoiEvents); Clean(consolidationPoiEvents);
Clean(consolidationCycleEvents); Clean(consolidationCycleEvents);
Clean(visionPoiEvents); Clean(visionPoiEvents);
@@ -2276,19 +2255,19 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
decisionPBar.Clean(); decisionPBar.Clean();
decisionState.Clean(); decisionState.Clean();
visionConditions.Clean(); visionConditions.Clean();
visionXConditions.Clean(); // visionXConditions.Clean();
verificationState.Clean(); // verificationState.Clean();
// triggerConditions.Clean(); // triggerConditions.Clean();
analyseConditions.Clean(); analyseConditions.Clean();
consolidationState.Clean(); consolidationState.Clean();
// triggerXConditions.Clean(); // triggerXConditions.Clean();
analyseXConditions.Clean(); // analyseXConditions.Clean();
decisionConditions.Clean(); decisionConditions.Clean();
decisionXConditions.Clean(); // decisionXConditions.Clean();
verificationConditions.Clean(); // verificationConditions.Clean();
verificationXConditions.Clean(); // verificationXConditions.Clean();
consolidationConditions.Clean(); consolidationConditions.Clean();
consolidationXConditions.Clean(); // consolidationXConditions.Clean();
// //
RemoveX121SMCXSupDemOBSDraws(); RemoveX121SMCXSupDemOBSDraws();
@@ -2446,8 +2425,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
Clean(decisionCycleEvents); Clean(decisionCycleEvents);
Clean(analysePoiEvents); Clean(analysePoiEvents);
Clean(analyseCycleEvents); Clean(analyseCycleEvents);
Clean(verificationPoiEvents); // Clean(verificationPoiEvents);
Clean(verificationCycleEvents); // Clean(verificationCycleEvents);
Clean(consolidationPoiEvents); Clean(consolidationPoiEvents);
Clean(consolidationCycleEvents); Clean(consolidationCycleEvents);
Clean(visionPoiEvents); Clean(visionPoiEvents);
@@ -2462,19 +2441,19 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
decisionPBar.Clean(); decisionPBar.Clean();
decisionState.Clean(); decisionState.Clean();
visionConditions.Clean(); visionConditions.Clean();
visionXConditions.Clean(); // visionXConditions.Clean();
verificationState.Clean(); // verificationState.Clean();
// triggerConditions.Clean(); // triggerConditions.Clean();
analyseConditions.Clean(); analyseConditions.Clean();
consolidationState.Clean(); consolidationState.Clean();
// triggerXConditions.Clean(); // triggerXConditions.Clean();
analyseXConditions.Clean(); // analyseXConditions.Clean();
decisionConditions.Clean(); decisionConditions.Clean();
decisionXConditions.Clean(); // decisionXConditions.Clean();
verificationConditions.Clean(); // verificationConditions.Clean();
verificationXConditions.Clean(); // verificationXConditions.Clean();
consolidationConditions.Clean(); consolidationConditions.Clean();
consolidationXConditions.Clean(); // consolidationXConditions.Clean();
// //
RemoveX121SMCXSupDemOBSDraws(); RemoveX121SMCXSupDemOBSDraws();
@@ -2518,6 +2497,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
// //
bool hasOBFVGs = conditions.HasOBFVGs(); bool hasOBFVGs = conditions.HasOBFVGs();
int obFVGsCount = conditions.CountOBFVGs(); int obFVGsCount = conditions.CountOBFVGs();
//
if (hasOBs && if (hasOBs &&
hasFVGs && hasFVGs &&
!hasOBFVGs) !hasOBFVGs)
@@ -2531,8 +2512,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
// //
// Check Ob Index inside OB FVGS ... // Check Ob Index inside OB FVGS ...
bool isOBFVGExists = false; bool isOBFVGExists = false;
bool hasOBFVGs = conditions.HasOBFVGs(); hasOBFVGs = conditions.HasOBFVGs();
int obFVGsCount = conditions.CountOBFVGs(); obFVGsCount = conditions.CountOBFVGs();
if (hasOBFVGs) if (hasOBFVGs)
{ {
// //
@@ -2564,6 +2545,13 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
// //
XCFVG *jFVG = fvgs[j]; XCFVG *jFVG = fvgs[j];
//
ENUM_TIMEFRAMES jPeriod = jFVG.GetPeriod();
if (jPeriod != PERIOD_M15)
{
Print(ToString(jPeriod));
}
// //
XOBFVG iOBFVG; XOBFVG iOBFVG;
@@ -2619,8 +2607,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
Clean(decisionCycleEvents); Clean(decisionCycleEvents);
Clean(analysePoiEvents); Clean(analysePoiEvents);
Clean(analyseCycleEvents); Clean(analyseCycleEvents);
Clean(verificationPoiEvents); // Clean(verificationPoiEvents);
Clean(verificationCycleEvents); // Clean(verificationCycleEvents);
Clean(consolidationPoiEvents); Clean(consolidationPoiEvents);
Clean(consolidationCycleEvents); Clean(consolidationCycleEvents);
Clean(visionPoiEvents); Clean(visionPoiEvents);
@@ -2635,19 +2623,19 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
decisionPBar.Clean(); decisionPBar.Clean();
decisionState.Clean(); decisionState.Clean();
visionConditions.Clean(); visionConditions.Clean();
visionXConditions.Clean(); // visionXConditions.Clean();
verificationState.Clean(); // verificationState.Clean();
// triggerConditions.Clean(); // triggerConditions.Clean();
analyseConditions.Clean(); analyseConditions.Clean();
consolidationState.Clean(); consolidationState.Clean();
// triggerXConditions.Clean(); // triggerXConditions.Clean();
analyseXConditions.Clean(); // analyseXConditions.Clean();
decisionConditions.Clean(); decisionConditions.Clean();
decisionXConditions.Clean(); // decisionXConditions.Clean();
verificationConditions.Clean(); // verificationConditions.Clean();
verificationXConditions.Clean(); // verificationXConditions.Clean();
consolidationConditions.Clean(); consolidationConditions.Clean();
consolidationXConditions.Clean(); // consolidationXConditions.Clean();
// //
RemoveX121SMCXSupDemOBSDraws(); RemoveX121SMCXSupDemOBSDraws();
@@ -2734,8 +2722,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
Clean(decisionCycleEvents); Clean(decisionCycleEvents);
Clean(analysePoiEvents); Clean(analysePoiEvents);
Clean(analyseCycleEvents); Clean(analyseCycleEvents);
Clean(verificationPoiEvents); // Clean(verificationPoiEvents);
Clean(verificationCycleEvents); // Clean(verificationCycleEvents);
Clean(consolidationPoiEvents); Clean(consolidationPoiEvents);
Clean(consolidationCycleEvents); Clean(consolidationCycleEvents);
Clean(visionPoiEvents); Clean(visionPoiEvents);
@@ -2750,19 +2738,19 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
decisionPBar.Clean(); decisionPBar.Clean();
decisionState.Clean(); decisionState.Clean();
visionConditions.Clean(); visionConditions.Clean();
visionXConditions.Clean(); // visionXConditions.Clean();
verificationState.Clean(); // verificationState.Clean();
// triggerConditions.Clean(); // triggerConditions.Clean();
analyseConditions.Clean(); analyseConditions.Clean();
consolidationState.Clean(); consolidationState.Clean();
// triggerXConditions.Clean(); // triggerXConditions.Clean();
analyseXConditions.Clean(); // analyseXConditions.Clean();
decisionConditions.Clean(); decisionConditions.Clean();
decisionXConditions.Clean(); // decisionXConditions.Clean();
verificationConditions.Clean(); // verificationConditions.Clean();
verificationXConditions.Clean(); // verificationXConditions.Clean();
consolidationConditions.Clean(); consolidationConditions.Clean();
consolidationXConditions.Clean(); // consolidationXConditions.Clean();
// //
RemoveX121SMCXSupDemOBSDraws(); RemoveX121SMCXSupDemOBSDraws();
@@ -2782,8 +2770,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
Clean(decisionCycleEvents); Clean(decisionCycleEvents);
Clean(analysePoiEvents); Clean(analysePoiEvents);
Clean(analyseCycleEvents); Clean(analyseCycleEvents);
Clean(verificationPoiEvents); // Clean(verificationPoiEvents);
Clean(verificationCycleEvents); // Clean(verificationCycleEvents);
Clean(consolidationPoiEvents); Clean(consolidationPoiEvents);
Clean(consolidationCycleEvents); Clean(consolidationCycleEvents);
Clean(visionPoiEvents); Clean(visionPoiEvents);
@@ -2795,19 +2783,19 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
analyseState.Clean(); analyseState.Clean();
decisionState.Clean(); decisionState.Clean();
visionConditions.Clean(); visionConditions.Clean();
visionXConditions.Clean(); // visionXConditions.Clean();
verificationState.Clean(); // verificationState.Clean();
// triggerConditions.Clean(); // triggerConditions.Clean();
analyseConditions.Clean(); analyseConditions.Clean();
consolidationState.Clean(); consolidationState.Clean();
// triggerXConditions.Clean(); // triggerXConditions.Clean();
analyseXConditions.Clean(); // analyseXConditions.Clean();
decisionConditions.Clean(); decisionConditions.Clean();
decisionXConditions.Clean(); // decisionXConditions.Clean();
verificationConditions.Clean(); // verificationConditions.Clean();
verificationXConditions.Clean(); // verificationXConditions.Clean();
consolidationConditions.Clean(); consolidationConditions.Clean();
consolidationXConditions.Clean(); // consolidationXConditions.Clean();
// //
// Now We Have to Wait for Price Inside Box ... // Now We Have to Wait for Price Inside Box ...
@@ -3019,8 +3007,8 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
Clean(decisionCycleEvents); Clean(decisionCycleEvents);
Clean(analysePoiEvents); Clean(analysePoiEvents);
Clean(analyseCycleEvents); Clean(analyseCycleEvents);
Clean(verificationPoiEvents); // Clean(verificationPoiEvents);
Clean(verificationCycleEvents); // Clean(verificationCycleEvents);
Clean(consolidationPoiEvents); Clean(consolidationPoiEvents);
Clean(consolidationCycleEvents); Clean(consolidationCycleEvents);
Clean(visionPoiEvents); Clean(visionPoiEvents);
@@ -3035,19 +3023,19 @@ bool DetectX121SMCXSupDemOBSSignalSetup(
decisionPBar.Clean(); decisionPBar.Clean();
decisionState.Clean(); decisionState.Clean();
visionConditions.Clean(); visionConditions.Clean();
visionXConditions.Clean(); // visionXConditions.Clean();
verificationState.Clean(); // verificationState.Clean();
// triggerConditions.Clean(); // triggerConditions.Clean();
analyseConditions.Clean(); analyseConditions.Clean();
consolidationState.Clean(); consolidationState.Clean();
// triggerXConditions.Clean(); // triggerXConditions.Clean();
analyseXConditions.Clean(); // analyseXConditions.Clean();
decisionConditions.Clean(); decisionConditions.Clean();
decisionXConditions.Clean(); // decisionXConditions.Clean();
verificationConditions.Clean(); // verificationConditions.Clean();
verificationXConditions.Clean(); // verificationXConditions.Clean();
consolidationConditions.Clean(); consolidationConditions.Clean();
consolidationXConditions.Clean(); // consolidationXConditions.Clean();
// //
// Summarize Conditions ... // Summarize Conditions ...
@@ -3164,7 +3152,7 @@ bool DetectX121SMCXSupDemOBSSignalTrigger(
// XC121SMCCycleHelper *triggerCycleHelper, // XC121SMCCycleHelper *triggerCycleHelper,
XC121SMCCycleHelper *decisionCycleHelper, XC121SMCCycleHelper *decisionCycleHelper,
XC121SMCCycleHelper *analyseCycleHelper, XC121SMCCycleHelper *analyseCycleHelper,
XC121SMCCycleHelper *verificationCycleHelper, // XC121SMCCycleHelper *verificationCycleHelper,
XC121SMCCycleHelper *consolidationCycleHelper, XC121SMCCycleHelper *consolidationCycleHelper,
XC121SMCCycleHelper *visionCycleHelper, XC121SMCCycleHelper *visionCycleHelper,
// //
@@ -3462,7 +3450,7 @@ bool DetectX121SMCXSupDemOBSGuards(
// XC121SMCCycleHelper *triggerCycleHelper, // XC121SMCCycleHelper *triggerCycleHelper,
XC121SMCCycleHelper *decisionCycleHelper, XC121SMCCycleHelper *decisionCycleHelper,
XC121SMCCycleHelper *analyseCycleHelper, XC121SMCCycleHelper *analyseCycleHelper,
XC121SMCCycleHelper *verificationCycleHelper, // XC121SMCCycleHelper *verificationCycleHelper,
XC121SMCCycleHelper *consolidationCycleHelper, XC121SMCCycleHelper *consolidationCycleHelper,
XC121SMCCycleHelper *visionCycleHelper // XC121SMCCycleHelper *visionCycleHelper //
) )
+79 -59
View File
@@ -108,7 +108,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
// ZeroMemory(mTriggerCycleHelper); // ZeroMemory(mTriggerCycleHelper);
ZeroMemory(mDecisionCycleHelper); ZeroMemory(mDecisionCycleHelper);
ZeroMemory(mAnalyseCycleHelper); ZeroMemory(mAnalyseCycleHelper);
ZeroMemory(mVerificationCycleHelper); // ZeroMemory(mVerificationCycleHelper);
ZeroMemory(mConsolidationCycleHelper); ZeroMemory(mConsolidationCycleHelper);
ZeroMemory(mVisionCycleHelper); ZeroMemory(mVisionCycleHelper);
@@ -116,7 +116,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
// delete mTriggerCycleHelper; // delete mTriggerCycleHelper;
delete mDecisionCycleHelper; delete mDecisionCycleHelper;
delete mAnalyseCycleHelper; delete mAnalyseCycleHelper;
delete mVerificationCycleHelper; // delete mVerificationCycleHelper;
delete mConsolidationCycleHelper; delete mConsolidationCycleHelper;
delete mVisionCycleHelper; delete mVisionCycleHelper;
@@ -357,7 +357,6 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
signal.partialCloseOnTPLevel = 0; signal.partialCloseOnTPLevel = 0;
signal.partialCloseMultiplier = 0; signal.partialCloseMultiplier = 0;
signal.trailSLStartOnReachTPLevel = 3; signal.trailSLStartOnReachTPLevel = 3;
} }
} }
@@ -403,7 +402,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
// mTriggerCycleHelper, // mTriggerCycleHelper,
mDecisionCycleHelper, mDecisionCycleHelper,
mAnalyseCycleHelper, mAnalyseCycleHelper,
mVerificationCycleHelper, // mVerificationCycleHelper,
mConsolidationCycleHelper, mConsolidationCycleHelper,
mVisionCycleHelper // mVisionCycleHelper //
); );
@@ -447,7 +446,6 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
// //
// Signalling Functions ... // Signalling Functions ...
// //
// XSupDemOBS Signal ... // XSupDemOBS Signal ...
bool DetectXSupDemOBSSignal( bool DetectXSupDemOBSSignal(
@@ -457,6 +455,21 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
// //
bool result = false; bool result = false;
//
// Validate Cycle Helpers ...
result =
//
mVisionCycleHelper != NULL &&
mAnalyseCycleHelper != NULL &&
mDecisionCycleHelper != NULL &&
mConsolidationCycleHelper != NULL
//
;
if (!result)
{
return result;
}
// //
bool isBullish = false; bool isBullish = false;
bool isBearish = false; bool isBearish = false;
@@ -531,10 +544,8 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
symbol, symbol,
period, period,
mX121SMCXSupDemOBSConditions, mX121SMCXSupDemOBSConditions,
// mTriggerCycleHelper,
mDecisionCycleHelper, mDecisionCycleHelper,
mAnalyseCycleHelper, mAnalyseCycleHelper,
mVerificationCycleHelper,
mConsolidationCycleHelper, mConsolidationCycleHelper,
mVisionCycleHelper // mVisionCycleHelper //
); );
@@ -591,7 +602,7 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
// mTriggerCycleHelper, // mTriggerCycleHelper,
mDecisionCycleHelper, mDecisionCycleHelper,
mAnalyseCycleHelper, mAnalyseCycleHelper,
mVerificationCycleHelper, // mVerificationCycleHelper,
mConsolidationCycleHelper, mConsolidationCycleHelper,
mVisionCycleHelper // mVisionCycleHelper //
); );
@@ -726,9 +737,6 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
// //
x121Inputs.showRSI = false; x121Inputs.showRSI = false;
//
bool isInited = false;
// //
// XPV ... // XPV ...
@@ -749,6 +757,15 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
x121Inputs.xatrInputs.atrMultiplier = 1.5; x121Inputs.xatrInputs.atrMultiplier = 1.5;
x121Inputs.xatrInputs.atrSmoothingMode = X_MA_MODE_EMA; x121Inputs.xatrInputs.atrSmoothingMode = X_MA_MODE_EMA;
//
// XCC ...
x121Inputs.xccInputs.showCandles = false; // false;
//
// XCT ...
x121Inputs.xctInputs.clr = clrBlueViolet;
x121Inputs.xctInputs.showCandleTime = false; // false;
// //
// XPV ... // XPV ...
x121Inputs.xpvInputs.showSar = showAll || false; x121Inputs.xpvInputs.showSar = showAll || false;
@@ -796,6 +813,9 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
// //
// Initialize Cycle Helpers ... // Initialize Cycle Helpers ...
//
bool isInited = false;
// //
int requiredPOIS = MaxAllowedRequiredPOIs(); int requiredPOIS = MaxAllowedRequiredPOIs();
@@ -970,62 +990,62 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
mAnalyseCycleHelper.mPOIDrawer.BearishFVGColor(bearishColor); mAnalyseCycleHelper.mPOIDrawer.BearishFVGColor(bearishColor);
} }
// // //
// Verification Cycle ... // // Verification Cycle ...
mVerificationCycleHelper = new XC121SMCCycleHelper(); // mVerificationCycleHelper = new XC121SMCCycleHelper();
isInited = mVerificationCycleHelper.Init( // isInited = mVerificationCycleHelper.Init(
symbol, // symbol,
PERIOD_M30, // PERIOD_M30,
x121Inputs, // // x121Inputs,
requiredPOIS // // requiredPOIS //
); // );
if (isInited) // if (isInited)
{ // {
// // //
// Configure POI Drawer ... // // Configure POI Drawer ...
color bullishColor = clrOliveDrab; // color bullishColor = clrOliveDrab;
color bearishColor = clrSteelBlue; // color bearishColor = clrSteelBlue;
// // //
// Bars ... // // Bars ...
mVerificationCycleHelper.mPOIDrawer.BarBullishColor(bullishColor); // mVerificationCycleHelper.mPOIDrawer.BarBullishColor(bullishColor);
mVerificationCycleHelper.mPOIDrawer.BarBearishColor(bearishColor); // mVerificationCycleHelper.mPOIDrawer.BarBearishColor(bearishColor);
// // //
// Swings ... // // Swings ...
mVerificationCycleHelper.mPOIDrawer.SwingLowColor(bullishColor); // mVerificationCycleHelper.mPOIDrawer.SwingLowColor(bullishColor);
mVerificationCycleHelper.mPOIDrawer.SwingHighColor(bearishColor); // mVerificationCycleHelper.mPOIDrawer.SwingHighColor(bearishColor);
// // //
// Momentum ... // // Momentum ...
mVerificationCycleHelper.mPOIDrawer.BullishMomentumBarColor(bullishColor); // mVerificationCycleHelper.mPOIDrawer.BullishMomentumBarColor(bullishColor);
mVerificationCycleHelper.mPOIDrawer.BearishMomentumBarColor(bearishColor); // mVerificationCycleHelper.mPOIDrawer.BearishMomentumBarColor(bearishColor);
// // //
// Rejection ... // // Rejection ...
mVerificationCycleHelper.mPOIDrawer.BullishRejectionBarColor(bullishColor); // mVerificationCycleHelper.mPOIDrawer.BullishRejectionBarColor(bullishColor);
mVerificationCycleHelper.mPOIDrawer.BearishRejectionBarColor(bearishColor); // mVerificationCycleHelper.mPOIDrawer.BearishRejectionBarColor(bearishColor);
// // //
// Support and Resistance ... // // Support and Resistance ...
mVerificationCycleHelper.mPOIDrawer.SupportZoneColor(bullishColor); // mVerificationCycleHelper.mPOIDrawer.SupportZoneColor(bullishColor);
mVerificationCycleHelper.mPOIDrawer.ResistanceZoneColor(bearishColor); // mVerificationCycleHelper.mPOIDrawer.ResistanceZoneColor(bearishColor);
// // //
// Demand and Supply ... // // Demand and Supply ...
mVerificationCycleHelper.mPOIDrawer.DemandZoneColor(bullishColor); // mVerificationCycleHelper.mPOIDrawer.DemandZoneColor(bullishColor);
mVerificationCycleHelper.mPOIDrawer.SupplyZoneColor(bearishColor); // mVerificationCycleHelper.mPOIDrawer.SupplyZoneColor(bearishColor);
// // //
// Order Blocks ... // // Order Blocks ...
mVerificationCycleHelper.mPOIDrawer.BullishOrderBlockColor(bullishColor); // mVerificationCycleHelper.mPOIDrawer.BullishOrderBlockColor(bullishColor);
mVerificationCycleHelper.mPOIDrawer.BearishOrderBlockColor(bearishColor); // mVerificationCycleHelper.mPOIDrawer.BearishOrderBlockColor(bearishColor);
// // //
// Fair Value Gaps ... // // Fair Value Gaps ...
mVerificationCycleHelper.mPOIDrawer.BullishFVGColor(bullishColor); // mVerificationCycleHelper.mPOIDrawer.BullishFVGColor(bullishColor);
mVerificationCycleHelper.mPOIDrawer.BearishFVGColor(bearishColor); // mVerificationCycleHelper.mPOIDrawer.BearishFVGColor(bearishColor);
} // }
// //
// Consolidation Cycle ... // Consolidation Cycle ...