add hull and sslc into x121 market ...

This commit is contained in:
2024-06-04 19:41:18 +03:30
parent 0b3587431f
commit ae4c98c601
7 changed files with 245 additions and 52 deletions
+28 -28
View File
@@ -57,20 +57,6 @@
"references": [], "references": [],
"title": "add XHULL/XSSLC/XAMA/XTM Indicators also to X121MarketCycle Calss" "title": "add XHULL/XSSLC/XAMA/XTM Indicators also to X121MarketCycle Calss"
}, },
{
"assignedTo": {
"name": "Hadi Khazaee Asl"
},
"category": "X121 Provider",
"creation_time": "2024-05-30T21:40:26.010Z",
"description": {
"content": "- [x] implement a Signaller Struct to Describe a Signaller state;\n- [] use it in X121ProviderDescriptor;\n- [] inside X121Provider use this Struct to Handle Signaller's State;",
"mime": "text/markdown"
},
"id": "63",
"references": [],
"title": "Implement a Signaller Struct"
},
{ {
"assignedTo": { "assignedTo": {
"name": "Hadi Khazaee Asl" "name": "Hadi Khazaee Asl"
@@ -85,20 +71,6 @@
"references": [], "references": [],
"title": "make provider and ea classes to instance XSCBaseAlert class" "title": "make provider and ea classes to instance XSCBaseAlert class"
}, },
{
"assignedTo": {
"name": "Hadi Khazaee Asl"
},
"category": "X121 Provider",
"creation_time": "2024-05-30T21:41:50.930Z",
"description": {
"content": "Each Market must have their own Pivot Points;\n\n- [] Remove Current Support and Resistance;\n- [] add Support and Resistance and also Score Generating in each Market;\n- [] create a General Common Function to Access Support and Resistances;",
"mime": "text/markdown"
},
"id": "64",
"references": [],
"title": "Move Support and Resistance Pivots Finders inside X121Market Class"
},
{ {
"assignedTo": { "assignedTo": {
"name": "Hadi Khazaee Asl" "name": "Hadi Khazaee Asl"
@@ -148,6 +120,34 @@
"id": "68", "id": "68",
"references": [], "references": [],
"title": "fix cc and ct indicator issues ..." "title": "fix cc and ct indicator issues ..."
},
{
"assignedTo": {
"name": "Hadi Khazaee Asl"
},
"category": "X121 Provider",
"creation_time": "2024-05-30T21:40:26.010Z",
"description": {
"content": "- [x] implement a Signaller Struct to Describe a Signaller state;\n- [x] use it in X121ProviderDescriptor;\n- [x] inside X121Provider use this Struct to Handle Signaller's State;",
"mime": "text/markdown"
},
"id": "63",
"references": [],
"title": "Implement a Signaller Struct"
},
{
"assignedTo": {
"name": "Hadi Khazaee Asl"
},
"category": "X121 Provider",
"creation_time": "2024-05-30T21:41:50.930Z",
"description": {
"content": "Each Market must have their own Pivot Points;\n\n- [x] Remove Current Support and Resistance;\n- [x] add Support and Resistance and also Score Generating in each Market;\n- [x] create a General Common Function to Access Support and Resistances;",
"mime": "text/markdown"
},
"id": "64",
"references": [],
"title": "Move Support and Resistance Pivots Finders inside X121Market Class"
} }
], ],
"done": [ "done": [
+48 -10
View File
@@ -27,15 +27,17 @@
#include "../Helpers/x-saherelm.xcc.helper.mq5" #include "../Helpers/x-saherelm.xcc.helper.mq5"
#include "../Helpers/x-saherelm.xct.helper.mq5" #include "../Helpers/x-saherelm.xct.helper.mq5"
#include "../Helpers/x-saherelm.xmc.helper.mq5" #include "../Helpers/x-saherelm.xmc.helper.mq5"
#include "../Helpers/x-saherelm.xdon.helper.mq5"
#include "../Helpers/x-saherelm.xzg.helper.mq5" #include "../Helpers/x-saherelm.xzg.helper.mq5"
#include "../Helpers/x-saherelm.xpv.helper.mq5" #include "../Helpers/x-saherelm.xpv.helper.mq5"
#include "../Helpers/x-saherelm.xtm.helper.mq5"
#include "../Helpers/x-saherelm.xtd.helper.mq5"
#include "../Helpers/x-saherelm.xdon.helper.mq5"
#include "../Helpers/x-saherelm.xstr.helper.mq5" #include "../Helpers/x-saherelm.xstr.helper.mq5"
#include "../Helpers/x-saherelm.xche.helper.mq5" #include "../Helpers/x-saherelm.xche.helper.mq5"
#include "../Helpers/x-saherelm.xosc.helper.mq5" #include "../Helpers/x-saherelm.xosc.helper.mq5"
#include "../Helpers/x-saherelm.xtm.helper.mq5"
#include "../Helpers/x-saherelm.xama.helper.mq5" #include "../Helpers/x-saherelm.xama.helper.mq5"
#include "../Helpers/x-saherelm.xtd.helper.mq5" #include "../Helpers/x-saherelm.xhull.helper.mq5"
#include "../Helpers/x-saherelm.xsslc.helper.mq5"
// //
#include "../Classes/x-saherelm.xprovider.class.mq5" #include "../Classes/x-saherelm.xprovider.class.mq5"
@@ -99,6 +101,8 @@ public:
XSTRInputs strInputs; XSTRInputs strInputs;
XDONInputs donInputs; XDONInputs donInputs;
XOSCInputs oscInputs; XOSCInputs oscInputs;
XHULLInputs hullInputs;
XSSLCInputs sslcInputs;
// //
X121MCycleInputs cMarketInputs; // Curent Market Inputs X121MCycleInputs cMarketInputs; // Curent Market Inputs
@@ -175,8 +179,14 @@ public:
{ {
ichInputs.Default(); ichInputs.Default();
} }
if (!hullInputs.IsValid())
// {
hullInputs.Default();
}
if (!sslcInputs.IsValid())
{
sslcInputs.Default();
}
if (!tdInputs.IsValid()) if (!tdInputs.IsValid())
{ {
tdInputs.Default(); tdInputs.Default();
@@ -198,6 +208,8 @@ public:
cMarketInputs.cheInputs = this.cheInputs; cMarketInputs.cheInputs = this.cheInputs;
cMarketInputs.ichInputs = this.ichInputs; cMarketInputs.ichInputs = this.ichInputs;
cMarketInputs.donInputs = this.donInputs; cMarketInputs.donInputs = this.donInputs;
cMarketInputs.hullInputs = this.hullInputs;
cMarketInputs.sslcInputs = this.sslcInputs;
result = cMarketInputs.Init( result = cMarketInputs.Init(
this.symbol, this.symbol,
this.period, this.period,
@@ -225,6 +237,8 @@ public:
sMarketInputs.cheInputs = this.cheInputs; sMarketInputs.cheInputs = this.cheInputs;
sMarketInputs.ichInputs = this.ichInputs; sMarketInputs.ichInputs = this.ichInputs;
sMarketInputs.donInputs = this.donInputs; sMarketInputs.donInputs = this.donInputs;
sMarketInputs.hullInputs = this.hullInputs;
sMarketInputs.sslcInputs = this.sslcInputs;
result = sMarketInputs.Init( result = sMarketInputs.Init(
this.symbol, this.symbol,
this.period, this.period,
@@ -252,6 +266,8 @@ public:
mMarketInputs.cheInputs = this.cheInputs; mMarketInputs.cheInputs = this.cheInputs;
mMarketInputs.ichInputs = this.ichInputs; mMarketInputs.ichInputs = this.ichInputs;
mMarketInputs.donInputs = this.donInputs; mMarketInputs.donInputs = this.donInputs;
mMarketInputs.hullInputs = this.hullInputs;
mMarketInputs.sslcInputs = this.sslcInputs;
result = mMarketInputs.Init( result = mMarketInputs.Init(
this.symbol, this.symbol,
this.period, this.period,
@@ -279,6 +295,8 @@ public:
lMarketInputs.cheInputs = this.cheInputs; lMarketInputs.cheInputs = this.cheInputs;
lMarketInputs.ichInputs = this.ichInputs; lMarketInputs.ichInputs = this.ichInputs;
lMarketInputs.donInputs = this.donInputs; lMarketInputs.donInputs = this.donInputs;
lMarketInputs.hullInputs = this.hullInputs;
lMarketInputs.sslcInputs = this.sslcInputs;
result = lMarketInputs.Init( result = lMarketInputs.Init(
this.symbol, this.symbol,
this.period, this.period,
@@ -306,6 +324,8 @@ public:
hMarketInputs.cheInputs = this.cheInputs; hMarketInputs.cheInputs = this.cheInputs;
hMarketInputs.ichInputs = this.ichInputs; hMarketInputs.ichInputs = this.ichInputs;
hMarketInputs.donInputs = this.donInputs; hMarketInputs.donInputs = this.donInputs;
hMarketInputs.hullInputs = this.hullInputs;
hMarketInputs.sslcInputs = this.sslcInputs;
result = hMarketInputs.Init( result = hMarketInputs.Init(
this.symbol, this.symbol,
this.period, this.period,
@@ -351,13 +371,15 @@ public:
pvInputs.IsValid() && pvInputs.IsValid() &&
mcInputs.IsValid() && mcInputs.IsValid() &&
hkInputs.IsValid() && hkInputs.IsValid() &&
tdInputs.IsValid() &&
mrbInputs.IsValid() && mrbInputs.IsValid() &&
cheInputs.IsValid() && cheInputs.IsValid() &&
strInputs.IsValid() && strInputs.IsValid() &&
donInputs.IsValid() && donInputs.IsValid() &&
oscInputs.IsValid() && oscInputs.IsValid() &&
ichInputs.IsValid() && ichInputs.IsValid() &&
tdInputs.IsValid() && hullInputs.IsValid() &&
sslcInputs.IsValid() &&
// //
cMarketInputs.IsValid() && cMarketInputs.IsValid() &&
sMarketInputs.IsValid() && sMarketInputs.IsValid() &&
@@ -406,14 +428,15 @@ public:
pvInputs.Clean(); pvInputs.Clean();
mcInputs.Clean(); mcInputs.Clean();
hkInputs.Clean(); hkInputs.Clean();
tdInputs.Clean();
mrbInputs.Clean(); mrbInputs.Clean();
cheInputs.Clean(); cheInputs.Clean();
strInputs.Clean(); strInputs.Clean();
donInputs.Clean(); donInputs.Clean();
oscInputs.Clean(); oscInputs.Clean();
ichInputs.Clean(); ichInputs.Clean();
// hullInputs.Clean();
tdInputs.Clean(); sslcInputs.Clean();
// //
cMarketInputs.Clean(); cMarketInputs.Clean();
sMarketInputs.Clean(); sMarketInputs.Clean();
@@ -457,13 +480,15 @@ public:
pvInputs.Default(); pvInputs.Default();
mcInputs.Default(); mcInputs.Default();
hkInputs.Default(); hkInputs.Default();
tdInputs.Default();
mrbInputs.Default(); mrbInputs.Default();
cheInputs.Default(); cheInputs.Default();
strInputs.Default(); strInputs.Default();
donInputs.Default(); donInputs.Default();
oscInputs.Default(); oscInputs.Default();
ichInputs.Default(); ichInputs.Default();
tdInputs.Default(); hullInputs.Default();
sslcInputs.Default();
// //
cMarketInputs.Default(); cMarketInputs.Default();
@@ -487,6 +512,18 @@ public:
result = MathMax(result, ctInputs.Max()); result = MathMax(result, ctInputs.Max());
result = MathMax(result, ccInputs.Max()); result = MathMax(result, ccInputs.Max());
result = MathMax(result, tdInputs.Max()); result = MathMax(result, tdInputs.Max());
result = MathMax(result, zgInputs.Max());
result = MathMax(result, pvInputs.Max());
result = MathMax(result, mcInputs.Max());
result = MathMax(result, hkInputs.Max());
result = MathMax(result, mrbInputs.Max());
result = MathMax(result, cheInputs.Max());
result = MathMax(result, strInputs.Max());
result = MathMax(result, donInputs.Max());
result = MathMax(result, oscInputs.Max());
result = MathMax(result, ichInputs.Max());
result = MathMax(result, hullInputs.Max());
result = MathMax(result, sslcInputs.Max());
// //
return result; return result;
@@ -1292,7 +1329,8 @@ struct X121ProviderDescriptor
// //
// Check Waits Until New Bar ... // Check Waits Until New Bar ...
result = !this.provider.CanIgnoreProcess(); result = !this.provider.CanIgnoreProcess();
if (!result) { if (!result)
{
return result; return result;
} }
+134
View File
@@ -38,6 +38,8 @@
#include "../Helpers/x-saherelm.xosc.helper.mq5" #include "../Helpers/x-saherelm.xosc.helper.mq5"
#include "../Helpers/x-saherelm.xstr.helper.mq5" #include "../Helpers/x-saherelm.xstr.helper.mq5"
#include "../Helpers/x-saherelm.xich.helper.mq5" #include "../Helpers/x-saherelm.xich.helper.mq5"
#include "../Helpers/x-saherelm.xhull.helper.mq5"
#include "../Helpers/x-saherelm.xsslc.helper.mq5"
// //
#include "../Libraries/x-saherelm.xtrade.lib.mq5" #include "../Libraries/x-saherelm.xtrade.lib.mq5"
@@ -176,6 +178,8 @@ public:
XCHEInputs cheInputs; // CHE Inputs ... XCHEInputs cheInputs; // CHE Inputs ...
XICHInputs ichInputs; // ICH Inputs ... XICHInputs ichInputs; // ICH Inputs ...
XDONInputs donInputs; // DON Inputs ... XDONInputs donInputs; // DON Inputs ...
XHULLInputs hullInputs; // HULL Inputs ...
XSSLCInputs sslcInputs; // SSLC Inputs ...
// //
// Constructor ... // Constructor ...
@@ -230,6 +234,8 @@ public:
cheInputs.Default(); cheInputs.Default();
ichInputs.Default(); ichInputs.Default();
donInputs.Default(); donInputs.Default();
hullInputs.Default();
sslcInputs.Default();
} }
// //
@@ -260,6 +266,8 @@ public:
XCHEInputs &mCheInputs, // CHE Inputs XCHEInputs &mCheInputs, // CHE Inputs
XICHInputs &mIchInputs, // ICH Inputs ... XICHInputs &mIchInputs, // ICH Inputs ...
XDONInputs &mDonInputs, // DON Inputs ... XDONInputs &mDonInputs, // DON Inputs ...
XHULLInputs &mHullInputs, // HULL Inputs ...
XSSLCInputs &mSslcInputs, // SSLC Inputs ...
int mHostBarIndex = 0, // Specified Host Period Bar Index int mHostBarIndex = 0, // Specified Host Period Bar Index
string mPrefix = "" // Prefix string mPrefix = "" // Prefix
) )
@@ -293,6 +301,8 @@ public:
cheInputs = mCheInputs; cheInputs = mCheInputs;
ichInputs = mIchInputs; ichInputs = mIchInputs;
donInputs = mDonInputs; donInputs = mDonInputs;
hullInputs = mHullInputs;
sslcInputs = mSslcInputs;
// //
result = IsValid(); result = IsValid();
@@ -324,6 +334,8 @@ public:
cheInputs.Clean(); cheInputs.Clean();
ichInputs.Clean(); ichInputs.Clean();
donInputs.Clean(); donInputs.Clean();
hullInputs.Clean();
sslcInputs.Clean();
// //
cBarDrawSpecs.Clean(); cBarDrawSpecs.Clean();
@@ -355,6 +367,8 @@ public:
cheInputs.Default(); cheInputs.Default();
ichInputs.Default(); ichInputs.Default();
donInputs.Default(); donInputs.Default();
hullInputs.Default();
sslcInputs.Default();
// //
drawLabels = false; drawLabels = false;
@@ -455,6 +469,20 @@ public:
return result; return result;
} }
//
result = hullInputs.IsValid();
if (!result)
{
return result;
}
//
result = sslcInputs.IsValid();
if (!result)
{
return result;
}
// //
return result; return result;
} }
@@ -481,6 +509,8 @@ public:
result = MathMax(result, cheInputs.Max()); result = MathMax(result, cheInputs.Max());
result = MathMax(result, ichInputs.Max()); result = MathMax(result, ichInputs.Max());
result = MathMax(result, donInputs.Max()); result = MathMax(result, donInputs.Max());
result = MathMax(result, hullInputs.Max());
result = MathMax(result, sslcInputs.Max());
// //
return result; return result;
@@ -554,6 +584,16 @@ public:
double zigzags[]; double zigzags[];
double zigzagPVs[]; double zigzagPVs[];
//
// XHULL ...
double hullUps[];
double hullDowns[];
//
// XSSLC ...
double sslcUps[];
double sslcDowns[];
// //
// XMRB ... // XMRB ...
@@ -645,6 +685,12 @@ public:
bool isZigZagInPeak; bool isZigZagInPeak;
bool isZigZagInVale; bool isZigZagInVale;
//
// XHULL ...
//
// XSSLC ...
// //
// XPV ... // XPV ...
@@ -986,6 +1032,10 @@ public:
Clean(tdBullishs); Clean(tdBullishs);
Clean(tdBearishs); Clean(tdBearishs);
Clean(tdSignals); Clean(tdSignals);
Clean(hullUps);
Clean(hullDowns);
Clean(sslcUps);
Clean(sslcDowns);
// //
// Buffers ... // Buffers ...
@@ -1067,12 +1117,22 @@ public:
ArraySetAsSeries(tdBullishs, true); ArraySetAsSeries(tdBullishs, true);
ArraySetAsSeries(tdBearishs, true); ArraySetAsSeries(tdBearishs, true);
ArraySetAsSeries(tdSignals, true); ArraySetAsSeries(tdSignals, true);
ArraySetAsSeries(hullUps, true);
ArraySetAsSeries(hullDowns, true);
ArraySetAsSeries(sslcUps, true);
ArraySetAsSeries(sslcDowns, true);
// //
// XZG ... // XZG ...
isZigZagInPeak = false; isZigZagInPeak = false;
isZigZagInVale = false; isZigZagInVale = false;
//
// XHULL ...
//
// XSSLC ...
// //
// XPV ... // XPV ...
@@ -1358,6 +1418,12 @@ public:
bearScore++; bearScore++;
} }
//
// XHULL ...
//
// XSSLC ...
// //
// XPV ... // XPV ...
@@ -2633,6 +2699,8 @@ public:
XSCXOSCHelper osc; XSCXOSCHelper osc;
XSCXICHHelper ich; XSCXICHHelper ich;
XSCXDONHelper don; XSCXDONHelper don;
XSCXHULLHelper hull;
XSCXSSLCHelper sslc;
// //
// Properties ... // Properties ...
@@ -2794,6 +2862,40 @@ public:
// //
// Filling Buffers ... // Filling Buffers ...
//
// XHULL ...
//
hull.CopyUp(
start,
count,
conditions.hullUps //
);
//
hull.CopyDown(
start,
count,
conditions.hullDowns //
);
//
// XSSLC ...
//
sslc.CopyUp(
start,
count,
conditions.sslcUps //
);
//
sslc.CopyDown(
start,
count,
conditions.sslcDowns //
);
// //
// XHK ... // XHK ...
@@ -3512,6 +3614,12 @@ public:
bool isSMHKSwitchedToBullish = cSMHKBar.IsBullish() && !pSMHKBar.IsBullish(); bool isSMHKSwitchedToBullish = cSMHKBar.IsBullish() && !pSMHKBar.IsBullish();
bool isSMHKSwitchedToBearish = cSMHKBar.IsBearish() && !pSMHKBar.IsBearish(); bool isSMHKSwitchedToBearish = cSMHKBar.IsBearish() && !pSMHKBar.IsBearish();
//
// XHULL ...
//
// XSSLC ...
// //
// XICH ... // XICH ...
@@ -4355,6 +4463,32 @@ public:
// //
// Init Helpers ... // Init Helpers ...
//
// XHULL ...
result = hull.Init(
symbol,
period,
mInputs.hullInputs
//
);
if (!result)
{
return result;
}
//
// XSSLC ...
result = sslc.Init(
symbol,
period,
mInputs.sslcInputs
//
);
if (!result)
{
return result;
}
// //
// XHK ... // XHK ...
result = hk.Init( result = hk.Init(
+23 -2
View File
@@ -24,8 +24,8 @@
// //
#include "../Classes/x-saherelm.x121.xea.class.mq5" #include "../Classes/x-saherelm.x121.xea.class.mq5"
#include "../Classes/x-saherelm.x121.x121.provider.class.mq5" #include "../Signallers/x-saherelm.x121.signaller.class.mq5"
#include "../Classes/x-saherelm.x121.x786.provider.class.mq5" #include "../Signallers/x-saherelm.x786.signaller.class.mq5"
// //
// "EURUSDb,USDCHFb,USDJPYb,XAUUSDb" // "EURUSDb,USDCHFb,USDJPYb,XAUUSDb"
@@ -309,6 +309,16 @@ void ConfigureDescriptor(
iDescriptor.inputs.hkInputs.drawHikenAshi = false; iDescriptor.inputs.hkInputs.drawHikenAshi = false;
iDescriptor.inputs.hkInputs.drawSmoothedHikenAshi = false; iDescriptor.inputs.hkInputs.drawSmoothedHikenAshi = false;
//
// XHULL ...
iDescriptor.inputs.hullInputs.showUpZone = false;
iDescriptor.inputs.hullInputs.showDownZone = false;
//
// XSSLC ...
iDescriptor.inputs.sslcInputs.showUp = false;
iDescriptor.inputs.sslcInputs.showDown = false;
// //
// XMRB ... // XMRB ...
iDescriptor.inputs.mrbInputs.showFastMa = false; iDescriptor.inputs.mrbInputs.showFastMa = false;
@@ -979,6 +989,17 @@ void ApplyPreDefineConfigurations(X121ProviderDescriptor &iDescriptor)
bool isX786 = false; bool isX786 = false;
bool isX121 = false; bool isX121 = false;
//
// XHULL ...
iDescriptor.inputs.hullInputs.showUpZone = false;
iDescriptor.inputs.hullInputs.showDownZone = false;
//
// XSSLC ...
iDescriptor.inputs.sslcInputs.showUp = false;
iDescriptor.inputs.sslcInputs.showDown = false;
// //
if (isX786) if (isX786)
{ {
+1 -1
View File
@@ -117,7 +117,7 @@ struct XSSLCInputs
// //
result = result =
// //
false length > 2
// //
; ;