last works on xchma ...

This commit is contained in:
2024-07-02 16:42:17 +03:30
parent 84d61a513e
commit 050b400412
3 changed files with 5255 additions and 36 deletions
+94 -36
View File
@@ -41,6 +41,7 @@
#include "../Helpers/x-saherelm.xosc.helper.mq5" #include "../Helpers/x-saherelm.xosc.helper.mq5"
#include "../Helpers/x-saherelm.xvlm.helper.mq5" #include "../Helpers/x-saherelm.xvlm.helper.mq5"
#include "../Helpers/x-saherelm.xhtd.helper.mq5" #include "../Helpers/x-saherelm.xhtd.helper.mq5"
#include "../Helpers/x-saherelm.xchma.helper.mq5"
#include "../Helpers/x-saherelm.xatsl.helper.mq5" #include "../Helpers/x-saherelm.xatsl.helper.mq5"
#include "../Helpers/x-saherelm.xdmnt.helper.mq5" #include "../Helpers/x-saherelm.xdmnt.helper.mq5"
#include "../Helpers/x-saherelm.xasct.helper.mq5" #include "../Helpers/x-saherelm.xasct.helper.mq5"
@@ -244,6 +245,7 @@ struct X121SetupInputs
XOSCInputs oscInputs; // XOSC Inputs XOSCInputs oscInputs; // XOSC Inputs
XVLMInputs vlmInputs; // XVLM Inputs XVLMInputs vlmInputs; // XVLM Inputs
XSLNInputs slnInputs; // XSLN Inputs XSLNInputs slnInputs; // XSLN Inputs
XCHMAInputs chmaInputs; // XCHMA Inputs
XATSLInputs atslInputs; // XATSL Inputs XATSLInputs atslInputs; // XATSL Inputs
XDMNTInputs dmntInputs; // XDMNT Inputs XDMNTInputs dmntInputs; // XDMNT Inputs
XASCTInputs asctInputs; // XASCT Inputs XASCTInputs asctInputs; // XASCT Inputs
@@ -286,6 +288,7 @@ struct X121SetupInputs
XOSCInputs &_oscInputs, // XOSC Inputs XOSCInputs &_oscInputs, // XOSC Inputs
XVLMInputs &_vlmInputs, // XVLM Inputs XVLMInputs &_vlmInputs, // XVLM Inputs
XSLNInputs &_slnInputs, // XSLN Inputs XSLNInputs &_slnInputs, // XSLN Inputs
XCHMAInputs &_chmaInputs, // XCHMA Inputs
XATSLInputs &_atslInputs, // XATSL Inputs XATSLInputs &_atslInputs, // XATSL Inputs
XDMNTInputs &_dmntInputs, // XDMNT Inputs XDMNTInputs &_dmntInputs, // XDMNT Inputs
XASCTInputs &_asctInputs, // XASCT Inputs XASCTInputs &_asctInputs, // XASCT Inputs
@@ -311,6 +314,7 @@ struct X121SetupInputs
this.mrbInputs = _mrbInputs; this.mrbInputs = _mrbInputs;
this.oscInputs = _oscInputs; this.oscInputs = _oscInputs;
this.vlmInputs = _vlmInputs; this.vlmInputs = _vlmInputs;
this.chmaInputs = _chmaInputs;
this.atslInputs = _atslInputs; this.atslInputs = _atslInputs;
this.dmntInputs = _dmntInputs; this.dmntInputs = _dmntInputs;
this.asctInputs = _asctInputs; this.asctInputs = _asctInputs;
@@ -350,10 +354,11 @@ struct X121SetupInputs
vlmInputs.Clean(); vlmInputs.Clean();
slnInputs.Clean(); slnInputs.Clean();
htdInputs.Clean(); htdInputs.Clean();
chmaInputs.Clean();
atslInputs.Clean();
asctInputs.Clean(); asctInputs.Clean();
sslcInputs.Clean(); sslcInputs.Clean();
hullInputs.Clean(); hullInputs.Clean();
atslInputs.Clean();
dmntInputs.Clean(); dmntInputs.Clean();
adxtdInputs.Clean(); adxtdInputs.Clean();
} }
@@ -376,10 +381,11 @@ struct X121SetupInputs
vlmInputs.Default(); vlmInputs.Default();
slnInputs.Default(); slnInputs.Default();
htdInputs.Default(); htdInputs.Default();
chmaInputs.Default();
atslInputs.Default();
asctInputs.Default(); asctInputs.Default();
sslcInputs.Default(); sslcInputs.Default();
hullInputs.Default(); hullInputs.Default();
atslInputs.Default();
dmntInputs.Default(); dmntInputs.Default();
adxtdInputs.Default(); adxtdInputs.Default();
} }
@@ -522,6 +528,13 @@ struct X121SetupInputs
return result; return result;
} }
//
result = chmaInputs.IsValid();
if (!result)
{
return result;
}
// //
result = atslInputs.IsValid(); result = atslInputs.IsValid();
if (!result) if (!result)
@@ -565,6 +578,7 @@ struct X121SetupConditions
XVLMConditions vlmConditions; XVLMConditions vlmConditions;
XHTDConditions htdConditions; XHTDConditions htdConditions;
XSLNConditions slnConditions; XSLNConditions slnConditions;
XCHMAConditions chmaConditions;
XATSLConditions atslConditions; XATSLConditions atslConditions;
XASCTConditions asctConditions; XASCTConditions asctConditions;
XSSLCConditions sslcConditions; XSSLCConditions sslcConditions;
@@ -609,6 +623,7 @@ struct X121SetupConditions
vlmConditions.Clean(); vlmConditions.Clean();
slnConditions.Clean(); slnConditions.Clean();
htdConditions.Clean(); htdConditions.Clean();
chmaConditions.Clean();
atslConditions.Clean(); atslConditions.Clean();
asctConditions.Clean(); asctConditions.Clean();
sslcConditions.Clean(); sslcConditions.Clean();
@@ -767,6 +782,14 @@ struct X121SetupConditions
bullishScore += tempBullishScore; bullishScore += tempBullishScore;
bearishScore += tempBearishScore; bearishScore += tempBearishScore;
//
chmaConditions.GenerateScore(
tempBullishScore,
tempBearishScore //
);
bullishScore += tempBullishScore;
bearishScore += tempBearishScore;
// //
dmntConditions.GenerateScore( dmntConditions.GenerateScore(
tempBullishScore, tempBullishScore,
@@ -829,7 +852,8 @@ struct X121SetupConditions
string vlmSummary = vlmConditions.GenerateSummary(false, true, false, ignoreFalseConditions); string vlmSummary = vlmConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
string slnSummary = slnConditions.GenerateSummary(false, true, false, ignoreFalseConditions); string slnSummary = slnConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
string htdSummary = htdConditions.GenerateSummary(false, true, false, ignoreFalseConditions); string htdSummary = htdConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
string atsSummary = atslConditions.GenerateSummary(false, true, false, ignoreFalseConditions); string chmaSummary = chmaConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
string atslSummary = atslConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
string asctSummary = asctConditions.GenerateSummary(false, true, false, ignoreFalseConditions); string asctSummary = asctConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
string sslcSummary = sslcConditions.GenerateSummary(false, true, false, ignoreFalseConditions); string sslcSummary = sslcConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
string hullSummary = hullConditions.GenerateSummary(false, true, false, ignoreFalseConditions); string hullSummary = hullConditions.GenerateSummary(false, true, false, ignoreFalseConditions);
@@ -855,8 +879,9 @@ struct X121SetupConditions
hullSummary + separator + hullSummary + separator +
adxtdSummary + separator + adxtdSummary + separator +
htdSummary + separator + htdSummary + separator +
atsSummary + separator + atslSummary + separator +
dmntSummary + separator + dmntSummary + separator +
chmaSummary + separator +
"" ""
// //
; ;
@@ -3583,15 +3608,6 @@ struct X121SignalGenerator
conditions.pvConditions.isCloseUnderFib4 && conditions.pvConditions.isCloseUnderFib4 &&
conditions.pvConditions.isCloseUnderFib5 conditions.pvConditions.isCloseUnderFib5
// //
) //
&&
//
(
//
// XVLM ...
conditions.vlmConditions.isVolumeBearish &&
conditions.vlmConditions.isVolumeOverLast
//
) )
// //
&& &&
@@ -3600,27 +3616,54 @@ struct X121SignalGenerator
// //
( (
// //
conditions.pvConditions.isSCBearish && (
conditions.pvConditions.isSCHHBearish && //
conditions.pvConditions.isSCLLBearish && // XVLM ...
conditions.pvConditions.isMCBearish && conditions.vlmConditions.isVolumeBearish &&
conditions.pvConditions.isMCHHBearish && conditions.vlmConditions.isVolumeOverLast
conditions.pvConditions.isMCLLBearish && //
conditions.pvConditions.isLCBearish && )
conditions.pvConditions.isLCHHBearish &&
conditions.pvConditions.isLCLLBearish &&
conditions.pvConditions.isHCBearish &&
conditions.pvConditions.isHCHHBearish &&
conditions.pvConditions.isHCLLBearish &&
// //
// XICH ... &&
conditions.ichConditions.isClosedUnderKijunSen && //
conditions.ichConditions.isTenkanSenUnderKijunSen && (
conditions.ichConditions.isSenkouSpanAUnderB && //
conditions.ichConditions.isSenkouSpanAUnderLast && (
conditions.ichConditions.isFutureSenkouSpanAUnderB && //
conditions.ichConditions.isFutureSenkouSpanAUnderLast && conditions.pvConditions.isSCBearish &&
conditions.ichConditions.isSenkouSpanACrossedUnderLast conditions.pvConditions.isSCHHBearish &&
conditions.pvConditions.isSCLLBearish &&
conditions.pvConditions.isMCBearish &&
conditions.pvConditions.isMCHHBearish &&
conditions.pvConditions.isMCLLBearish &&
conditions.pvConditions.isLCBearish &&
conditions.pvConditions.isLCHHBearish &&
conditions.pvConditions.isLCLLBearish &&
conditions.pvConditions.isHCBearish &&
conditions.pvConditions.isHCHHBearish &&
conditions.pvConditions.isHCLLBearish &&
//
// XICH ...
conditions.ichConditions.isClosedUnderKijunSen &&
conditions.ichConditions.isTenkanSenUnderKijunSen &&
conditions.ichConditions.isSenkouSpanAUnderB &&
conditions.ichConditions.isSenkouSpanAUnderLast &&
conditions.ichConditions.isFutureSenkouSpanAUnderB &&
conditions.ichConditions.isFutureSenkouSpanAUnderLast &&
conditions.ichConditions.isSenkouSpanACrossedUnderLast
//
)
//
||
//
(
//
// XICH ...
conditions.ichConditions.isSenkouSpanACrossedUnderB
//
)
//
)
// //
) )
// //
@@ -3628,8 +3671,11 @@ struct X121SignalGenerator
// //
( (
// //
// XICH ... // XRL ...
conditions.ichConditions.isSenkouSpanACrossedUnderB conditions.rlConditions.isFastBearish &&
conditions.rlConditions.isSlowBearish &&
conditions.rlConditions.isFastOverSlow &&
conditions.rlConditions.isVerifierBearish
// //
) )
// //
@@ -4045,10 +4091,11 @@ public:
XSCXVLMHelper *vlmHelper; XSCXVLMHelper *vlmHelper;
XSCXSLNHelper *slnHelper; XSCXSLNHelper *slnHelper;
XSCXHTDHelper *hdtHelper; XSCXHTDHelper *hdtHelper;
XSCXCHMAHelper *chmaHelper;
XSCXATSLHelper *atslHelper;
XSCXASCTHelper *asctHelper; XSCXASCTHelper *asctHelper;
XSCXSSLCHelper *sslcHelper; XSCXSSLCHelper *sslcHelper;
XSCXHULLHelper *hullHelper; XSCXHULLHelper *hullHelper;
XSCXATSLHelper *atslHelper;
XSCXDMNTHelper *dmntHelper; XSCXDMNTHelper *dmntHelper;
XSCXADXTDHelper *adxtdHelper; XSCXADXTDHelper *adxtdHelper;
@@ -4436,6 +4483,17 @@ public:
return result; return result;
} }
//
result = chmaHelper.GetConditions(
conditions.chmaConditions,
barIndex,
loopback //
);
if (!result)
{
return result;
}
// //
result = atslHelper.GetConditions( result = atslHelper.GetConditions(
conditions.atslConditions, conditions.atslConditions,
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff