This commit is contained in:
2025-04-26 22:28:02 +03:30
parent 94878bdea2
commit a34ca8272a
7 changed files with 1379 additions and 528 deletions
+164 -21
View File
@@ -25,10 +25,10 @@
#include "../../Classes/x-saherelm.x-bar.analyser.class.mq5"
#include "../../Classes/x-saherelm.x-poi.class.mq5"
#include "../../Classes/x-saherelm.x-poi.drawer.class.mq5"
#include "../../Helpers/x-saherelm.x121.x3ma.helper.mq5"
#include "../../Helpers/x-saherelm.x121.xca.helper.mq5"
#include "../../Helpers/x-saherelm.x121.xcc.helper.mq5"
#include "../../Helpers/x-saherelm.x121.xct.helper.mq5"
#include "../../Helpers/x-saherelm.x121.x3ma.helper.mq5"
#include "../../Helpers/x-saherelm.x121.xoscs.helper.mq5"
//
@@ -124,7 +124,7 @@ struct XCAEAInputs
ccInputs.IsValid() &&
caInputs.IsValid() &&
x3maInputs.IsValid() &&
oscsInputs.IsValid()
oscsInputs.IsValid()
//
;
@@ -215,6 +215,34 @@ struct XCAEAConditions
bool isMediumCrossedOverSlow;
bool isMediumCrossedUnderSlow;
//
bool is3MaBullishOrdered;
bool is3MaBearishOrdered;
//
bool is3MaSwitchedToBullishOrdered;
bool is3MaSwitchedToBearishOrdered;
//
bool is3MaBullishState;
bool is3MaBearishState;
//
bool is3MaSwitchedToBullishState;
bool is3MaSwitchedToBearishState;
//
bool is3MaBullish;
bool is3MaBearish;
//
bool is3MaSwitchedToBullish;
bool is3MaSwitchedToBearish;
//
bool is3MaFinishedFromBullish;
bool is3MaFinishedFromBearish;
//
// XCA ...
@@ -770,6 +798,34 @@ struct XCAEAConditions
isMediumCrossedOverSlow = false;
isMediumCrossedUnderSlow = false;
//
is3MaBullishOrdered = false;
is3MaBearishOrdered = false;
//
is3MaSwitchedToBullishOrdered = false;
is3MaSwitchedToBearishOrdered = false;
//
is3MaBullishState = false;
is3MaBearishState = false;
//
is3MaSwitchedToBullishState = false;
is3MaSwitchedToBearishState = false;
//
is3MaBullish = false;
is3MaBearish = false;
//
is3MaSwitchedToBullish = false;
is3MaSwitchedToBearish = false;
//
is3MaFinishedFromBullish = false;
is3MaFinishedFromBearish = false;
//
// XCA ...
@@ -910,7 +966,7 @@ struct XCAEAConditions
//
isSarFinishedFromBullish = false;
isSarFinishedFromBearish = false;
//
// PEAK ...
@@ -1287,6 +1343,36 @@ struct XCAEAConditions
bullishScore += score;
}
//
if (is3MaBullish)
{
bullishScore += minScore;
}
if (is3MaBullishState)
{
bullishScore += minScore;
}
if (is3MaBullishOrdered)
{
bullishScore += minScore;
}
if (is3MaSwitchedToBullish)
{
bullishScore += minScore;
}
if (is3MaFinishedFromBearish)
{
bullishScore += minScore;
}
if (is3MaSwitchedToBullishState)
{
bullishScore += minScore;
}
if (is3MaSwitchedToBullishOrdered)
{
bullishScore += minScore;
}
//
if (isFastUnderSlow)
{
@@ -1313,6 +1399,35 @@ struct XCAEAConditions
bearishScore += score;
}
//
if (is3MaBearish)
{
bearishScore += minScore;
}
if (is3MaBearishState)
{
bearishScore += minScore;
}
if (is3MaBearishOrdered)
{
bearishScore += minScore;
}
if (is3MaSwitchedToBearish)
{
bearishScore += minScore;
}
if (is3MaFinishedFromBullish)
{
bearishScore += minScore;
}
if (is3MaSwitchedToBearishState)
{
bearishScore += minScore;
}
if (is3MaSwitchedToBearishOrdered)
{
bearishScore += minScore;
}
//
// KI ...
@@ -2099,6 +2214,20 @@ struct XCAEAConditions
ToString("isMediumUnderSlow", isMediumUnderSlow, ignoreFalseConditions, separator) +
ToString("isMediumCrossedOverSlow", isMediumCrossedOverSlow, ignoreFalseConditions, separator) +
ToString("isMediumCrossedUnderSlow", isMediumCrossedUnderSlow, ignoreFalseConditions, separator) +
ToString("is3MaBullishOrdered", is3MaBullishOrdered, ignoreFalseConditions, separator) +
ToString("is3MaBearishOrdered", is3MaBearishOrdered, ignoreFalseConditions, separator) +
ToString("is3MaSwitchedToBullishOrdered", is3MaSwitchedToBullishOrdered, ignoreFalseConditions, separator) +
ToString("is3MaSwitchedToBearishOrdered", is3MaSwitchedToBearishOrdered, ignoreFalseConditions, separator) +
ToString("is3MaBullishState", is3MaBullishState, ignoreFalseConditions, separator) +
ToString("is3MaBearishState", is3MaBearishState, ignoreFalseConditions, separator) +
ToString("is3MaSwitchedToBullishState", is3MaSwitchedToBullishState, ignoreFalseConditions, separator) +
ToString("is3MaSwitchedToBearishState", is3MaSwitchedToBearishState, ignoreFalseConditions, separator) +
ToString("is3MaBullish", is3MaBullish, ignoreFalseConditions, separator) +
ToString("is3MaBearish", is3MaBearish, ignoreFalseConditions, separator) +
ToString("is3MaSwitchedToBullish", is3MaSwitchedToBullish, ignoreFalseConditions, separator) +
ToString("is3MaSwitchedToBearish", is3MaSwitchedToBearish, ignoreFalseConditions, separator) +
ToString("is3MaFinishedFromBullish", is3MaFinishedFromBullish, ignoreFalseConditions, separator) +
ToString("is3MaFinishedFromBearish", is3MaFinishedFromBearish, ignoreFalseConditions, separator) +
"-----------------------" + separator +
"XCA: " + separator +
"-----------------------" + separator +
@@ -2758,8 +2887,8 @@ class XCXCAEAHelper : XCBase
*/
bool Get3MAConditions(
X121X3MAConditions &conditions, //
int barIndex = 0, //
int loopback = 5 //
int barIndex = 0, //
int loopback = 5 //
)
{
//
@@ -2896,7 +3025,7 @@ class XCXCAEAHelper : XCBase
result =
result &&
zBar.GetPreviousBar(cBar);
result =
result =
result &&
cBar.GetPreviousBar(pBar);
result =
@@ -2975,59 +3104,73 @@ class XCXCAEAHelper : XCBase
//
// Buffers ...
//
Copy (
Copy(
x3maConditions.fastBuffer,
conditions.fastBuffer //
);
//
Copy (
Copy(
x3maConditions.mediumBuffer,
conditions.mediumBuffer //
);
//
Copy (
Copy(
x3maConditions.slowBuffer,
conditions.slowBuffer //
);
//
Copy (
Copy(
x3maConditions.fastStateBuffer,
conditions.fastStateBuffer //
);
//
Copy (
Copy(
x3maConditions.mediumStateBuffer,
conditions.mediumStateBuffer //
);
//
Copy (
Copy(
x3maConditions.slowStateBuffer,
conditions.slowStateBuffer //
);
);
//
// Conditions ...
//
conditions.is3MaBullish = x3maConditions.is3MaBullish;
conditions.is3MaBearish = x3maConditions.is3MaBearish;
conditions.isFastOverSlow = x3maConditions.isFastOverSlow;
conditions.isFastUnderSlow = x3maConditions.isFastUnderSlow;
conditions.isFastOverMedium = x3maConditions.isFastOverMedium;
conditions.isMediumOverSlow = x3maConditions.isMediumOverSlow;
conditions.isFastUnderMedium = x3maConditions.isFastUnderMedium;
conditions.isMediumUnderSlow = x3maConditions.isMediumUnderSlow;
conditions.is3MaBullishState = x3maConditions.is3MaBullishState;
conditions.is3MaBearishState = x3maConditions.is3MaBearishState;
conditions.is3MaBullishOrdered = x3maConditions.is3MaBullishOrdered;
conditions.is3MaBearishOrdered = x3maConditions.is3MaBearishOrdered;
conditions.isFastCrossedOverSlow = x3maConditions.isFastCrossedOverSlow;
conditions.is3MaSwitchedToBullish = x3maConditions.is3MaSwitchedToBullish;
conditions.is3MaSwitchedToBearish = x3maConditions.is3MaSwitchedToBearish;
conditions.isFastCrossedUnderSlow = x3maConditions.isFastCrossedUnderSlow;
conditions.isFastCrossedOverMedium = x3maConditions.isFastCrossedOverMedium;
conditions.isMediumCrossedOverSlow = x3maConditions.isMediumCrossedOverSlow;
conditions.is3MaFinishedFromBullish = x3maConditions.is3MaFinishedFromBullish;
conditions.is3MaFinishedFromBearish = x3maConditions.is3MaFinishedFromBearish;
conditions.isFastCrossedUnderMedium = x3maConditions.isFastCrossedUnderMedium;
conditions.isMediumCrossedUnderSlow = x3maConditions.isMediumCrossedUnderSlow;
conditions.is3MaSwitchedToBullishState = x3maConditions.is3MaSwitchedToBullishState;
conditions.is3MaSwitchedToBearishState = x3maConditions.is3MaSwitchedToBearishState;
conditions.is3MaSwitchedToBullishOrdered = x3maConditions.is3MaSwitchedToBullishOrdered;
conditions.is3MaSwitchedToBearishOrdered = x3maConditions.is3MaSwitchedToBearishOrdered;
//
// XCA ...
@@ -3551,4 +3694,4 @@ class XCXCAEAHelper : XCBase
int stochasticHandler;
};
//
//