add some new conditions to XPV and also implement usage of XRL in setup class ...
This commit is contained in:
@@ -391,6 +391,37 @@ struct XPVConditions
|
||||
bool isHCHHSwitchedToBearish;
|
||||
bool isHCLLSwitchedToBeraish;
|
||||
|
||||
//
|
||||
// Fibonachi Conditions ...
|
||||
|
||||
//
|
||||
bool isCloseOverFib1;
|
||||
bool isCloseOverFib2;
|
||||
bool isCloseOverFib3;
|
||||
bool isCloseOverFib4;
|
||||
bool isCloseOverFib5;
|
||||
|
||||
//
|
||||
bool isCloseUnderFib1;
|
||||
bool isCloseUnderFib2;
|
||||
bool isCloseUnderFib3;
|
||||
bool isCloseUnderFib4;
|
||||
bool isCloseUnderFib5;
|
||||
|
||||
//
|
||||
bool isCloseCrossedOverFib1;
|
||||
bool isCloseCrossedOverFib2;
|
||||
bool isCloseCrossedOverFib3;
|
||||
bool isCloseCrossedOverFib4;
|
||||
bool isCloseCrossedOverFib5;
|
||||
|
||||
//
|
||||
bool isCloseCrossedUnderFib1;
|
||||
bool isCloseCrossedUnderFib2;
|
||||
bool isCloseCrossedUnderFib3;
|
||||
bool isCloseCrossedUnderFib4;
|
||||
bool isCloseCrossedUnderFib5;
|
||||
|
||||
//
|
||||
void Clean()
|
||||
{
|
||||
@@ -442,6 +473,26 @@ struct XPVConditions
|
||||
isFiboIncreased = false;
|
||||
isFiboDecreased = false;
|
||||
isFiboSectionChanged = false;
|
||||
isCloseOverFib1 = false;
|
||||
isCloseOverFib2 = false;
|
||||
isCloseOverFib3 = false;
|
||||
isCloseOverFib4 = false;
|
||||
isCloseOverFib5 = false;
|
||||
isCloseUnderFib1 = false;
|
||||
isCloseUnderFib2 = false;
|
||||
isCloseUnderFib3 = false;
|
||||
isCloseUnderFib4 = false;
|
||||
isCloseUnderFib5 = false;
|
||||
isCloseCrossedOverFib1 = false;
|
||||
isCloseCrossedOverFib2 = false;
|
||||
isCloseCrossedOverFib3 = false;
|
||||
isCloseCrossedOverFib4 = false;
|
||||
isCloseCrossedOverFib5 = false;
|
||||
isCloseCrossedUnderFib1 = false;
|
||||
isCloseCrossedUnderFib2 = false;
|
||||
isCloseCrossedUnderFib3 = false;
|
||||
isCloseCrossedUnderFib4 = false;
|
||||
isCloseCrossedUnderFib5 = false;
|
||||
isSCBullish = false;
|
||||
isSCHHBullish = false;
|
||||
isSCLLBullish = false;
|
||||
@@ -793,6 +844,26 @@ struct XPVConditions
|
||||
ToString("isFiboIncreased", isFiboIncreased, ignoreFalseConditions, separator) +
|
||||
ToString("isFiboDecreased", isFiboDecreased, ignoreFalseConditions, separator) +
|
||||
ToString("isFiboSectionChanged", isFiboSectionChanged, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseOverFib1", isCloseOverFib1, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseOverFib2", isCloseOverFib2, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseOverFib3", isCloseOverFib3, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseOverFib4", isCloseOverFib4, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseOverFib5", isCloseOverFib5, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseUnderFib1", isCloseUnderFib1, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseUnderFib2", isCloseUnderFib2, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseUnderFib3", isCloseUnderFib3, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseUnderFib4", isCloseUnderFib4, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseUnderFib5", isCloseUnderFib5, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedOverFib1", isCloseCrossedOverFib1, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedOverFib2", isCloseCrossedOverFib2, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedOverFib3", isCloseCrossedOverFib3, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedOverFib4", isCloseCrossedOverFib4, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedOverFib5", isCloseCrossedOverFib5, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedUnderFib1", isCloseCrossedUnderFib1, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedUnderFib2", isCloseCrossedUnderFib2, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedUnderFib3", isCloseCrossedUnderFib3, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedUnderFib4", isCloseCrossedUnderFib4, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedUnderFib5", isCloseCrossedUnderFib5, ignoreFalseConditions, separator) +
|
||||
ToString("isSCBullish", isSCBullish, ignoreFalseConditions, separator) +
|
||||
ToString("isSCHHBullish", isSCHHBullish, ignoreFalseConditions, separator) +
|
||||
ToString("isSCLLBullish", isSCLLBullish, ignoreFalseConditions, separator) +
|
||||
@@ -841,6 +912,7 @@ struct XPVConditions
|
||||
ToString("isHCSwitchedToBearish", isHCSwitchedToBearish, ignoreFalseConditions, separator) +
|
||||
ToString("isHCHHSwitchedToBearish", isHCHHSwitchedToBearish, ignoreFalseConditions, separator) +
|
||||
ToString("isHCLLSwitchedToBeraish", isHCLLSwitchedToBeraish, ignoreFalseConditions, separator) +
|
||||
//
|
||||
""
|
||||
//
|
||||
;
|
||||
@@ -2711,6 +2783,97 @@ public:
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
// Define Bars For Calculations ...
|
||||
|
||||
//
|
||||
XOHCL cBar;
|
||||
result = cBar.Init(
|
||||
mSymbol,
|
||||
mPeriod,
|
||||
cIndex //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
XOHCL pBar;
|
||||
result = pBar.Init(
|
||||
mSymbol,
|
||||
mPeriod,
|
||||
pIndex //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
bool isCloseOverFib1 = cBar.close > conditions.fib1s[cIndex];
|
||||
bool isCloseOverFib1Prev = pBar.close > conditions.fib1s[pIndex];
|
||||
|
||||
//
|
||||
bool isCloseOverFib2 = cBar.close > conditions.fib2s[cIndex];
|
||||
bool isCloseOverFib2Prev = pBar.close > conditions.fib2s[pIndex];
|
||||
|
||||
//
|
||||
bool isCloseOverFib3 = cBar.close > conditions.fib3s[cIndex];
|
||||
bool isCloseOverFib3Prev = pBar.close > conditions.fib3s[pIndex];
|
||||
|
||||
//
|
||||
bool isCloseOverFib4 = cBar.close > conditions.fib4s[cIndex];
|
||||
bool isCloseOverFib4Prev = pBar.close > conditions.fib4s[pIndex];
|
||||
|
||||
//
|
||||
bool isCloseOverFib5 = cBar.close > conditions.fib5s[cIndex];
|
||||
bool isCloseOverFib5Prev = pBar.close > conditions.fib5s[pIndex];
|
||||
|
||||
//
|
||||
bool isCloseUnderFib1 = cBar.close < conditions.fib1s[cIndex];
|
||||
bool isCloseUnderFib1Prev = pBar.close < conditions.fib1s[pIndex];
|
||||
|
||||
//
|
||||
bool isCloseUnderFib2 = cBar.close < conditions.fib2s[cIndex];
|
||||
bool isCloseUnderFib2Prev = pBar.close < conditions.fib2s[pIndex];
|
||||
|
||||
//
|
||||
bool isCloseUnderFib3 = cBar.close < conditions.fib3s[cIndex];
|
||||
bool isCloseUnderFib3Prev = pBar.close < conditions.fib3s[pIndex];
|
||||
|
||||
//
|
||||
bool isCloseUnderFib4 = cBar.close < conditions.fib4s[cIndex];
|
||||
bool isCloseUnderFib4Prev = pBar.close < conditions.fib4s[pIndex];
|
||||
|
||||
//
|
||||
bool isCloseUnderFib5 = cBar.close < conditions.fib5s[cIndex];
|
||||
bool isCloseUnderFib5Prev = pBar.close < conditions.fib5s[pIndex];
|
||||
|
||||
//
|
||||
bool isCloseCrossedOverFib1 = isCloseOverFib1 &&
|
||||
!isCloseOverFib1Prev;
|
||||
bool isCloseCrossedOverFib2 = isCloseOverFib2 &&
|
||||
!isCloseOverFib2Prev;
|
||||
bool isCloseCrossedOverFib3 = isCloseOverFib3 &&
|
||||
!isCloseOverFib3Prev;
|
||||
bool isCloseCrossedOverFib4 = isCloseOverFib4 &&
|
||||
!isCloseOverFib4Prev;
|
||||
bool isCloseCrossedOverFib5 = isCloseOverFib5 &&
|
||||
!isCloseOverFib5Prev;
|
||||
|
||||
//
|
||||
bool isCloseCrossedUnderFib1 = isCloseUnderFib1 &&
|
||||
!isCloseUnderFib1Prev;
|
||||
bool isCloseCrossedUnderFib2 = isCloseUnderFib2 &&
|
||||
!isCloseUnderFib2Prev;
|
||||
bool isCloseCrossedUnderFib3 = isCloseUnderFib3 &&
|
||||
!isCloseUnderFib3Prev;
|
||||
bool isCloseCrossedUnderFib4 = isCloseUnderFib4 &&
|
||||
!isCloseUnderFib4Prev;
|
||||
bool isCloseCrossedUnderFib5 = isCloseUnderFib5 &&
|
||||
!isCloseUnderFib5Prev;
|
||||
|
||||
//
|
||||
conditions.isNewPeak = isNewPeak;
|
||||
conditions.isNewPeakOverLast = isNewPeakOverLast;
|
||||
@@ -2721,6 +2884,26 @@ public:
|
||||
conditions.isFiboIncreased = isFiboIncreased;
|
||||
conditions.isFiboDecreased = isFiboDecreased;
|
||||
conditions.isFiboSectionChanged = isFiboSectionChanged;
|
||||
conditions.isCloseOverFib1 = isCloseOverFib1;
|
||||
conditions.isCloseOverFib2 = isCloseOverFib2;
|
||||
conditions.isCloseOverFib3 = isCloseOverFib3;
|
||||
conditions.isCloseOverFib4 = isCloseOverFib4;
|
||||
conditions.isCloseOverFib5 = isCloseOverFib5;
|
||||
conditions.isCloseUnderFib1 = isCloseUnderFib1;
|
||||
conditions.isCloseUnderFib2 = isCloseUnderFib2;
|
||||
conditions.isCloseUnderFib3 = isCloseUnderFib3;
|
||||
conditions.isCloseUnderFib4 = isCloseUnderFib4;
|
||||
conditions.isCloseUnderFib5 = isCloseUnderFib5;
|
||||
conditions.isCloseCrossedOverFib1 = isCloseCrossedOverFib1;
|
||||
conditions.isCloseCrossedOverFib2 = isCloseCrossedOverFib2;
|
||||
conditions.isCloseCrossedOverFib3 = isCloseCrossedOverFib3;
|
||||
conditions.isCloseCrossedOverFib4 = isCloseCrossedOverFib4;
|
||||
conditions.isCloseCrossedOverFib5 = isCloseCrossedOverFib5;
|
||||
conditions.isCloseCrossedUnderFib1 = isCloseCrossedUnderFib1;
|
||||
conditions.isCloseCrossedUnderFib2 = isCloseCrossedUnderFib2;
|
||||
conditions.isCloseCrossedUnderFib3 = isCloseCrossedUnderFib3;
|
||||
conditions.isCloseCrossedUnderFib4 = isCloseCrossedUnderFib4;
|
||||
conditions.isCloseCrossedUnderFib5 = isCloseCrossedUnderFib5;
|
||||
conditions.isSCBullish = isSCBullish;
|
||||
conditions.isSCHHBullish = isSCHHBullish;
|
||||
conditions.isSCLLBullish = isSCLLBullish;
|
||||
@@ -2812,7 +2995,8 @@ private:
|
||||
{
|
||||
//
|
||||
int totalBars = CountBars();
|
||||
if (totalBars > 1000) {
|
||||
if (totalBars > 1000)
|
||||
{
|
||||
totalBars = 1000;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user