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