This commit is contained in:
2025-05-01 12:55:43 +03:30
parent 400cf11d54
commit 22605f46b6
4 changed files with 135 additions and 32 deletions
+100 -20
View File
@@ -714,6 +714,20 @@ bool DetectXCAEAConditions(
double pVale = conditions.valeBuffer[pIDX];
double p2Vale = conditions.valeBuffer[p2IDX];
//
// PEAKGOLDEN ...
double zPeakGolden = conditions.peakGoldenBuffer[zIDX];
double cPeakGolden = conditions.peakGoldenBuffer[cIDX];
double pPeakGolden = conditions.peakGoldenBuffer[pIDX];
double p2PeakGolden = conditions.peakGoldenBuffer[p2IDX];
//
// VALEGOLDEN ...
double zValeGolden = conditions.valeGoldenBuffer[zIDX];
double cValeGolden = conditions.valeGoldenBuffer[cIDX];
double pValeGolden = conditions.valeGoldenBuffer[pIDX];
double p2ValeGolden = conditions.valeGoldenBuffer[p2IDX];
//
// SUPPORT ...
double zSupport = conditions.supportBuffer[zIDX];
@@ -784,6 +798,13 @@ bool DetectXCAEAConditions(
double pCCI = conditions.cciBuffer[pIDX];
double p2CCI = conditions.cciBuffer[p2IDX];
//
// ATR ...
double zATR = conditions.atrBuffer[zIDX];
double cATR = conditions.atrBuffer[cIDX];
double pATR = conditions.atrBuffer[pIDX];
double p2ATR = conditions.atrBuffer[p2IDX];
//
// ADX ...
double zADX = conditions.adxBuffer[zIDX];
@@ -956,6 +977,38 @@ bool DetectXCAEAConditions(
bool isADXSwitchedToBearish = isADXBearish &&
!isADXBearishPrev;
//
double barStrongAtrMult = 1.5;
//
bool isCBarRangeHasStrongATR =
cBar.GetRange() > cATR * barStrongAtrMult;
//
bool isCBarBodyHasStrongATR =
cBar.GetBody() > cATR * barStrongAtrMult;
//
bool isCBarHasStrongATR = isCBarRangeHasStrongATR &&
isCBarBodyHasStrongATR;
//
bool isCBarIsStrongBullish =
isCBarHasStrongATR &&
cBar.IsBullish();
//
bool isCBarIsStrongBearish =
isCBarHasStrongATR &&
cBar.IsBearish();
//
if (isCBarHasStrongATR)
{
//
Print(ToString(cBar.GetDirection()), " ATR Growing ...");
}
//
bool isLowOverMax = cBar.low > maxCTrendValue;
bool isHighUnderMin = cBar.high < minCTrendValue;
@@ -972,6 +1025,16 @@ bool DetectXCAEAConditions(
bool isTrendRangeFinishedFromValid = !isCTrendRangeValid &&
isPTrendRangeValid;
//
bool isPeakGoldenRejected =
cBar.high > cPeakGolden &&
cBar.GetUp() <= cPeakGolden;
//
bool isValeGoldenRejected =
cBar.low < cValeGolden &&
cBar.GetDown() >= cValeGolden;
//
bool isX3MaBullishState =
//
@@ -1271,20 +1334,25 @@ bool DetectXCAEAConditions(
//
// false &&
//
isPRSIOS &&
isPCCIOS &&
isRSIBullish &&
isCCIBullish &&
z3MAFastState > 0 &&
isValeGoldenRejected &&
isCBarBullishRejected &&
conditions.isValeIsPivot
//
// isPCCIOS &&
// isRSIBullish &&
// conditions.isCloseUnderMal
// rciPivot.IsValid() &&
// rciPivot.IsBullish() &&
// isCCIBullish &&
// cBar.close > c3MAFast
// isADXBullish &&
// hasRCIContainers &&
rciPivot.IsValid() &&
rciPivot.IsBullish() &&
// conditions.isUnderMal &&
// conditions.isValeIsPivot &&
(conditions.isRSICrossedOverOS ||
conditions.isCCICrossedOverOS) // &&
// (conditions.isRSICrossedOverOS ||
// conditions.isCCICrossedOverOS) // &&
// conditions.swingLowBuffer[cIDX] < conditions.fiboLevel3Buffer[cIDX]
//
// //
;
//
@@ -1292,20 +1360,27 @@ bool DetectXCAEAConditions(
//
// false &&
//
isPRSIOB &&
isPCCIOB &&
isRSIBearish &&
isCCIBearish &&
z3MAFastState < 0 &&
isPeakGoldenRejected &&
isCBarBullishRejected &&
conditions.isPeakIsPivot
//
// isPCCIOB &&
// isRSIBearish &&
// c3MAFastState < 0 &&
// conditions.isCloseOverMah
// rciPivot.IsValid() &&
// rciPivot.IsBearish() &&
// conditions.isRSIOB &&
// isCCIBearish &&
// cBar.close < c3MAFast
// isADXBearish &&
// hasRCIContainers &&
rciPivot.IsValid() &&
rciPivot.IsBearish() &&
// conditions.isOverMal &&
// conditions.isPeakIsPivot &&
(conditions.isRSICrossedUnderOB ||
conditions.isCCICrossedUnderOB) // &&
// (conditions.isRSICrossedUnderOB ||
// conditions.isCCICrossedUnderOB) // &&
// conditions.swingHighBuffer[cIDX] > conditions.fiboLevel1Buffer[cIDX]
//
// //
;
//
@@ -1313,7 +1388,12 @@ bool DetectXCAEAConditions(
isCond2Bearish;
if (isCond2)
{
//
pivotBox = rciPivot;
//
isCond2Bullish = false;
isCond2Bearish = false;
}
//