This commit is contained in:
2025-01-24 00:19:09 +03:30
parent 330c70088c
commit 030f3ee2ee
5 changed files with 260 additions and 204 deletions
+141 -89
View File
@@ -244,44 +244,44 @@ struct X121Conditions
bool isClosedUnderAtrLower; bool isClosedUnderAtrLower;
// //
bool isRejectUpAtrUpper; bool isRejectedUpAtrUpper;
bool isRejectDownAtrUpper; bool isRejectedDownAtrUpper;
// //
bool isRejectUpAtrLower; bool isRejectedUpAtrLower;
bool isRejectDownAtrLower; bool isRejectedDownAtrLower;
// //
bool isBreakedUpAtrUpper; bool isBreakedUpAtrUpper;
bool isBreakDownAtrUpper; bool isBreakedDownAtrUpper;
// //
bool isBreakedUpAtrLower; bool isBreakedUpAtrLower;
bool isBreakDownAtrLower; bool isBreakedDownAtrLower;
// //
bool isRejectDonOpenUpper; bool isRejectedDonOpenUpper;
bool isRejectDonHighUpper; bool isRejectedDonHighUpper;
bool isRejectDonLowUpper; bool isRejectedDonLowUpper;
bool isRejectDonCloseUpper; bool isRejectedDonCloseUpper;
// //
bool isRejectDonOpenLower; bool isRejectedDonOpenLower;
bool isRejectDonHighLower; bool isRejectedDonHighLower;
bool isRejectDonLowLower; bool isRejectedDonLowLower;
bool isRejectDonCloseLower; bool isRejectedDonCloseLower;
// //
bool isBreakDonOpenUpper; bool isBreakedDonOpenUpper;
bool isBreakDonHighUpper; bool isBreakedDonHighUpper;
bool isBreakDonLowUpper; bool isBreakedDonLowUpper;
bool isBreakDonCloseUpper; bool isBreakedDonCloseUpper;
// //
bool isBreakDonOpenLower; bool isBreakedDonOpenLower;
bool isBreakDonHighLower; bool isBreakedDonHighLower;
bool isBreakDonLowLower; bool isBreakedDonLowLower;
bool isBreakDonCloseLower; bool isBreakedDonCloseLower;
// //
bool isSarBullish; bool isSarBullish;
@@ -423,6 +423,14 @@ struct X121Conditions
bool isBreakedUpPrevAtrLower; bool isBreakedUpPrevAtrLower;
bool isBreakedDownPrevAtrLower; bool isBreakedDownPrevAtrLower;
//
bool isRejectedUpPrevAtrUpper;
bool isRejectedDownPrevAtrUpper;
//
bool isRejectedUpPrevAtrLower;
bool isRejectedDownPrevAtrLower;
// //
bool isSarEqualsToPeak; bool isSarEqualsToPeak;
bool isSarEqualsToVale; bool isSarEqualsToVale;
@@ -700,47 +708,47 @@ struct X121Conditions
isClosedUnderAtrLower = false; isClosedUnderAtrLower = false;
// //
isRejectUpAtrUpper = false; isRejectedUpAtrUpper = false;
isRejectDownAtrUpper = false; isRejectedDownAtrUpper = false;
// //
isRejectUpAtrLower = false; isRejectedUpAtrLower = false;
isRejectDownAtrLower = false; isRejectedDownAtrLower = false;
// //
isBreakedUpAtrUpper = false; isBreakedUpAtrUpper = false;
isBreakDownAtrUpper = false; isBreakedDownAtrUpper = false;
// //
isBreakedUpAtrLower = false; isBreakedUpAtrLower = false;
isBreakDownAtrLower = false; isBreakedDownAtrLower = false;
// //
// DON ... // DON ...
// //
isRejectDonOpenUpper = false; isRejectedDonOpenUpper = false;
isRejectDonHighUpper = false; isRejectedDonHighUpper = false;
isRejectDonLowUpper = false; isRejectedDonLowUpper = false;
isRejectDonCloseUpper = false; isRejectedDonCloseUpper = false;
// //
isRejectDonOpenLower = false; isRejectedDonOpenLower = false;
isRejectDonHighLower = false; isRejectedDonHighLower = false;
isRejectDonLowLower = false; isRejectedDonLowLower = false;
isRejectDonCloseLower = false; isRejectedDonCloseLower = false;
// //
isBreakDonOpenUpper = false; isBreakedDonOpenUpper = false;
isBreakDonHighUpper = false; isBreakedDonHighUpper = false;
isBreakDonLowUpper = false; isBreakedDonLowUpper = false;
isBreakDonCloseUpper = false; isBreakedDonCloseUpper = false;
// //
isBreakDonOpenLower = false; isBreakedDonOpenLower = false;
isBreakDonHighLower = false; isBreakedDonHighLower = false;
isBreakDonLowLower = false; isBreakedDonLowLower = false;
isBreakDonCloseLower = false; isBreakedDonCloseLower = false;
// //
// SAR ... // SAR ...
@@ -899,10 +907,18 @@ struct X121Conditions
isBreakedUpPrevAtrUpper = false; isBreakedUpPrevAtrUpper = false;
isBreakedDownPrevAtrUpper = false; isBreakedDownPrevAtrUpper = false;
//
isRejectedUpPrevAtrUpper = false;
isRejectedDownPrevAtrUpper = false;
// //
isBreakedUpPrevAtrLower = false; isBreakedUpPrevAtrLower = false;
isBreakedDownPrevAtrLower = false; isBreakedDownPrevAtrLower = false;
//
isRejectedUpPrevAtrLower = false;
isRejectedDownPrevAtrLower = false;
// //
isBreakedUpPrevCheMin = false; isBreakedUpPrevCheMin = false;
isBreakedUpPrevCheMax = false; isBreakedUpPrevCheMax = false;
@@ -1124,34 +1140,34 @@ struct X121Conditions
ToString("isClosedOverAtrLower", isClosedOverAtrLower, ignoreFalseConditions, separator) + ToString("isClosedOverAtrLower", isClosedOverAtrLower, ignoreFalseConditions, separator) +
ToString("isClosedUnderAtrUpper", isClosedUnderAtrUpper, ignoreFalseConditions, separator) + ToString("isClosedUnderAtrUpper", isClosedUnderAtrUpper, ignoreFalseConditions, separator) +
ToString("isClosedUnderAtrLower", isClosedUnderAtrLower, ignoreFalseConditions, separator) + ToString("isClosedUnderAtrLower", isClosedUnderAtrLower, ignoreFalseConditions, separator) +
ToString("isRejectUpAtrUpper", isRejectUpAtrUpper, ignoreFalseConditions, separator) + ToString("isRejectedUpAtrUpper", isRejectedUpAtrUpper, ignoreFalseConditions, separator) +
ToString("isRejectDownAtrUpper", isRejectDownAtrUpper, ignoreFalseConditions, separator) + ToString("isRejectedDownAtrUpper", isRejectedDownAtrUpper, ignoreFalseConditions, separator) +
ToString("isRejectUpAtrLower", isRejectUpAtrLower, ignoreFalseConditions, separator) + ToString("isRejectedUpAtrLower", isRejectedUpAtrLower, ignoreFalseConditions, separator) +
ToString("isRejectDownAtrLower", isRejectDownAtrLower, ignoreFalseConditions, separator) + ToString("isRejectedDownAtrLower", isRejectedDownAtrLower, ignoreFalseConditions, separator) +
ToString("isBreakedUpAtrUpper", isBreakedUpAtrUpper, ignoreFalseConditions, separator) + ToString("isBreakedUpAtrUpper", isBreakedUpAtrUpper, ignoreFalseConditions, separator) +
ToString("isBreakDownAtrUpper", isBreakDownAtrUpper, ignoreFalseConditions, separator) + ToString("isBreakedDownAtrUpper", isBreakedDownAtrUpper, ignoreFalseConditions, separator) +
ToString("isBreakedUpAtrLower", isBreakedUpAtrLower, ignoreFalseConditions, separator) + ToString("isBreakedUpAtrLower", isBreakedUpAtrLower, ignoreFalseConditions, separator) +
// //
"-----------------------" + separator + "-----------------------" + separator +
"DON ..." + separator + "DON ..." + separator +
"-----------------------" + separator + "-----------------------" + separator +
ToString("isBreakDownAtrLower", isBreakDownAtrLower, ignoreFalseConditions, separator) + ToString("isBreakedDownAtrLower", isBreakedDownAtrLower, ignoreFalseConditions, separator) +
ToString("isRejectDonOpenUpper", isRejectDonOpenUpper, ignoreFalseConditions, separator) + ToString("isRejectedDonOpenUpper", isRejectedDonOpenUpper, ignoreFalseConditions, separator) +
ToString("isRejectDonHighUpper", isRejectDonHighUpper, ignoreFalseConditions, separator) + ToString("isRejectedDonHighUpper", isRejectedDonHighUpper, ignoreFalseConditions, separator) +
ToString("isRejectDonLowUpper", isRejectDonLowUpper, ignoreFalseConditions, separator) + ToString("isRejectedDonLowUpper", isRejectedDonLowUpper, ignoreFalseConditions, separator) +
ToString("isRejectDonCloseUpper", isRejectDonCloseUpper, ignoreFalseConditions, separator) + ToString("isRejectedDonCloseUpper", isRejectedDonCloseUpper, ignoreFalseConditions, separator) +
ToString("isRejectDonOpenLower", isRejectDonOpenLower, ignoreFalseConditions, separator) + ToString("isRejectedDonOpenLower", isRejectedDonOpenLower, ignoreFalseConditions, separator) +
ToString("isRejectDonHighLower", isRejectDonHighLower, ignoreFalseConditions, separator) + ToString("isRejectedDonHighLower", isRejectedDonHighLower, ignoreFalseConditions, separator) +
ToString("isRejectDonLowLower", isRejectDonLowLower, ignoreFalseConditions, separator) + ToString("isRejectedDonLowLower", isRejectedDonLowLower, ignoreFalseConditions, separator) +
ToString("isRejectDonCloseLower", isRejectDonCloseLower, ignoreFalseConditions, separator) + ToString("isRejectedDonCloseLower", isRejectedDonCloseLower, ignoreFalseConditions, separator) +
ToString("isBreakDonOpenUpper", isBreakDonOpenUpper, ignoreFalseConditions, separator) + ToString("isBreakedDonOpenUpper", isBreakedDonOpenUpper, ignoreFalseConditions, separator) +
ToString("isBreakDonHighUpper", isBreakDonHighUpper, ignoreFalseConditions, separator) + ToString("isBreakedDonHighUpper", isBreakedDonHighUpper, ignoreFalseConditions, separator) +
ToString("isBreakDonLowUpper", isBreakDonLowUpper, ignoreFalseConditions, separator) + ToString("isBreakedDonLowUpper", isBreakedDonLowUpper, ignoreFalseConditions, separator) +
ToString("isBreakDonCloseUpper", isBreakDonCloseUpper, ignoreFalseConditions, separator) + ToString("isBreakedDonCloseUpper", isBreakedDonCloseUpper, ignoreFalseConditions, separator) +
ToString("isBreakDonOpenLower", isBreakDonOpenLower, ignoreFalseConditions, separator) + ToString("isBreakedDonOpenLower", isBreakedDonOpenLower, ignoreFalseConditions, separator) +
ToString("isBreakDonHighLower", isBreakDonHighLower, ignoreFalseConditions, separator) + ToString("isBreakedDonHighLower", isBreakedDonHighLower, ignoreFalseConditions, separator) +
ToString("isBreakDonLowLower", isBreakDonLowLower, ignoreFalseConditions, separator) + ToString("isBreakedDonLowLower", isBreakedDonLowLower, ignoreFalseConditions, separator) +
ToString("isBreakDonCloseLower", isBreakDonCloseLower, ignoreFalseConditions, separator) + ToString("isBreakedDonCloseLower", isBreakedDonCloseLower, ignoreFalseConditions, separator) +
// //
"-----------------------" + separator + "-----------------------" + separator +
"VWAP ..." + separator + "VWAP ..." + separator +
@@ -1224,7 +1240,7 @@ struct X121Conditions
ToString("isSarIncreased", isSarIncreased, ignoreFalseConditions, separator) + ToString("isSarIncreased", isSarIncreased, ignoreFalseConditions, separator) +
ToString("isSarDecreased", isSarDecreased, ignoreFalseConditions, separator) + ToString("isSarDecreased", isSarDecreased, ignoreFalseConditions, separator) +
ToString("isSarEqualsToPeak", isSarEqualsToPeak, ignoreFalseConditions, separator) + ToString("isSarEqualsToPeak", isSarEqualsToPeak, ignoreFalseConditions, separator) +
ToString("isSarEqualsToVale", isSarEqualsToVale, ignoreFalseConditions, separator) +
ToString("isStrEqualsToPeak", isStrEqualsToPeak, ignoreFalseConditions, separator) + ToString("isStrEqualsToPeak", isStrEqualsToPeak, ignoreFalseConditions, separator) +
ToString("isStrEqualsToVale", isStrEqualsToVale, ignoreFalseConditions, separator) + ToString("isStrEqualsToVale", isStrEqualsToVale, ignoreFalseConditions, separator) +
ToString("isPeakOverAtrUpper", isPeakOverAtrUpper, ignoreFalseConditions, separator) + ToString("isPeakOverAtrUpper", isPeakOverAtrUpper, ignoreFalseConditions, separator) +
@@ -1276,6 +1292,8 @@ struct X121Conditions
ToString("isBreakedUpPrevAtrUpper", isBreakedUpPrevAtrUpper, ignoreFalseConditions, separator) + ToString("isBreakedUpPrevAtrUpper", isBreakedUpPrevAtrUpper, ignoreFalseConditions, separator) +
ToString("isBreakedUpPrevAtrLower", isBreakedUpPrevAtrLower, ignoreFalseConditions, separator) + ToString("isBreakedUpPrevAtrLower", isBreakedUpPrevAtrLower, ignoreFalseConditions, separator) +
ToString("isVWapFastCrossedOverMid", isVWapFastCrossedOverMid, ignoreFalseConditions, separator) + ToString("isVWapFastCrossedOverMid", isVWapFastCrossedOverMid, ignoreFalseConditions, separator) +
ToString("isRejectedUpPrevAtrUpper", isRejectedUpPrevAtrUpper, ignoreFalseConditions, separator) +
ToString("isRejectedUpPrevAtrLower", isRejectedUpPrevAtrLower, ignoreFalseConditions, separator) +
ToString("isAtrUpperCrossedDownPeak", isAtrUpperCrossedDownPeak, ignoreFalseConditions, separator) + ToString("isAtrUpperCrossedDownPeak", isAtrUpperCrossedDownPeak, ignoreFalseConditions, separator) +
ToString("isAtrLowerCrossedDownVale", isAtrLowerCrossedDownVale, ignoreFalseConditions, separator) + ToString("isAtrLowerCrossedDownVale", isAtrLowerCrossedDownVale, ignoreFalseConditions, separator) +
ToString("isBreakedDownPrevAtrUpper", isBreakedDownPrevAtrUpper, ignoreFalseConditions, separator) + ToString("isBreakedDownPrevAtrUpper", isBreakedDownPrevAtrUpper, ignoreFalseConditions, separator) +
@@ -1286,6 +1304,8 @@ struct X121Conditions
ToString("isStrLowerOverDonLowLower", isStrLowerOverDonLowLower, ignoreFalseConditions, separator) + ToString("isStrLowerOverDonLowLower", isStrLowerOverDonLowLower, ignoreFalseConditions, separator) +
ToString("isStrLowerCrossedOverVale", isStrLowerCrossedOverVale, ignoreFalseConditions, separator) + ToString("isStrLowerCrossedOverVale", isStrLowerCrossedOverVale, ignoreFalseConditions, separator) +
ToString("isDonLowLowerEqualsToVale", isDonLowLowerEqualsToVale, ignoreFalseConditions, separator) + ToString("isDonLowLowerEqualsToVale", isDonLowLowerEqualsToVale, ignoreFalseConditions, separator) +
ToString("isRejectedDownPrevAtrUpper", isRejectedDownPrevAtrUpper, ignoreFalseConditions, separator) +
ToString("isRejectedDownPrevAtrLower", isRejectedDownPrevAtrLower, ignoreFalseConditions, separator) +
ToString("isVWapFastCrossedUnderSlow", isVWapFastCrossedUnderSlow, ignoreFalseConditions, separator) + ToString("isVWapFastCrossedUnderSlow", isVWapFastCrossedUnderSlow, ignoreFalseConditions, separator) +
ToString("isStrUpperCrossedUnderPeak", isStrUpperCrossedUnderPeak, ignoreFalseConditions, separator) + ToString("isStrUpperCrossedUnderPeak", isStrUpperCrossedUnderPeak, ignoreFalseConditions, separator) +
ToString("isStrLowerCrossedUnderVale", isStrLowerCrossedUnderVale, ignoreFalseConditions, separator) + ToString("isStrLowerCrossedUnderVale", isStrLowerCrossedUnderVale, ignoreFalseConditions, separator) +
@@ -2000,15 +2020,15 @@ class XCX121Helper : public XCBase
conditions.isBreakedUpAtrUpper = xatrConditions.isBreakedUpAtrUpper; conditions.isBreakedUpAtrUpper = xatrConditions.isBreakedUpAtrUpper;
conditions.isBreakedUpAtrLower = xatrConditions.isBreakedUpAtrLower; conditions.isBreakedUpAtrLower = xatrConditions.isBreakedUpAtrLower;
conditions.isClosedOverAtrUpper = xatrConditions.isClosedOverAtrUpper; conditions.isClosedOverAtrUpper = xatrConditions.isClosedOverAtrUpper;
conditions.isRejectUpAtrUpper = xatrConditions.isRejectUpAtrUpper; conditions.isRejectedUpAtrUpper = xatrConditions.isRejectedUpAtrUpper;
conditions.isRejectUpAtrLower = xatrConditions.isRejectUpAtrLower; conditions.isRejectedUpAtrLower = xatrConditions.isRejectedUpAtrLower;
conditions.isClosedOverAtrLower = xatrConditions.isClosedOverAtrLower; conditions.isClosedOverAtrLower = xatrConditions.isClosedOverAtrLower;
conditions.isBreakDownAtrUpper = xatrConditions.isBreakDownAtrUpper; conditions.isBreakedDownAtrUpper = xatrConditions.isBreakedDownAtrUpper;
conditions.isBreakDownAtrLower = xatrConditions.isBreakDownAtrLower; conditions.isBreakedDownAtrLower = xatrConditions.isBreakedDownAtrLower;
conditions.isClosedUnderAtrUpper = xatrConditions.isClosedUnderAtrUpper; conditions.isClosedUnderAtrUpper = xatrConditions.isClosedUnderAtrUpper;
conditions.isClosedUnderAtrLower = xatrConditions.isClosedUnderAtrLower; conditions.isClosedUnderAtrLower = xatrConditions.isClosedUnderAtrLower;
conditions.isRejectDownAtrUpper = xatrConditions.isRejectDownAtrUpper; conditions.isRejectedDownAtrUpper = xatrConditions.isRejectedDownAtrUpper;
conditions.isRejectDownAtrLower = xatrConditions.isRejectDownAtrLower; conditions.isRejectedDownAtrLower = xatrConditions.isRejectedDownAtrLower;
conditions.isRsiCrossedOverOverSold = xatrConditions.isRsiCrossedOverOverSold; conditions.isRsiCrossedOverOverSold = xatrConditions.isRsiCrossedOverOverSold;
conditions.isRsiCrossedUnderOverSold = xatrConditions.isRsiCrossedUnderOverSold; conditions.isRsiCrossedUnderOverSold = xatrConditions.isRsiCrossedUnderOverSold;
conditions.isRsiCrossedOverOverBought = xatrConditions.isRsiCrossedOverOverBought; conditions.isRsiCrossedOverOverBought = xatrConditions.isRsiCrossedOverOverBought;
@@ -2191,22 +2211,22 @@ class XCX121Helper : public XCBase
// Conditions ... // Conditions ...
// //
conditions.isBreakDonLowUpper = xdonConditions.isBreakDonLowUpper; conditions.isBreakedDonLowUpper = xdonConditions.isBreakedDonLowUpper;
conditions.isBreakDonLowLower = xdonConditions.isBreakDonLowLower; conditions.isBreakedDonLowLower = xdonConditions.isBreakedDonLowLower;
conditions.isRejectDonLowUpper = xdonConditions.isRejectDonLowUpper; conditions.isRejectedDonLowUpper = xdonConditions.isRejectedDonLowUpper;
conditions.isRejectDonLowLower = xdonConditions.isRejectDonLowLower; conditions.isRejectedDonLowLower = xdonConditions.isRejectedDonLowLower;
conditions.isBreakDonOpenUpper = xdonConditions.isBreakDonOpenUpper; conditions.isBreakedDonOpenUpper = xdonConditions.isBreakedDonOpenUpper;
conditions.isBreakDonHighUpper = xdonConditions.isBreakDonHighUpper; conditions.isBreakedDonHighUpper = xdonConditions.isBreakedDonHighUpper;
conditions.isBreakDonOpenLower = xdonConditions.isBreakDonOpenLower; conditions.isBreakedDonOpenLower = xdonConditions.isBreakedDonOpenLower;
conditions.isBreakDonHighLower = xdonConditions.isBreakDonHighLower; conditions.isBreakedDonHighLower = xdonConditions.isBreakedDonHighLower;
conditions.isRejectDonOpenUpper = xdonConditions.isRejectDonOpenUpper; conditions.isRejectedDonOpenUpper = xdonConditions.isRejectedDonOpenUpper;
conditions.isRejectDonHighUpper = xdonConditions.isRejectDonHighUpper; conditions.isRejectedDonHighUpper = xdonConditions.isRejectedDonHighUpper;
conditions.isRejectDonOpenLower = xdonConditions.isRejectDonOpenLower; conditions.isRejectedDonOpenLower = xdonConditions.isRejectedDonOpenLower;
conditions.isRejectDonHighLower = xdonConditions.isRejectDonHighLower; conditions.isRejectedDonHighLower = xdonConditions.isRejectedDonHighLower;
conditions.isBreakDonCloseUpper = xdonConditions.isBreakDonCloseUpper; conditions.isBreakedDonCloseUpper = xdonConditions.isBreakedDonCloseUpper;
conditions.isBreakDonCloseLower = xdonConditions.isBreakDonCloseLower; conditions.isBreakedDonCloseLower = xdonConditions.isBreakedDonCloseLower;
conditions.isRejectDonCloseUpper = xdonConditions.isRejectDonCloseUpper; conditions.isRejectedDonCloseUpper = xdonConditions.isRejectedDonCloseUpper;
conditions.isRejectDonCloseLower = xdonConditions.isRejectDonCloseLower; conditions.isRejectedDonCloseLower = xdonConditions.isRejectedDonCloseLower;
// //
// XVWAP ... // XVWAP ...
@@ -2505,6 +2525,34 @@ class XCX121Helper : public XCBase
cBar // cBar //
); );
//
bool isRejectedUpPrevAtrUpper = IsBarReject(
prevAtrUpper,
X_DIRECTION_BULLISH,
cBar //
);
//
bool isRejectedDownPrevAtrUpper = IsBarReject(
prevAtrUpper,
X_DIRECTION_BEARISH,
cBar //
);
//
bool isRejectedUpPrevAtrLower = IsBarReject(
prevAtrLower,
X_DIRECTION_BULLISH,
cBar //
);
//
bool isRejectedDownPrevAtrLower = IsBarReject(
prevAtrLower,
X_DIRECTION_BEARISH,
cBar //
);
// //
bool isBreakedUpPrevAtrUpper = IsBarBreak( bool isBreakedUpPrevAtrUpper = IsBarBreak(
prevAtrUpper, prevAtrUpper,
@@ -2821,6 +2869,8 @@ class XCX121Helper : public XCBase
conditions.isAtrUpperCrossedUpPeak = isAtrUpperCrossedUpPeak; conditions.isAtrUpperCrossedUpPeak = isAtrUpperCrossedUpPeak;
conditions.isAtrLowerCrossedUpVale = isAtrLowerCrossedUpVale; conditions.isAtrLowerCrossedUpVale = isAtrLowerCrossedUpVale;
conditions.isVWapFastCrossedOverMid = isVWapFastCrossedOverMid; conditions.isVWapFastCrossedOverMid = isVWapFastCrossedOverMid;
conditions.isRejectedUpPrevAtrUpper = isRejectedUpPrevAtrUpper;
conditions.isRejectedUpPrevAtrLower = isRejectedUpPrevAtrLower;
conditions.isAtrUpperCrossedDownPeak = isAtrUpperCrossedDownPeak; conditions.isAtrUpperCrossedDownPeak = isAtrUpperCrossedDownPeak;
conditions.isAtrLowerCrossedDownVale = isAtrLowerCrossedDownVale; conditions.isAtrLowerCrossedDownVale = isAtrLowerCrossedDownVale;
conditions.isBreakedDownPrevAtrUpper = isBreakedDownPrevAtrUpper; conditions.isBreakedDownPrevAtrUpper = isBreakedDownPrevAtrUpper;
@@ -2831,6 +2881,8 @@ class XCX121Helper : public XCBase
conditions.isStrLowerCrossedOverVale = isStrLowerCrossedOverVale; conditions.isStrLowerCrossedOverVale = isStrLowerCrossedOverVale;
conditions.isStrLowerOverDonLowLower = isStrLowerOverDonLowLower; conditions.isStrLowerOverDonLowLower = isStrLowerOverDonLowLower;
conditions.isVWapFastCrossedOverSlow = isVWapFastCrossedOverSlow; conditions.isVWapFastCrossedOverSlow = isVWapFastCrossedOverSlow;
conditions.isRejectedDownPrevAtrUpper = isRejectedDownPrevAtrUpper;
conditions.isRejectedDownPrevAtrLower = isRejectedDownPrevAtrLower;
conditions.isVWapFastCrossedUnderSlow = isVWapFastCrossedUnderSlow; conditions.isVWapFastCrossedUnderSlow = isVWapFastCrossedUnderSlow;
conditions.isStrUpperOverDonHighUpper = isStrUpperOverDonHighUpper; conditions.isStrUpperOverDonHighUpper = isStrUpperOverDonHighUpper;
conditions.isStrLowerUnderDonLowLower = isStrLowerUnderDonLowLower; conditions.isStrLowerUnderDonLowLower = isStrLowerUnderDonLowLower;
+30 -30
View File
@@ -218,20 +218,20 @@ struct X121XATRConditions
bool isClosedUnderAtrLower; bool isClosedUnderAtrLower;
// //
bool isRejectUpAtrUpper; bool isRejectedUpAtrUpper;
bool isRejectDownAtrUpper; bool isRejectedDownAtrUpper;
// //
bool isRejectUpAtrLower; bool isRejectedUpAtrLower;
bool isRejectDownAtrLower; bool isRejectedDownAtrLower;
// //
bool isBreakedUpAtrUpper; bool isBreakedUpAtrUpper;
bool isBreakDownAtrUpper; bool isBreakedDownAtrUpper;
// //
bool isBreakedUpAtrLower; bool isBreakedUpAtrLower;
bool isBreakDownAtrLower; bool isBreakedDownAtrLower;
// //
// bool isCloseLower // bool isCloseLower
@@ -304,20 +304,20 @@ struct X121XATRConditions
isClosedUnderAtrLower = false; isClosedUnderAtrLower = false;
// //
isRejectUpAtrUpper = false; isRejectedUpAtrUpper = false;
isRejectDownAtrUpper = false; isRejectedDownAtrUpper = false;
// //
isRejectUpAtrLower = false; isRejectedUpAtrLower = false;
isRejectDownAtrLower = false; isRejectedDownAtrLower = false;
// //
isBreakedUpAtrUpper = false; isBreakedUpAtrUpper = false;
isBreakDownAtrUpper = false; isBreakedDownAtrUpper = false;
// //
isBreakedUpAtrLower = false; isBreakedUpAtrLower = false;
isBreakDownAtrLower = false; isBreakedDownAtrLower = false;
// //
// XDON ... // XDON ...
@@ -406,14 +406,14 @@ struct X121XATRConditions
ToString("isClosedOverAtrLower", isClosedOverAtrLower, ignoreFalseConditions, separator) + ToString("isClosedOverAtrLower", isClosedOverAtrLower, ignoreFalseConditions, separator) +
ToString("isClosedUnderAtrUpper", isClosedUnderAtrUpper, ignoreFalseConditions, separator) + ToString("isClosedUnderAtrUpper", isClosedUnderAtrUpper, ignoreFalseConditions, separator) +
ToString("isClosedUnderAtrLower", isClosedUnderAtrLower, ignoreFalseConditions, separator) + ToString("isClosedUnderAtrLower", isClosedUnderAtrLower, ignoreFalseConditions, separator) +
ToString("isRejectUpAtrUpper", isRejectUpAtrUpper, ignoreFalseConditions, separator) + ToString("isRejectedUpAtrUpper", isRejectedUpAtrUpper, ignoreFalseConditions, separator) +
ToString("isRejectDownAtrUpper", isRejectDownAtrUpper, ignoreFalseConditions, separator) + ToString("isRejectedDownAtrUpper", isRejectedDownAtrUpper, ignoreFalseConditions, separator) +
ToString("isRejectUpAtrLower", isRejectUpAtrLower, ignoreFalseConditions, separator) + ToString("isRejectedUpAtrLower", isRejectedUpAtrLower, ignoreFalseConditions, separator) +
ToString("isRejectDownAtrLower", isRejectDownAtrLower, ignoreFalseConditions, separator) + ToString("isRejectedDownAtrLower", isRejectedDownAtrLower, ignoreFalseConditions, separator) +
ToString("isBreakedUpAtrUpper", isBreakedUpAtrUpper, ignoreFalseConditions, separator) + ToString("isBreakedUpAtrUpper", isBreakedUpAtrUpper, ignoreFalseConditions, separator) +
ToString("isBreakDownAtrUpper", isBreakDownAtrUpper, ignoreFalseConditions, separator) + ToString("isBreakedDownAtrUpper", isBreakedDownAtrUpper, ignoreFalseConditions, separator) +
ToString("isBreakedUpAtrLower", isBreakedUpAtrLower, ignoreFalseConditions, separator) + ToString("isBreakedUpAtrLower", isBreakedUpAtrLower, ignoreFalseConditions, separator) +
ToString("isBreakDownAtrLower", isBreakDownAtrLower, ignoreFalseConditions, separator) + ToString("isBreakedDownAtrLower", isBreakedDownAtrLower, ignoreFalseConditions, separator) +
// //
"" ""
// //
@@ -1040,25 +1040,25 @@ class XCX121XATRHelper : public XCBaseHelper
bool isClosedUnderAtrLower = cBar.close < conditions.atrLowerBuffer[cIDX]; bool isClosedUnderAtrLower = cBar.close < conditions.atrLowerBuffer[cIDX];
// //
bool isRejectUpAtrUpper = IsBarReject( bool isRejectedUpAtrUpper = IsBarReject(
atrUpperBuffer[cIDX], atrUpperBuffer[cIDX],
X_DIRECTION_BULLISH, X_DIRECTION_BULLISH,
cBar // cBar //
); );
bool isRejectDownAtrUpper = IsBarReject( bool isRejectedDownAtrUpper = IsBarReject(
atrUpperBuffer[cIDX], atrUpperBuffer[cIDX],
X_DIRECTION_BEARISH, X_DIRECTION_BEARISH,
cBar // cBar //
); );
// //
bool isRejectUpAtrLower = IsBarReject( bool isRejectedUpAtrLower = IsBarReject(
atrLowerBuffer[cIDX], atrLowerBuffer[cIDX],
X_DIRECTION_BULLISH, X_DIRECTION_BULLISH,
cBar // cBar //
); );
; ;
bool isRejectDownAtrLower = IsBarReject( bool isRejectedDownAtrLower = IsBarReject(
atrLowerBuffer[cIDX], atrLowerBuffer[cIDX],
X_DIRECTION_BEARISH, X_DIRECTION_BEARISH,
cBar // cBar //
@@ -1071,7 +1071,7 @@ class XCX121XATRHelper : public XCBaseHelper
X_DIRECTION_BULLISH, X_DIRECTION_BULLISH,
cBar // cBar //
); );
bool isBreakDownAtrUpper = IsBarBreak( bool isBreakedDownAtrUpper = IsBarBreak(
atrUpperBuffer[cIDX], atrUpperBuffer[cIDX],
X_DIRECTION_BEARISH, X_DIRECTION_BEARISH,
cBar // cBar //
@@ -1083,7 +1083,7 @@ class XCX121XATRHelper : public XCBaseHelper
X_DIRECTION_BULLISH, X_DIRECTION_BULLISH,
cBar // cBar //
); );
bool isBreakDownAtrLower = IsBarBreak( bool isBreakedDownAtrLower = IsBarBreak(
atrLowerBuffer[cIDX], atrLowerBuffer[cIDX],
X_DIRECTION_BEARISH, X_DIRECTION_BEARISH,
cBar // cBar //
@@ -1092,16 +1092,16 @@ class XCX121XATRHelper : public XCBaseHelper
// //
conditions.isRsiOverSold = isRsiOverSold; conditions.isRsiOverSold = isRsiOverSold;
conditions.isRsiOverBought = isRsiOverBought; conditions.isRsiOverBought = isRsiOverBought;
conditions.isRejectUpAtrUpper = isRejectUpAtrUpper; conditions.isRejectedUpAtrUpper = isRejectedUpAtrUpper;
conditions.isRejectUpAtrLower = isRejectUpAtrLower; conditions.isRejectedUpAtrLower = isRejectedUpAtrLower;
conditions.isBreakedUpAtrUpper = isBreakedUpAtrUpper; conditions.isBreakedUpAtrUpper = isBreakedUpAtrUpper;
conditions.isBreakedUpAtrLower = isBreakedUpAtrLower; conditions.isBreakedUpAtrLower = isBreakedUpAtrLower;
conditions.isRejectDownAtrUpper = isRejectDownAtrUpper; conditions.isRejectedDownAtrUpper = isRejectedDownAtrUpper;
conditions.isRejectDownAtrLower = isRejectDownAtrLower; conditions.isRejectedDownAtrLower = isRejectedDownAtrLower;
conditions.isClosedOverAtrUpper = isClosedOverAtrUpper; conditions.isClosedOverAtrUpper = isClosedOverAtrUpper;
conditions.isClosedOverAtrLower = isClosedOverAtrLower; conditions.isClosedOverAtrLower = isClosedOverAtrLower;
conditions.isBreakDownAtrUpper = isBreakDownAtrUpper; conditions.isBreakedDownAtrUpper = isBreakedDownAtrUpper;
conditions.isBreakDownAtrLower = isBreakDownAtrLower; conditions.isBreakedDownAtrLower = isBreakedDownAtrLower;
conditions.isClosedUnderAtrUpper = isClosedUnderAtrUpper; conditions.isClosedUnderAtrUpper = isClosedUnderAtrUpper;
conditions.isClosedUnderAtrLower = isClosedUnderAtrLower; conditions.isClosedUnderAtrLower = isClosedUnderAtrLower;
conditions.isRsiCrossedOverOverSold = isRsiCrossedOverOverSold; conditions.isRsiCrossedOverOverSold = isRsiCrossedOverOverSold;
+80 -80
View File
@@ -176,28 +176,28 @@ struct X121XDONConditions
// Conditions ... // Conditions ...
// //
bool isRejectDonOpenUpper; bool isRejectedDonOpenUpper;
bool isRejectDonHighUpper; bool isRejectedDonHighUpper;
bool isRejectDonLowUpper; bool isRejectedDonLowUpper;
bool isRejectDonCloseUpper; bool isRejectedDonCloseUpper;
// //
bool isRejectDonOpenLower; bool isRejectedDonOpenLower;
bool isRejectDonHighLower; bool isRejectedDonHighLower;
bool isRejectDonLowLower; bool isRejectedDonLowLower;
bool isRejectDonCloseLower; bool isRejectedDonCloseLower;
// //
bool isBreakDonOpenUpper; bool isBreakedDonOpenUpper;
bool isBreakDonHighUpper; bool isBreakedDonHighUpper;
bool isBreakDonLowUpper; bool isBreakedDonLowUpper;
bool isBreakDonCloseUpper; bool isBreakedDonCloseUpper;
// //
bool isBreakDonOpenLower; bool isBreakedDonOpenLower;
bool isBreakDonHighLower; bool isBreakedDonHighLower;
bool isBreakDonLowLower; bool isBreakedDonLowLower;
bool isBreakDonCloseLower; bool isBreakedDonCloseLower;
// //
// Constructor ... // Constructor ...
@@ -247,28 +247,28 @@ struct X121XDONConditions
// Conditions ... // Conditions ...
// //
isRejectDonOpenUpper = false; isRejectedDonOpenUpper = false;
isRejectDonHighUpper = false; isRejectedDonHighUpper = false;
isRejectDonLowUpper = false; isRejectedDonLowUpper = false;
isRejectDonCloseUpper = false; isRejectedDonCloseUpper = false;
// //
isRejectDonOpenLower = false; isRejectedDonOpenLower = false;
isRejectDonHighLower = false; isRejectedDonHighLower = false;
isRejectDonLowLower = false; isRejectedDonLowLower = false;
isRejectDonCloseLower = false; isRejectedDonCloseLower = false;
// //
isBreakDonOpenUpper = false; isBreakedDonOpenUpper = false;
isBreakDonHighUpper = false; isBreakedDonHighUpper = false;
isBreakDonLowUpper = false; isBreakedDonLowUpper = false;
isBreakDonCloseUpper = false; isBreakedDonCloseUpper = false;
// //
isBreakDonOpenLower = false; isBreakedDonOpenLower = false;
isBreakDonHighLower = false; isBreakedDonHighLower = false;
isBreakDonLowLower = false; isBreakedDonLowLower = false;
isBreakDonCloseLower = false; isBreakedDonCloseLower = false;
} }
/** /**
@@ -341,25 +341,25 @@ struct X121XDONConditions
// //
string conditionsStr = string conditionsStr =
// //
ToString("isRejectDonOpenUpper", isRejectDonOpenUpper, ignoreFalseConditions, separator) + ToString("isRejectedDonOpenUpper", isRejectedDonOpenUpper, ignoreFalseConditions, separator) +
ToString("isRejectDonHighUpper", isRejectDonHighUpper, ignoreFalseConditions, separator) + ToString("isRejectedDonHighUpper", isRejectedDonHighUpper, ignoreFalseConditions, separator) +
ToString("isRejectDonLowUpper", isRejectDonLowUpper, ignoreFalseConditions, separator) + ToString("isRejectedDonLowUpper", isRejectedDonLowUpper, ignoreFalseConditions, separator) +
ToString("isRejectDonCloseUpper", isRejectDonCloseUpper, ignoreFalseConditions, separator) + ToString("isRejectedDonCloseUpper", isRejectedDonCloseUpper, ignoreFalseConditions, separator) +
// //
ToString("isRejectDonOpenLower", isRejectDonOpenLower, ignoreFalseConditions, separator) + ToString("isRejectedDonOpenLower", isRejectedDonOpenLower, ignoreFalseConditions, separator) +
ToString("isRejectDonHighLower", isRejectDonHighLower, ignoreFalseConditions, separator) + ToString("isRejectedDonHighLower", isRejectedDonHighLower, ignoreFalseConditions, separator) +
ToString("isRejectDonLowLower", isRejectDonLowLower, ignoreFalseConditions, separator) + ToString("isRejectedDonLowLower", isRejectedDonLowLower, ignoreFalseConditions, separator) +
ToString("isRejectDonCloseLower", isRejectDonCloseLower, ignoreFalseConditions, separator) + ToString("isRejectedDonCloseLower", isRejectedDonCloseLower, ignoreFalseConditions, separator) +
// //
ToString("isBreakDonOpenUpper", isBreakDonOpenUpper, ignoreFalseConditions, separator) + ToString("isBreakedDonOpenUpper", isBreakedDonOpenUpper, ignoreFalseConditions, separator) +
ToString("isBreakDonHighUpper", isBreakDonHighUpper, ignoreFalseConditions, separator) + ToString("isBreakedDonHighUpper", isBreakedDonHighUpper, ignoreFalseConditions, separator) +
ToString("isBreakDonLowUpper", isBreakDonLowUpper, ignoreFalseConditions, separator) + ToString("isBreakedDonLowUpper", isBreakedDonLowUpper, ignoreFalseConditions, separator) +
ToString("isBreakDonCloseUpper", isBreakDonCloseUpper, ignoreFalseConditions, separator) + ToString("isBreakedDonCloseUpper", isBreakedDonCloseUpper, ignoreFalseConditions, separator) +
// //
ToString("isBreakDonOpenLower", isBreakDonOpenLower, ignoreFalseConditions, separator) + ToString("isBreakedDonOpenLower", isBreakedDonOpenLower, ignoreFalseConditions, separator) +
ToString("isBreakDonHighLower", isBreakDonHighLower, ignoreFalseConditions, separator) + ToString("isBreakedDonHighLower", isBreakedDonHighLower, ignoreFalseConditions, separator) +
ToString("isBreakDonLowLower", isBreakDonLowLower, ignoreFalseConditions, separator) + ToString("isBreakedDonLowLower", isBreakedDonLowLower, ignoreFalseConditions, separator) +
ToString("isBreakDonCloseLower", isBreakDonCloseLower, ignoreFalseConditions, separator) + ToString("isBreakedDonCloseLower", isBreakedDonCloseLower, ignoreFalseConditions, separator) +
// //
"" ""
// //
@@ -1092,110 +1092,110 @@ class XCX121XDONHelper : public XCBaseHelper
int pIDX = cIDX + 1; int pIDX = cIDX + 1;
// //
bool isRejectDonOpenUpper = IsBarReject( bool isRejectedDonOpenUpper = IsBarReject(
donOpenUpperBuffer[cIDX], donOpenUpperBuffer[cIDX],
X_DIRECTION_BEARISH, X_DIRECTION_BEARISH,
cBar // cBar //
); );
bool isRejectDonHighUpper = IsBarReject( bool isRejectedDonHighUpper = IsBarReject(
donHighUpperBuffer[cIDX], donHighUpperBuffer[cIDX],
X_DIRECTION_BEARISH, X_DIRECTION_BEARISH,
cBar // cBar //
); );
bool isRejectDonLowUpper = IsBarReject( bool isRejectedDonLowUpper = IsBarReject(
donLowUpperBuffer[cIDX], donLowUpperBuffer[cIDX],
X_DIRECTION_BEARISH, X_DIRECTION_BEARISH,
cBar // cBar //
); );
bool isRejectDonCloseUpper = IsBarReject( bool isRejectedDonCloseUpper = IsBarReject(
donCloseUpperBuffer[cIDX], donCloseUpperBuffer[cIDX],
X_DIRECTION_BEARISH, X_DIRECTION_BEARISH,
cBar // cBar //
); );
// //
bool isRejectDonOpenLower = IsBarReject( bool isRejectedDonOpenLower = IsBarReject(
donOpenLowerBuffer[cIDX], donOpenLowerBuffer[cIDX],
X_DIRECTION_BULLISH, X_DIRECTION_BULLISH,
cBar // cBar //
); );
bool isRejectDonHighLower = IsBarReject( bool isRejectedDonHighLower = IsBarReject(
donHighLowerBuffer[cIDX], donHighLowerBuffer[cIDX],
X_DIRECTION_BULLISH, X_DIRECTION_BULLISH,
cBar // cBar //
); );
bool isRejectDonLowLower = IsBarReject( bool isRejectedDonLowLower = IsBarReject(
donLowLowerBuffer[cIDX], donLowLowerBuffer[cIDX],
X_DIRECTION_BULLISH, X_DIRECTION_BULLISH,
cBar // cBar //
); );
bool isRejectDonCloseLower = IsBarReject( bool isRejectedDonCloseLower = IsBarReject(
donCloseLowerBuffer[cIDX], donCloseLowerBuffer[cIDX],
X_DIRECTION_BULLISH, X_DIRECTION_BULLISH,
cBar // cBar //
); );
// //
bool isBreakDonOpenUpper = IsBarBreak( bool isBreakedDonOpenUpper = IsBarBreak(
donOpenUpperBuffer[cIDX], donOpenUpperBuffer[cIDX],
X_DIRECTION_BEARISH, X_DIRECTION_BEARISH,
cBar // cBar //
); );
bool isBreakDonHighUpper = IsBarBreak( bool isBreakedDonHighUpper = IsBarBreak(
donHighUpperBuffer[cIDX], donHighUpperBuffer[cIDX],
X_DIRECTION_BEARISH, X_DIRECTION_BEARISH,
cBar // cBar //
); );
bool isBreakDonLowUpper = IsBarBreak( bool isBreakedDonLowUpper = IsBarBreak(
donLowUpperBuffer[cIDX], donLowUpperBuffer[cIDX],
X_DIRECTION_BEARISH, X_DIRECTION_BEARISH,
cBar // cBar //
); );
bool isBreakDonCloseUpper = IsBarBreak( bool isBreakedDonCloseUpper = IsBarBreak(
donCloseUpperBuffer[cIDX], donCloseUpperBuffer[cIDX],
X_DIRECTION_BEARISH, X_DIRECTION_BEARISH,
cBar // cBar //
); );
// //
bool isBreakDonOpenLower = IsBarBreak( bool isBreakedDonOpenLower = IsBarBreak(
donOpenLowerBuffer[cIDX], donOpenLowerBuffer[cIDX],
X_DIRECTION_BULLISH, X_DIRECTION_BULLISH,
cBar // cBar //
); );
bool isBreakDonHighLower = IsBarBreak( bool isBreakedDonHighLower = IsBarBreak(
donHighLowerBuffer[cIDX], donHighLowerBuffer[cIDX],
X_DIRECTION_BULLISH, X_DIRECTION_BULLISH,
cBar // cBar //
); );
bool isBreakDonLowLower = IsBarBreak( bool isBreakedDonLowLower = IsBarBreak(
donLowLowerBuffer[cIDX], donLowLowerBuffer[cIDX],
X_DIRECTION_BULLISH, X_DIRECTION_BULLISH,
cBar // cBar //
); );
bool isBreakDonCloseLower = IsBarBreak( bool isBreakedDonCloseLower = IsBarBreak(
donCloseLowerBuffer[cIDX], donCloseLowerBuffer[cIDX],
X_DIRECTION_BULLISH, X_DIRECTION_BULLISH,
cBar // cBar //
); );
// //
conditions.isBreakDonLowUpper = isBreakDonLowUpper; conditions.isBreakedDonLowUpper = isBreakedDonLowUpper;
conditions.isBreakDonLowLower = isBreakDonLowLower; conditions.isBreakedDonLowLower = isBreakedDonLowLower;
conditions.isRejectDonLowUpper = isRejectDonLowUpper; conditions.isRejectedDonLowUpper = isRejectedDonLowUpper;
conditions.isRejectDonLowLower = isRejectDonLowLower; conditions.isRejectedDonLowLower = isRejectedDonLowLower;
conditions.isBreakDonOpenUpper = isBreakDonOpenUpper; conditions.isBreakedDonOpenUpper = isBreakedDonOpenUpper;
conditions.isBreakDonHighUpper = isBreakDonHighUpper; conditions.isBreakedDonHighUpper = isBreakedDonHighUpper;
conditions.isBreakDonOpenLower = isBreakDonOpenLower; conditions.isBreakedDonOpenLower = isBreakedDonOpenLower;
conditions.isBreakDonHighLower = isBreakDonHighLower; conditions.isBreakedDonHighLower = isBreakedDonHighLower;
conditions.isRejectDonOpenUpper = isRejectDonOpenUpper; conditions.isRejectedDonOpenUpper = isRejectedDonOpenUpper;
conditions.isRejectDonOpenLower = isRejectDonOpenLower; conditions.isRejectedDonOpenLower = isRejectedDonOpenLower;
conditions.isRejectDonHighUpper = isRejectDonHighUpper; conditions.isRejectedDonHighUpper = isRejectedDonHighUpper;
conditions.isRejectDonHighLower = isRejectDonHighLower; conditions.isRejectedDonHighLower = isRejectedDonHighLower;
conditions.isBreakDonCloseUpper = isBreakDonCloseUpper; conditions.isBreakedDonCloseUpper = isBreakedDonCloseUpper;
conditions.isBreakDonCloseLower = isBreakDonCloseLower; conditions.isBreakedDonCloseLower = isBreakedDonCloseLower;
conditions.isRejectDonCloseUpper = isRejectDonCloseUpper; conditions.isRejectedDonCloseUpper = isRejectedDonCloseUpper;
conditions.isRejectDonCloseLower = isRejectDonCloseLower; conditions.isRejectedDonCloseLower = isRejectedDonCloseLower;
// //
return result; return result;
+8 -3
View File
@@ -6472,13 +6472,18 @@ bool IsBarReject(
// //
result = result =
//
isUp isUp
? bar.low < value && ? bar.IsBullish() &&
bar.low < value &&
bar.GetDown() > value bar.GetDown() > value
: isDown : isDown
? bar.high > value && ? bar.IsBearish() &&
bar.high > value &&
bar.GetUp() < value bar.GetUp() < value
: false; : false
//
;
// //
return result; return result;
+1 -2
View File
@@ -796,9 +796,8 @@ bool DetectX121SMCXSiganlSetup(
// consolidationXConditions.isRsiSlopeBullish && // consolidationXConditions.isRsiSlopeBullish &&
// visionXConditions.isRsiCrossedOverOverSold // visionXConditions.isRsiCrossedOverOverSold
// //
// cBar.IsBullish() &&
decisionXConditions.isBreakedUpPrevAtrLower // && decisionXConditions.isBreakedUpPrevAtrLower // &&
// cBar.open > analyseXConditions.atrLowerBuffer[0] // decisionXConditions.isRejectedPrevAtrLower
// //
; ;