apply last POI Changes Refctor and Resolve all Side Affect Issues on X121 SMC Expert Projects ...
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -220,22 +220,6 @@ struct X121XATRConditions
|
||||
bool isClosedUnderAtrUpper;
|
||||
bool isClosedUnderAtrLower;
|
||||
|
||||
//
|
||||
bool isRejectedUpAtrUpper;
|
||||
bool isRejectedDownAtrUpper;
|
||||
|
||||
//
|
||||
bool isRejectedUpAtrLower;
|
||||
bool isRejectedDownAtrLower;
|
||||
|
||||
//
|
||||
bool isBreakedUpAtrUpper;
|
||||
bool isBreakedDownAtrUpper;
|
||||
|
||||
//
|
||||
bool isBreakedUpAtrLower;
|
||||
bool isBreakedDownAtrLower;
|
||||
|
||||
//
|
||||
// bool isCloseLower
|
||||
|
||||
@@ -306,22 +290,6 @@ struct X121XATRConditions
|
||||
isClosedUnderAtrUpper = false;
|
||||
isClosedUnderAtrLower = false;
|
||||
|
||||
//
|
||||
isRejectedUpAtrUpper = false;
|
||||
isRejectedDownAtrUpper = false;
|
||||
|
||||
//
|
||||
isRejectedUpAtrLower = false;
|
||||
isRejectedDownAtrLower = false;
|
||||
|
||||
//
|
||||
isBreakedUpAtrUpper = false;
|
||||
isBreakedDownAtrUpper = false;
|
||||
|
||||
//
|
||||
isBreakedUpAtrLower = false;
|
||||
isBreakedDownAtrLower = false;
|
||||
|
||||
//
|
||||
ZeroMemory(this);
|
||||
}
|
||||
@@ -409,14 +377,6 @@ struct X121XATRConditions
|
||||
ToString("isClosedOverAtrLower", isClosedOverAtrLower, ignoreFalseConditions, separator) +
|
||||
ToString("isClosedUnderAtrUpper", isClosedUnderAtrUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isClosedUnderAtrLower", isClosedUnderAtrLower, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectedUpAtrUpper", isRejectedUpAtrUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectedDownAtrUpper", isRejectedDownAtrUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectedUpAtrLower", isRejectedUpAtrLower, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectedDownAtrLower", isRejectedDownAtrLower, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedUpAtrUpper", isBreakedUpAtrUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedDownAtrUpper", isBreakedDownAtrUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedUpAtrLower", isBreakedUpAtrLower, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedDownAtrLower", isBreakedDownAtrLower, ignoreFalseConditions, separator) +
|
||||
//
|
||||
""
|
||||
//
|
||||
@@ -1048,69 +1008,11 @@ class XCX121XATRHelper : public XCBaseHelper
|
||||
bool isClosedUnderAtrUpper = cBar.close < conditions.atrUpperBuffer[cIDX];
|
||||
bool isClosedUnderAtrLower = cBar.close < conditions.atrLowerBuffer[cIDX];
|
||||
|
||||
//
|
||||
bool isRejectedUpAtrUpper = IsBarReject(
|
||||
atrUpperBuffer[cIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
);
|
||||
bool isRejectedDownAtrUpper = IsBarReject(
|
||||
atrUpperBuffer[cIDX],
|
||||
X_DIRECTION_BEARISH,
|
||||
cBar //
|
||||
);
|
||||
|
||||
//
|
||||
bool isRejectedUpAtrLower = IsBarReject(
|
||||
atrLowerBuffer[cIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
);
|
||||
;
|
||||
bool isRejectedDownAtrLower = IsBarReject(
|
||||
atrLowerBuffer[cIDX],
|
||||
X_DIRECTION_BEARISH,
|
||||
cBar //
|
||||
);
|
||||
;
|
||||
|
||||
//
|
||||
bool isBreakedUpAtrUpper = IsBarBreak(
|
||||
atrUpperBuffer[cIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
);
|
||||
bool isBreakedDownAtrUpper = IsBarBreak(
|
||||
atrUpperBuffer[cIDX],
|
||||
X_DIRECTION_BEARISH,
|
||||
cBar //
|
||||
);
|
||||
|
||||
//
|
||||
bool isBreakedUpAtrLower = IsBarBreak(
|
||||
atrLowerBuffer[cIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
);
|
||||
bool isBreakedDownAtrLower = IsBarBreak(
|
||||
atrLowerBuffer[cIDX],
|
||||
X_DIRECTION_BEARISH,
|
||||
cBar //
|
||||
);
|
||||
|
||||
//
|
||||
conditions.isRsiOverSold = isRsiOverSold;
|
||||
conditions.isRsiOverBought = isRsiOverBought;
|
||||
conditions.isRejectedUpAtrUpper = isRejectedUpAtrUpper;
|
||||
conditions.isRejectedUpAtrLower = isRejectedUpAtrLower;
|
||||
conditions.isBreakedUpAtrUpper = isBreakedUpAtrUpper;
|
||||
conditions.isBreakedUpAtrLower = isBreakedUpAtrLower;
|
||||
conditions.isRejectedDownAtrUpper = isRejectedDownAtrUpper;
|
||||
conditions.isRejectedDownAtrLower = isRejectedDownAtrLower;
|
||||
conditions.isClosedOverAtrUpper = isClosedOverAtrUpper;
|
||||
conditions.isClosedOverAtrLower = isClosedOverAtrLower;
|
||||
conditions.isBreakedDownAtrUpper = isBreakedDownAtrUpper;
|
||||
conditions.isBreakedDownAtrLower = isBreakedDownAtrLower;
|
||||
conditions.isClosedUnderAtrUpper = isClosedUnderAtrUpper;
|
||||
conditions.isClosedUnderAtrLower = isClosedUnderAtrLower;
|
||||
conditions.isRsiCrossedOverOverSold = isRsiCrossedOverOverSold;
|
||||
|
||||
@@ -178,30 +178,6 @@ struct X121XDONConditions
|
||||
//
|
||||
// Conditions ...
|
||||
|
||||
//
|
||||
bool isRejectedDonOpenUpper;
|
||||
bool isRejectedDonHighUpper;
|
||||
bool isRejectedDonLowUpper;
|
||||
bool isRejectedDonCloseUpper;
|
||||
|
||||
//
|
||||
bool isRejectedDonOpenLower;
|
||||
bool isRejectedDonHighLower;
|
||||
bool isRejectedDonLowLower;
|
||||
bool isRejectedDonCloseLower;
|
||||
|
||||
//
|
||||
bool isBreakedDonOpenUpper;
|
||||
bool isBreakedDonHighUpper;
|
||||
bool isBreakedDonLowUpper;
|
||||
bool isBreakedDonCloseUpper;
|
||||
|
||||
//
|
||||
bool isBreakedDonOpenLower;
|
||||
bool isBreakedDonHighLower;
|
||||
bool isBreakedDonLowLower;
|
||||
bool isBreakedDonCloseLower;
|
||||
|
||||
//
|
||||
// Constructor ...
|
||||
X121XDONConditions()
|
||||
@@ -249,30 +225,6 @@ struct X121XDONConditions
|
||||
//
|
||||
// Conditions ...
|
||||
|
||||
//
|
||||
isRejectedDonOpenUpper = false;
|
||||
isRejectedDonHighUpper = false;
|
||||
isRejectedDonLowUpper = false;
|
||||
isRejectedDonCloseUpper = false;
|
||||
|
||||
//
|
||||
isRejectedDonOpenLower = false;
|
||||
isRejectedDonHighLower = false;
|
||||
isRejectedDonLowLower = false;
|
||||
isRejectedDonCloseLower = false;
|
||||
|
||||
//
|
||||
isBreakedDonOpenUpper = false;
|
||||
isBreakedDonHighUpper = false;
|
||||
isBreakedDonLowUpper = false;
|
||||
isBreakedDonCloseUpper = false;
|
||||
|
||||
//
|
||||
isBreakedDonOpenLower = false;
|
||||
isBreakedDonHighLower = false;
|
||||
isBreakedDonLowLower = false;
|
||||
isBreakedDonCloseLower = false;
|
||||
|
||||
//
|
||||
ZeroMemory(this);
|
||||
}
|
||||
@@ -347,25 +299,6 @@ struct X121XDONConditions
|
||||
//
|
||||
string conditionsStr =
|
||||
//
|
||||
ToString("isRejectedDonOpenUpper", isRejectedDonOpenUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectedDonHighUpper", isRejectedDonHighUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectedDonLowUpper", isRejectedDonLowUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectedDonCloseUpper", isRejectedDonCloseUpper, ignoreFalseConditions, separator) +
|
||||
//
|
||||
ToString("isRejectedDonOpenLower", isRejectedDonOpenLower, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectedDonHighLower", isRejectedDonHighLower, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectedDonLowLower", isRejectedDonLowLower, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectedDonCloseLower", isRejectedDonCloseLower, ignoreFalseConditions, separator) +
|
||||
//
|
||||
ToString("isBreakedDonOpenUpper", isBreakedDonOpenUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedDonHighUpper", isBreakedDonHighUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedDonLowUpper", isBreakedDonLowUpper, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedDonCloseUpper", isBreakedDonCloseUpper, ignoreFalseConditions, separator) +
|
||||
//
|
||||
ToString("isBreakedDonOpenLower", isBreakedDonOpenLower, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedDonHighLower", isBreakedDonHighLower, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedDonLowLower", isBreakedDonLowLower, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedDonCloseLower", isBreakedDonCloseLower, ignoreFalseConditions, separator) +
|
||||
//
|
||||
""
|
||||
//
|
||||
@@ -1102,112 +1035,6 @@ class XCX121XDONHelper : public XCBaseHelper
|
||||
//
|
||||
int cIDX = 1;
|
||||
int pIDX = cIDX + 1;
|
||||
|
||||
//
|
||||
bool isRejectedDonOpenUpper = IsBarReject(
|
||||
donOpenUpperBuffer[cIDX],
|
||||
X_DIRECTION_BEARISH,
|
||||
cBar //
|
||||
);
|
||||
bool isRejectedDonHighUpper = IsBarReject(
|
||||
donHighUpperBuffer[cIDX],
|
||||
X_DIRECTION_BEARISH,
|
||||
cBar //
|
||||
);
|
||||
bool isRejectedDonLowUpper = IsBarReject(
|
||||
donLowUpperBuffer[cIDX],
|
||||
X_DIRECTION_BEARISH,
|
||||
cBar //
|
||||
);
|
||||
bool isRejectedDonCloseUpper = IsBarReject(
|
||||
donCloseUpperBuffer[cIDX],
|
||||
X_DIRECTION_BEARISH,
|
||||
cBar //
|
||||
);
|
||||
|
||||
//
|
||||
bool isRejectedDonOpenLower = IsBarReject(
|
||||
donOpenLowerBuffer[cIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
);
|
||||
bool isRejectedDonHighLower = IsBarReject(
|
||||
donHighLowerBuffer[cIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
);
|
||||
bool isRejectedDonLowLower = IsBarReject(
|
||||
donLowLowerBuffer[cIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
);
|
||||
bool isRejectedDonCloseLower = IsBarReject(
|
||||
donCloseLowerBuffer[cIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
);
|
||||
|
||||
//
|
||||
bool isBreakedDonOpenUpper = IsBarBreak(
|
||||
donOpenUpperBuffer[cIDX],
|
||||
X_DIRECTION_BEARISH,
|
||||
cBar //
|
||||
);
|
||||
bool isBreakedDonHighUpper = IsBarBreak(
|
||||
donHighUpperBuffer[cIDX],
|
||||
X_DIRECTION_BEARISH,
|
||||
cBar //
|
||||
);
|
||||
bool isBreakedDonLowUpper = IsBarBreak(
|
||||
donLowUpperBuffer[cIDX],
|
||||
X_DIRECTION_BEARISH,
|
||||
cBar //
|
||||
);
|
||||
bool isBreakedDonCloseUpper = IsBarBreak(
|
||||
donCloseUpperBuffer[cIDX],
|
||||
X_DIRECTION_BEARISH,
|
||||
cBar //
|
||||
);
|
||||
|
||||
//
|
||||
bool isBreakedDonOpenLower = IsBarBreak(
|
||||
donOpenLowerBuffer[cIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
);
|
||||
bool isBreakedDonHighLower = IsBarBreak(
|
||||
donHighLowerBuffer[cIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
);
|
||||
bool isBreakedDonLowLower = IsBarBreak(
|
||||
donLowLowerBuffer[cIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
);
|
||||
bool isBreakedDonCloseLower = IsBarBreak(
|
||||
donCloseLowerBuffer[cIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
);
|
||||
|
||||
//
|
||||
conditions.isBreakedDonLowUpper = isBreakedDonLowUpper;
|
||||
conditions.isBreakedDonLowLower = isBreakedDonLowLower;
|
||||
conditions.isRejectedDonLowUpper = isRejectedDonLowUpper;
|
||||
conditions.isRejectedDonLowLower = isRejectedDonLowLower;
|
||||
conditions.isBreakedDonOpenUpper = isBreakedDonOpenUpper;
|
||||
conditions.isBreakedDonHighUpper = isBreakedDonHighUpper;
|
||||
conditions.isBreakedDonOpenLower = isBreakedDonOpenLower;
|
||||
conditions.isBreakedDonHighLower = isBreakedDonHighLower;
|
||||
conditions.isRejectedDonOpenUpper = isRejectedDonOpenUpper;
|
||||
conditions.isRejectedDonOpenLower = isRejectedDonOpenLower;
|
||||
conditions.isRejectedDonHighUpper = isRejectedDonHighUpper;
|
||||
conditions.isRejectedDonHighLower = isRejectedDonHighLower;
|
||||
conditions.isBreakedDonCloseUpper = isBreakedDonCloseUpper;
|
||||
conditions.isBreakedDonCloseLower = isBreakedDonCloseLower;
|
||||
conditions.isRejectedDonCloseUpper = isRejectedDonCloseUpper;
|
||||
conditions.isRejectedDonCloseLower = isRejectedDonCloseLower;
|
||||
|
||||
//
|
||||
Cleanup();
|
||||
|
||||
@@ -179,20 +179,6 @@ struct X121XHKConditions
|
||||
bool isRawHKClosedOverSMHK;
|
||||
bool isRawHKClosedUnderSMHK;
|
||||
|
||||
//
|
||||
bool isBreakedUpSMHK;
|
||||
bool isBreakedUpRawHK;
|
||||
bool isRejectedUpSMHK;
|
||||
bool isRejectedUpRawHK;
|
||||
bool isRawHKBreakedUpSMHK;
|
||||
|
||||
//
|
||||
bool isBreakedDownSMHK;
|
||||
bool isBreakedDownRawHK;
|
||||
bool isRejectedDownSMHK;
|
||||
bool isRejectedDownRawHK;
|
||||
bool isRawHKBreakedDownSMHK;
|
||||
|
||||
//
|
||||
// Constructor ...
|
||||
X121XHKConditions()
|
||||
@@ -262,20 +248,6 @@ struct X121XHKConditions
|
||||
isRawHKClosedOverSMHK = false;
|
||||
isRawHKClosedUnderSMHK = false;
|
||||
|
||||
//
|
||||
isBreakedUpSMHK = false;
|
||||
isBreakedUpRawHK = false;
|
||||
isRejectedUpSMHK = false;
|
||||
isRejectedUpRawHK = false;
|
||||
isRawHKBreakedUpSMHK = false;
|
||||
|
||||
//
|
||||
isBreakedDownSMHK = false;
|
||||
isBreakedDownRawHK = false;
|
||||
isRejectedDownSMHK = false;
|
||||
isRejectedDownRawHK = false;
|
||||
isRawHKBreakedDownSMHK = false;
|
||||
|
||||
//
|
||||
ZeroMemory(this);
|
||||
}
|
||||
@@ -364,16 +336,6 @@ struct X121XHKConditions
|
||||
ToString("isClosedUnderRawHK", isClosedUnderRawHK, ignoreFalseConditions, separator) +
|
||||
ToString("isRawHKClosedOverSMHK", isRawHKClosedOverSMHK, ignoreFalseConditions, separator) +
|
||||
ToString("isRawHKClosedUnderSMHK", isRawHKClosedUnderSMHK, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedUpSMHK", isBreakedUpSMHK, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedUpRawHK", isBreakedUpRawHK, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectedUpSMHK", isRejectedUpSMHK, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectedUpRawHK", isRejectedUpRawHK, ignoreFalseConditions, separator) +
|
||||
ToString("isRawHKBreakedUpSMHK", isRawHKBreakedUpSMHK, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedDownSMHK", isBreakedDownSMHK, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedDownRawHK", isBreakedDownRawHK, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectedDownSMHK", isRejectedDownSMHK, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectedDownRawHK", isRejectedDownRawHK, ignoreFalseConditions, separator) +
|
||||
ToString("isRawHKBreakedDownSMHK", isRawHKBreakedDownSMHK, ignoreFalseConditions, separator) +
|
||||
//
|
||||
""
|
||||
//
|
||||
@@ -1240,68 +1202,6 @@ class XCX121XHKHelper : public XCBaseHelper
|
||||
bool isRawHKClosedOverSMHK = rawHKClose > smHKUp;
|
||||
bool isRawHKClosedUnderSMHK = rawHKClose < smHKDown;
|
||||
|
||||
//
|
||||
bool isBreakedUpSMHK = IsBarBreak(
|
||||
smHKUp,
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
);
|
||||
bool isBreakedUpRawHK = IsBarBreak(
|
||||
rawHKUp,
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
);
|
||||
bool isRejectedUpSMHK = IsBarReject(
|
||||
smHKUp,
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
);
|
||||
bool isRejectedUpRawHK = IsBarReject(
|
||||
rawHKUp,
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
);
|
||||
|
||||
//
|
||||
bool isRawHKBreakedUpSMHK =
|
||||
hasRawHKBar &&
|
||||
IsBarBreak(
|
||||
smHKUp,
|
||||
X_DIRECTION_BULLISH,
|
||||
rawHKCBar //
|
||||
);
|
||||
|
||||
//
|
||||
bool isBreakedDownSMHK = IsBarBreak(
|
||||
smHKDown,
|
||||
X_DIRECTION_BEARISH,
|
||||
cBar //
|
||||
);
|
||||
bool isBreakedDownRawHK = IsBarBreak(
|
||||
rawHKDown,
|
||||
X_DIRECTION_BEARISH,
|
||||
cBar //
|
||||
);
|
||||
bool isRejectedDownSMHK = IsBarReject(
|
||||
smHKDown,
|
||||
X_DIRECTION_BEARISH,
|
||||
cBar //
|
||||
);
|
||||
bool isRejectedDownRawHK = IsBarReject(
|
||||
rawHKDown,
|
||||
X_DIRECTION_BEARISH,
|
||||
cBar //
|
||||
);
|
||||
|
||||
//
|
||||
bool isRawHKBreakedDownSMHK =
|
||||
hasRawHKBar &&
|
||||
IsBarBreak(
|
||||
smHKDown,
|
||||
X_DIRECTION_BEARISH,
|
||||
rawHKCBar //
|
||||
);
|
||||
|
||||
//
|
||||
conditions.isSMHKBullish = isSMHKBullish;
|
||||
conditions.isRawHKBullish = isRawHKBullish;
|
||||
@@ -1317,16 +1217,6 @@ class XCX121XHKHelper : public XCBaseHelper
|
||||
conditions.isClosedUnderRawHK = isClosedUnderRawHK;
|
||||
conditions.isRawHKClosedOverSMHK = isRawHKClosedOverSMHK;
|
||||
conditions.isRawHKClosedUnderSMHK = isRawHKClosedUnderSMHK;
|
||||
conditions.isBreakedUpSMHK = isBreakedUpSMHK;
|
||||
conditions.isBreakedUpRawHK = isBreakedUpRawHK;
|
||||
conditions.isRejectedUpSMHK = isRejectedUpSMHK;
|
||||
conditions.isRejectedUpRawHK = isRejectedUpRawHK;
|
||||
conditions.isRawHKBreakedUpSMHK = isRawHKBreakedUpSMHK;
|
||||
conditions.isBreakedDownSMHK = isBreakedDownSMHK;
|
||||
conditions.isBreakedDownRawHK = isBreakedDownRawHK;
|
||||
conditions.isRejectedDownSMHK = isRejectedDownSMHK;
|
||||
conditions.isRejectedDownRawHK = isRejectedDownRawHK;
|
||||
conditions.isRawHKBreakedDownSMHK = isRawHKBreakedDownSMHK;
|
||||
|
||||
//
|
||||
Cleanup();
|
||||
|
||||
@@ -324,15 +324,11 @@ struct X121XPVConditions
|
||||
bool isNewPeak;
|
||||
bool isNewPeakOverLast;
|
||||
bool isNewPeakUnderLast;
|
||||
bool isRejectedPrevPeak;
|
||||
bool isBreakedUpPrevPeak;
|
||||
|
||||
//
|
||||
bool isNewVale;
|
||||
bool isNewValeOverLast;
|
||||
bool isNewValeUnderLast;
|
||||
bool isRejectedPrevVale;
|
||||
bool isBreakedDownPrevVale;
|
||||
|
||||
//
|
||||
// Constructor ...
|
||||
@@ -419,15 +415,11 @@ struct X121XPVConditions
|
||||
isNewPeak = false;
|
||||
isNewPeakOverLast = false;
|
||||
isNewPeakUnderLast = false;
|
||||
isRejectedPrevPeak = false;
|
||||
isBreakedUpPrevPeak = false;
|
||||
|
||||
//
|
||||
isNewVale = false;
|
||||
isNewValeOverLast = false;
|
||||
isNewValeUnderLast = false;
|
||||
isRejectedPrevVale = false;
|
||||
isBreakedDownPrevVale = false;
|
||||
|
||||
//
|
||||
ZeroMemory(this);
|
||||
@@ -510,13 +502,9 @@ struct X121XPVConditions
|
||||
ToString("isNewPeak", isNewPeak, ignoreFalseConditions, separator) +
|
||||
ToString("isNewPeakOverLast", isNewPeakOverLast, ignoreFalseConditions, separator) +
|
||||
ToString("isNewPeakUnderLast", isNewPeakUnderLast, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectedPrevPeak", isRejectedPrevPeak, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedUpPrevPeak", isBreakedUpPrevPeak, ignoreFalseConditions, separator) +
|
||||
ToString("isNewVale", isNewVale, ignoreFalseConditions, separator) +
|
||||
ToString("isNewValeOverLast", isNewValeOverLast, ignoreFalseConditions, separator) +
|
||||
ToString("isNewValeUnderLast", isNewValeUnderLast, ignoreFalseConditions, separator) +
|
||||
ToString("isRejectedPrevVale", isRejectedPrevVale, ignoreFalseConditions, separator) +
|
||||
ToString("isBreakedDownPrevVale", isBreakedDownPrevVale, ignoreFalseConditions, separator) +
|
||||
//
|
||||
""
|
||||
//
|
||||
@@ -2447,16 +2435,6 @@ class XCX121XPVHelper : public XCBaseHelper
|
||||
conditions.peaksBuffer[cIDX] > conditions.peaksBuffer[pIDX];
|
||||
bool isNewPeakUnderLast = isNewPeak &&
|
||||
conditions.peaksBuffer[cIDX] < conditions.peaksBuffer[pIDX];
|
||||
bool isRejectedPrevPeak = IsBarReject(
|
||||
conditions.peaksBuffer[pIDX],
|
||||
X_DIRECTION_BEARISH,
|
||||
cBar //
|
||||
);
|
||||
bool isBreakedUpPrevPeak = IsBarBreak(
|
||||
conditions.peaksBuffer[pIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
);
|
||||
|
||||
//
|
||||
bool isNewVale = conditions.valesBuffer[cIDX] != conditions.valesBuffer[pIDX];
|
||||
@@ -2464,16 +2442,6 @@ class XCX121XPVHelper : public XCBaseHelper
|
||||
conditions.valesBuffer[cIDX] > conditions.valesBuffer[pIDX];
|
||||
bool isNewValeUnderLast = isNewVale &&
|
||||
conditions.valesBuffer[cIDX] < conditions.valesBuffer[pIDX];
|
||||
bool isRejectedPrevVale = IsBarReject(
|
||||
conditions.valesBuffer[pIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
cBar //
|
||||
);
|
||||
bool isBreakedDownPrevVale = IsBarBreak(
|
||||
conditions.valesBuffer[pIDX],
|
||||
X_DIRECTION_BEARISH,
|
||||
cBar //
|
||||
);
|
||||
|
||||
//
|
||||
conditions.isSarBullish = isSarBullish;
|
||||
@@ -2483,13 +2451,9 @@ class XCX121XPVHelper : public XCBaseHelper
|
||||
conditions.isNewPeak = isNewPeak;
|
||||
conditions.isNewPeakOverLast = isNewPeakOverLast;
|
||||
conditions.isNewPeakUnderLast = isNewPeakUnderLast;
|
||||
conditions.isRejectedPrevPeak = isRejectedPrevPeak;
|
||||
conditions.isBreakedUpPrevPeak = isBreakedUpPrevPeak;
|
||||
conditions.isNewVale = isNewVale;
|
||||
conditions.isNewValeOverLast = isNewValeOverLast;
|
||||
conditions.isNewValeUnderLast = isNewValeUnderLast;
|
||||
conditions.isRejectedPrevVale = isRejectedPrevVale;
|
||||
conditions.isBreakedDownPrevVale = isBreakedDownPrevVale;
|
||||
|
||||
//
|
||||
Cleanup();
|
||||
|
||||
Reference in New Issue
Block a user