last ...
This commit is contained in:
@@ -230,12 +230,12 @@ struct X121Conditions
|
||||
bool isVwapSlowSlopeBearish;
|
||||
|
||||
//
|
||||
bool isRsiOverSold;
|
||||
bool isRsiOverBought;
|
||||
bool isRsiCrossedOverOverSold;
|
||||
bool isRsiCrossedUnderOverSold;
|
||||
bool isRsiCrossedOverOverBought;
|
||||
bool isRsiCrossedUnderOverBought;
|
||||
bool isRsiOverSold;
|
||||
bool isRsiCrossedUnderOverSold;
|
||||
bool isRsiCrossedOverOverSold;
|
||||
|
||||
//
|
||||
bool isClosedOverAtrUpper;
|
||||
@@ -252,11 +252,11 @@ struct X121Conditions
|
||||
bool isRejectDownAtrLower;
|
||||
|
||||
//
|
||||
bool isBreakUpAtrUpper;
|
||||
bool isBreakedUpAtrUpper;
|
||||
bool isBreakDownAtrUpper;
|
||||
|
||||
//
|
||||
bool isBreakUpAtrLower;
|
||||
bool isBreakedUpAtrLower;
|
||||
bool isBreakDownAtrLower;
|
||||
|
||||
//
|
||||
@@ -373,6 +373,12 @@ struct X121Conditions
|
||||
bool isBreakedDownPrevCheSE1;
|
||||
bool isBreakedDownPrevCheSE2;
|
||||
|
||||
//
|
||||
bool isClosedOverCheMin;
|
||||
bool isClosedOverCheMax;
|
||||
bool isClosedUnderCheMin;
|
||||
bool isClosedUnderCheMax;
|
||||
|
||||
//
|
||||
bool isSarIncreased;
|
||||
bool isSarDecreased;
|
||||
@@ -702,11 +708,11 @@ struct X121Conditions
|
||||
isRejectDownAtrLower = false;
|
||||
|
||||
//
|
||||
isBreakUpAtrUpper = false;
|
||||
isBreakedUpAtrUpper = false;
|
||||
isBreakDownAtrUpper = false;
|
||||
|
||||
//
|
||||
isBreakUpAtrLower = false;
|
||||
isBreakedUpAtrLower = false;
|
||||
isBreakDownAtrLower = false;
|
||||
|
||||
//
|
||||
@@ -846,6 +852,14 @@ struct X121Conditions
|
||||
isCheSwitchedToBullish = false;
|
||||
isCheSwitchedToBearish = false;
|
||||
|
||||
//
|
||||
isClosedOverCheMin = false;
|
||||
isClosedOverCheMax = false;
|
||||
|
||||
//
|
||||
isClosedUnderCheMin = false;
|
||||
isClosedUnderCheMax = false;
|
||||
|
||||
//
|
||||
// Complex Conditions ...
|
||||
|
||||
@@ -1114,9 +1128,9 @@ struct X121Conditions
|
||||
ToString("isRejectDownAtrUpper", isRejectDownAtrUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectUpAtrLower", isRejectUpAtrLower, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectDownAtrLower", isRejectDownAtrLower, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakUpAtrUpper", isBreakUpAtrUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedUpAtrUpper", isBreakedUpAtrUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakDownAtrUpper", isBreakDownAtrUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakUpAtrLower", isBreakUpAtrLower, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedUpAtrLower", isBreakedUpAtrLower, ignoreFalseConditions, separator) +
|
||||
//
|
||||
"-----------------------" + separator +
|
||||
"DON ..." + separator +
|
||||
@@ -1181,6 +1195,10 @@ struct X121Conditions
|
||||
ToString("isCheBearish", isCheBearish, ignoreFalseConditions, separator) +
|
||||
ToString("isCheSwitchedToBullish", isCheSwitchedToBullish, ignoreFalseConditions, separator) +
|
||||
ToString("isCheSwitchedToBearish", isCheSwitchedToBearish, ignoreFalseConditions, separator) +
|
||||
ToString("isClosedOverCheMin", isClosedOverCheMin, ignoreFalseConditions, separator) +
|
||||
ToString("isClosedOverCheMax", isClosedOverCheMax, ignoreFalseConditions, separator) +
|
||||
ToString("isClosedUnderCheMin", isClosedUnderCheMin, ignoreFalseConditions, separator) +
|
||||
ToString("isClosedUnderCheMax", isClosedUnderCheMax, ignoreFalseConditions, separator) +
|
||||
//
|
||||
"-----------------------" + separator +
|
||||
"Slopes ..." + separator +
|
||||
@@ -1979,8 +1997,8 @@ class XCX121Helper : public XCBase
|
||||
//
|
||||
conditions.isRsiOverSold = xatrConditions.isRsiOverSold;
|
||||
conditions.isRsiOverBought = xatrConditions.isRsiOverBought;
|
||||
conditions.isBreakUpAtrUpper = xatrConditions.isBreakUpAtrUpper;
|
||||
conditions.isBreakUpAtrLower = xatrConditions.isBreakUpAtrLower;
|
||||
conditions.isBreakedUpAtrUpper = xatrConditions.isBreakedUpAtrUpper;
|
||||
conditions.isBreakedUpAtrLower = xatrConditions.isBreakedUpAtrLower;
|
||||
conditions.isClosedOverAtrUpper = xatrConditions.isClosedOverAtrUpper;
|
||||
conditions.isRejectUpAtrUpper = xatrConditions.isRejectUpAtrUpper;
|
||||
conditions.isRejectUpAtrLower = xatrConditions.isRejectUpAtrLower;
|
||||
@@ -2104,6 +2122,10 @@ class XCX121Helper : public XCBase
|
||||
conditions.isChe1Bearish = xcheConditions.isChe1Bearish;
|
||||
conditions.isChe2Bullish = xcheConditions.isChe2Bullish;
|
||||
conditions.isChe2Bearish = xcheConditions.isChe2Bearish;
|
||||
conditions.isClosedOverCheMin = xcheConditions.isClosedOverCheMin;
|
||||
conditions.isClosedOverCheMax = xcheConditions.isClosedOverCheMax;
|
||||
conditions.isClosedUnderCheMin = xcheConditions.isClosedUnderCheMin;
|
||||
conditions.isClosedUnderCheMax = xcheConditions.isClosedUnderCheMax;
|
||||
conditions.isCheSwitchedToBullish = xcheConditions.isCheSwitchedToBullish;
|
||||
conditions.isCheSwitchedToBearish = xcheConditions.isCheSwitchedToBearish;
|
||||
conditions.isChe1SwitchedToBullish = xcheConditions.isChe1SwitchedToBullish;
|
||||
|
||||
@@ -226,11 +226,11 @@ struct X121XATRConditions
|
||||
bool isRejectDownAtrLower;
|
||||
|
||||
//
|
||||
bool isBreakUpAtrUpper;
|
||||
bool isBreakedUpAtrUpper;
|
||||
bool isBreakDownAtrUpper;
|
||||
|
||||
//
|
||||
bool isBreakUpAtrLower;
|
||||
bool isBreakedUpAtrLower;
|
||||
bool isBreakDownAtrLower;
|
||||
|
||||
//
|
||||
@@ -312,11 +312,11 @@ struct X121XATRConditions
|
||||
isRejectDownAtrLower = false;
|
||||
|
||||
//
|
||||
isBreakUpAtrUpper = false;
|
||||
isBreakedUpAtrUpper = false;
|
||||
isBreakDownAtrUpper = false;
|
||||
|
||||
//
|
||||
isBreakUpAtrLower = false;
|
||||
isBreakedUpAtrLower = false;
|
||||
isBreakDownAtrLower = false;
|
||||
|
||||
//
|
||||
@@ -410,9 +410,9 @@ struct X121XATRConditions
|
||||
ToString("isRejectDownAtrUpper", isRejectDownAtrUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectUpAtrLower", isRejectUpAtrLower, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectDownAtrLower", isRejectDownAtrLower, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakUpAtrUpper", isBreakUpAtrUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedUpAtrUpper", isBreakedUpAtrUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakDownAtrUpper", isBreakDownAtrUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakUpAtrLower", isBreakUpAtrLower, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedUpAtrLower", isBreakedUpAtrLower, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakDownAtrLower", isBreakDownAtrLower, ignoreFalseConditions, separator) +
|
||||
//
|
||||
""
|
||||
@@ -1066,7 +1066,7 @@ class XCX121XATRHelper : public XCBaseHelper
|
||||
;
|
||||
|
||||
//
|
||||
bool isBreakUpAtrUpper = IsBarBreak(
|
||||
bool isBreakedUpAtrUpper = IsBarBreak(
|
||||
atrUpperBuffer[cIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
@@ -1078,7 +1078,7 @@ class XCX121XATRHelper : public XCBaseHelper
|
||||
);
|
||||
|
||||
//
|
||||
bool isBreakUpAtrLower = IsBarBreak(
|
||||
bool isBreakedUpAtrLower = IsBarBreak(
|
||||
atrLowerBuffer[cIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
@@ -1094,8 +1094,8 @@ class XCX121XATRHelper : public XCBaseHelper
|
||||
conditions.isRsiOverBought = isRsiOverBought;
|
||||
conditions.isRejectUpAtrUpper = isRejectUpAtrUpper;
|
||||
conditions.isRejectUpAtrLower = isRejectUpAtrLower;
|
||||
conditions.isBreakUpAtrUpper = isBreakUpAtrUpper;
|
||||
conditions.isBreakUpAtrLower = isBreakUpAtrLower;
|
||||
conditions.isBreakedUpAtrUpper = isBreakedUpAtrUpper;
|
||||
conditions.isBreakedUpAtrLower = isBreakedUpAtrLower;
|
||||
conditions.isRejectDownAtrUpper = isRejectDownAtrUpper;
|
||||
conditions.isRejectDownAtrLower = isRejectDownAtrLower;
|
||||
conditions.isClosedOverAtrUpper = isClosedOverAtrUpper;
|
||||
@@ -1108,7 +1108,7 @@ class XCX121XATRHelper : public XCBaseHelper
|
||||
conditions.isRsiCrossedUnderOverSold = isRsiCrossedUnderOverSold;
|
||||
conditions.isRsiCrossedOverOverBought = isRsiCrossedOverOverBought;
|
||||
conditions.isRsiCrossedUnderOverBought = isRsiCrossedUnderOverBought;
|
||||
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -200,7 +200,12 @@ struct X121XCHEConditions
|
||||
bool isCheSwitchedToBearish;
|
||||
|
||||
//
|
||||
// bool isCloseLower
|
||||
bool isClosedOverCheMin;
|
||||
bool isClosedOverCheMax;
|
||||
|
||||
//
|
||||
bool isClosedUnderCheMin;
|
||||
bool isClosedUnderCheMax;
|
||||
|
||||
//
|
||||
// Constructor ...
|
||||
@@ -274,7 +279,12 @@ struct X121XCHEConditions
|
||||
isCheSwitchedToBearish = false;
|
||||
|
||||
//
|
||||
// XDON ...
|
||||
isClosedOverCheMin = false;
|
||||
isClosedOverCheMax = false;
|
||||
|
||||
//
|
||||
isClosedUnderCheMin = false;
|
||||
isClosedUnderCheMax = false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -359,6 +369,10 @@ struct X121XCHEConditions
|
||||
ToString("isCheBearish", isCheBearish, ignoreFalseConditions, separator) +
|
||||
ToString("isCheSwitchedToBullish", isCheSwitchedToBullish, ignoreFalseConditions, separator) +
|
||||
ToString("isCheSwitchedToBearish", isCheSwitchedToBearish, ignoreFalseConditions, separator) +
|
||||
ToString("isClosedOverCheMin", isClosedOverCheMin, ignoreFalseConditions, separator) +
|
||||
ToString("isClosedOverCheMax", isClosedOverCheMax, ignoreFalseConditions, separator) +
|
||||
ToString("isClosedUnderCheMin", isClosedUnderCheMin, ignoreFalseConditions, separator) +
|
||||
ToString("isClosedUnderCheMax", isClosedUnderCheMax, ignoreFalseConditions, separator) +
|
||||
//
|
||||
""
|
||||
//
|
||||
@@ -1108,6 +1122,55 @@ class XCX121XCHEHelper : public XCBaseHelper
|
||||
!isCheBullishPrev;
|
||||
bool isCheSwitchedToBearish = isCheBearish &&
|
||||
!isCheBearishPrev;
|
||||
|
||||
//
|
||||
double ches[];
|
||||
double prevCheLE1 = le1Buffer[pIDX];
|
||||
double prevCheLE2 = le2Buffer[pIDX];
|
||||
double prevCheSE1 = se1Buffer[pIDX];
|
||||
double prevCheSE2 = se2Buffer[pIDX];
|
||||
if (prevCheLE1 != EMPTY_VALUE)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
prevCheLE1,
|
||||
ches //
|
||||
);
|
||||
}
|
||||
if (prevCheLE2 != EMPTY_VALUE)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
prevCheLE2,
|
||||
ches //
|
||||
);
|
||||
}
|
||||
if (prevCheSE1 != EMPTY_VALUE)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
prevCheSE1,
|
||||
ches //
|
||||
);
|
||||
}
|
||||
if (prevCheSE2 != EMPTY_VALUE)
|
||||
{
|
||||
//
|
||||
Add(
|
||||
prevCheSE2,
|
||||
ches //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
double cheMin = GetMin(ches);
|
||||
double cheMax = GetMax(ches);
|
||||
|
||||
//
|
||||
bool isClosedOverCheMin = cBar.close > cheMin;
|
||||
bool isClosedOverCheMax = cBar.close > cheMax;
|
||||
bool isClosedUnderCheMin = cBar.close < cheMin;
|
||||
bool isClosedUnderCheMax = cBar.close < cheMax;
|
||||
|
||||
//
|
||||
conditions.isChe1Bullish = isChe1Bullish;
|
||||
@@ -1122,6 +1185,10 @@ class XCX121XCHEHelper : public XCBaseHelper
|
||||
conditions.isCheBearish = isCheBearish;
|
||||
conditions.isCheSwitchedToBullish = isCheSwitchedToBullish;
|
||||
conditions.isCheSwitchedToBearish = isCheSwitchedToBearish;
|
||||
conditions.isClosedOverCheMin = isClosedOverCheMin;
|
||||
conditions.isClosedOverCheMax = isClosedOverCheMax;
|
||||
conditions.isClosedUnderCheMin = isClosedUnderCheMin;
|
||||
conditions.isClosedUnderCheMax = isClosedUnderCheMax;
|
||||
|
||||
//
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user