attach conditions to x121 conditions ...
This commit is contained in:
@@ -76,6 +76,15 @@ enum ENUM_X121_BUFFERS
|
||||
X121_VALID_VALES_LINE = 38,
|
||||
};
|
||||
|
||||
//
|
||||
enum ENUM_XVWAP_STATES
|
||||
{
|
||||
//
|
||||
XVWAP_STATE_BULLISH = 1,
|
||||
XVWAP_STATE_BEARISH = 2,
|
||||
XVWAP_STATE_NEUTURAL = 3,
|
||||
};
|
||||
|
||||
//
|
||||
// Inputs ...
|
||||
struct X121Inputs
|
||||
@@ -507,6 +516,114 @@ struct X121Conditions
|
||||
double validPeaksBuffer[];
|
||||
double validValesBuffer[];
|
||||
|
||||
//
|
||||
// Conditions ...
|
||||
|
||||
//
|
||||
// XSAR ...
|
||||
|
||||
//
|
||||
bool isSarBullish;
|
||||
bool isSarBearish;
|
||||
|
||||
//
|
||||
bool isSarSwitchedBullish;
|
||||
bool isSarSwitchedBearish;
|
||||
|
||||
//
|
||||
// XPV ...
|
||||
|
||||
//
|
||||
bool isNewPeak;
|
||||
bool isNewPeakOverLast;
|
||||
bool isNewPeakUnderLast;
|
||||
|
||||
//
|
||||
bool isNewVale;
|
||||
bool isNewValeOverLast;
|
||||
bool isNewValeUnderLast;
|
||||
|
||||
//
|
||||
// XVWAP ...
|
||||
|
||||
//
|
||||
bool isVWapFastBullish;
|
||||
bool isVWapFastBearish;
|
||||
bool isVWapFastNeutural;
|
||||
|
||||
//
|
||||
bool isVWapMidBullish;
|
||||
bool isVWapMidBearish;
|
||||
bool isVWapMidNeutural;
|
||||
|
||||
//
|
||||
bool isVWapSlowBullish;
|
||||
bool isVWapSlowBearish;
|
||||
bool isVWapSlowNeutural;
|
||||
|
||||
//
|
||||
bool isVWapFastOverMid;
|
||||
bool isVWapMidOverSlow;
|
||||
|
||||
//
|
||||
bool isVWapFastUnderMid;
|
||||
bool isVWapMidUnderSlow;
|
||||
|
||||
//
|
||||
bool isVWapBullishState;
|
||||
bool isVWapBearishState;
|
||||
bool isVWapNeuturalState;
|
||||
|
||||
//
|
||||
bool isVWapBullishOrdered;
|
||||
bool isVWapBearishOrdered;
|
||||
|
||||
//
|
||||
bool isVWapSwitchedToBullishOrdered;
|
||||
bool isVWapSwitchedToBearishOrdered;
|
||||
|
||||
//
|
||||
bool isVWapSwitchedToBullishState;
|
||||
bool isVWapSwitchedToBearishState;
|
||||
bool isVWapSwitchedToNeuturalState;
|
||||
|
||||
//
|
||||
// XDON ...
|
||||
|
||||
//
|
||||
// bool isCloseLower
|
||||
|
||||
//
|
||||
// XFIBONACCI ...
|
||||
|
||||
//
|
||||
bool isOerFib1;
|
||||
bool isOerFib2;
|
||||
bool isOerFib3;
|
||||
bool isOerFib4;
|
||||
bool isOerFib5;
|
||||
|
||||
//
|
||||
bool isUnderFib1;
|
||||
bool isUnderFib2;
|
||||
bool isUnderFib3;
|
||||
bool isUnderFib4;
|
||||
bool isUnderFib5;
|
||||
|
||||
//
|
||||
bool isCloseOerFib1;
|
||||
bool isCloseOerFib2;
|
||||
bool isCloseOerFib3;
|
||||
bool isCloseOerFib4;
|
||||
bool isCloseOerFib5;
|
||||
|
||||
//
|
||||
bool isCloseUnderFib1;
|
||||
bool isCloseUnderFib2;
|
||||
bool isCloseUnderFib3;
|
||||
bool isCloseUnderFib4;
|
||||
bool isCloseUnderFib5;
|
||||
|
||||
//
|
||||
// Constructor ...
|
||||
X121Conditions()
|
||||
@@ -606,6 +723,111 @@ struct X121Conditions
|
||||
ArraySetAsSeries(vwapSlowStateBuffer, true);
|
||||
ArraySetAsSeries(validPeaksBuffer, true);
|
||||
ArraySetAsSeries(validValesBuffer, true);
|
||||
|
||||
//
|
||||
// Conditions ...
|
||||
|
||||
//
|
||||
// XSAR ...
|
||||
|
||||
//
|
||||
isSarBullish = false;
|
||||
isSarBearish = false;
|
||||
|
||||
//
|
||||
isSarSwitchedBullish = false;
|
||||
isSarSwitchedBearish = false;
|
||||
|
||||
//
|
||||
// XPV ...
|
||||
|
||||
//
|
||||
isNewPeak = false;
|
||||
isNewPeakOverLast = false;
|
||||
isNewPeakUnderLast = false;
|
||||
|
||||
//
|
||||
isNewVale = false;
|
||||
isNewValeOverLast = false;
|
||||
isNewValeUnderLast = false;
|
||||
|
||||
//
|
||||
// XVWAP ...
|
||||
|
||||
//
|
||||
isVWapFastBullish = false;
|
||||
isVWapFastBearish = false;
|
||||
isVWapFastNeutural = false;
|
||||
|
||||
//
|
||||
isVWapMidBullish = false;
|
||||
isVWapMidBearish = false;
|
||||
isVWapMidNeutural = false;
|
||||
|
||||
//
|
||||
isVWapSlowBullish = false;
|
||||
isVWapSlowBearish = false;
|
||||
isVWapSlowNeutural = false;
|
||||
|
||||
//
|
||||
isVWapFastOverMid = false;
|
||||
isVWapMidOverSlow = false;
|
||||
|
||||
//
|
||||
isVWapFastUnderMid = false;
|
||||
isVWapMidUnderSlow = false;
|
||||
|
||||
//
|
||||
isVWapBullishState = false;
|
||||
isVWapBearishState = false;
|
||||
isVWapNeuturalState = false;
|
||||
|
||||
//
|
||||
isVWapBullishOrdered = false;
|
||||
isVWapBearishOrdered = false;
|
||||
|
||||
//
|
||||
isVWapSwitchedToBullishOrdered = false;
|
||||
isVWapSwitchedToBearishOrdered = false;
|
||||
|
||||
//
|
||||
isVWapSwitchedToBullishState = false;
|
||||
isVWapSwitchedToBearishState = false;
|
||||
isVWapSwitchedToNeuturalState = false;
|
||||
|
||||
//
|
||||
// XDON ...
|
||||
|
||||
//
|
||||
// XFIBONACCI ...
|
||||
|
||||
//
|
||||
isOerFib1 = false;
|
||||
isOerFib2 = false;
|
||||
isOerFib3 = false;
|
||||
isOerFib4 = false;
|
||||
isOerFib5 = false;
|
||||
|
||||
//
|
||||
isUnderFib1 = false;
|
||||
isUnderFib2 = false;
|
||||
isUnderFib3 = false;
|
||||
isUnderFib4 = false;
|
||||
isUnderFib5 = false;
|
||||
|
||||
//
|
||||
isCloseOerFib1 = false;
|
||||
isCloseOerFib2 = false;
|
||||
isCloseOerFib3 = false;
|
||||
isCloseOerFib4 = false;
|
||||
isCloseOerFib5 = false;
|
||||
|
||||
//
|
||||
isCloseUnderFib1 = false;
|
||||
isCloseUnderFib2 = false;
|
||||
isCloseUnderFib3 = false;
|
||||
isCloseUnderFib4 = false;
|
||||
isCloseUnderFib5 = false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -677,7 +899,72 @@ struct X121Conditions
|
||||
|
||||
//
|
||||
// TODO: Implement this if required ...
|
||||
string conditionsStr = "";
|
||||
string conditionsStr =
|
||||
//
|
||||
// XSAR ...
|
||||
ToString("isSarBullish", isSarBullish, ignoreFalseConditions, separator) +
|
||||
ToString("isSarBearish", isSarBearish, ignoreFalseConditions, separator) +
|
||||
ToString("isSarSwitchedBullish", isSarSwitchedBullish, ignoreFalseConditions, separator) +
|
||||
ToString("isSarSwitchedBearish", isSarSwitchedBearish, ignoreFalseConditions, separator) +
|
||||
//
|
||||
// XPV ...
|
||||
ToString("isNewPeak", isNewPeak, ignoreFalseConditions, separator) +
|
||||
ToString("isNewPeakOverLast", isNewPeakOverLast, ignoreFalseConditions, separator) +
|
||||
ToString("isNewPeakUnderLast", isNewPeakUnderLast, ignoreFalseConditions, separator) +
|
||||
ToString("isNewVale", isNewVale, ignoreFalseConditions, separator) +
|
||||
ToString("isNewValeOverLast", isNewValeOverLast, ignoreFalseConditions, separator) +
|
||||
ToString("isNewValeUnderLast", isNewValeUnderLast, ignoreFalseConditions, separator) +
|
||||
//
|
||||
// XVWAP ...
|
||||
ToString("isVWapFastBullish", isVWapFastBullish, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapFastBearish", isVWapFastBearish, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapFastNeutural", isVWapFastNeutural, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapMidBullish", isVWapMidBullish, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapMidBearish", isVWapMidBearish, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapMidNeutural", isVWapMidNeutural, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapSlowBullish", isVWapSlowBullish, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapSlowBearish", isVWapSlowBearish, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapSlowNeutural", isVWapSlowNeutural, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapFastOverMid", isVWapFastOverMid, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapMidOverSlow", isVWapMidOverSlow, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapFastUnderMid", isVWapFastUnderMid, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapMidUnderSlow", isVWapMidUnderSlow, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapBullishState", isVWapBullishState, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapBearishState", isVWapBearishState, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapNeuturalState", isVWapNeuturalState, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapBullishOrdered", isVWapBullishOrdered, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapBearishOrdered", isVWapBearishOrdered, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapSwitchedToBullishOrdered", isVWapSwitchedToBullishOrdered, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapSwitchedToBearishOrdered", isVWapSwitchedToBearishOrdered, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapSwitchedToBullishState", isVWapSwitchedToBullishState, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapSwitchedToBearishState", isVWapSwitchedToBearishState, ignoreFalseConditions, separator) +
|
||||
ToString("isVWapSwitchedToNeuturalState", isVWapSwitchedToNeuturalState, ignoreFalseConditions, separator) +
|
||||
//
|
||||
// XFIBONACCI ...
|
||||
ToString("isOerFib1", isOerFib1, ignoreFalseConditions, separator) +
|
||||
ToString("isOerFib2", isOerFib2, ignoreFalseConditions, separator) +
|
||||
ToString("isOerFib3", isOerFib3, ignoreFalseConditions, separator) +
|
||||
ToString("isOerFib4", isOerFib4, ignoreFalseConditions, separator) +
|
||||
ToString("isOerFib5", isOerFib5, ignoreFalseConditions, separator) +
|
||||
ToString("isUnderFib1", isUnderFib1, ignoreFalseConditions, separator) +
|
||||
ToString("isUnderFib2", isUnderFib2, ignoreFalseConditions, separator) +
|
||||
ToString("isUnderFib3", isUnderFib3, ignoreFalseConditions, separator) +
|
||||
ToString("isUnderFib4", isUnderFib4, ignoreFalseConditions, separator) +
|
||||
ToString("isUnderFib5", isUnderFib5, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseOerFib1", isCloseOerFib1, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseOerFib2", isCloseOerFib2, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseOerFib3", isCloseOerFib3, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseOerFib4", isCloseOerFib4, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseOerFib5", isCloseOerFib5, 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) +
|
||||
//
|
||||
""
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
result =
|
||||
@@ -2169,6 +2456,61 @@ class XCX121Helper : public XCBaseHelper
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// Converts to State ...
|
||||
ENUM_XVWAP_STATES ToVWAPState(double value)
|
||||
{
|
||||
//
|
||||
ENUM_XVWAP_STATES result =
|
||||
value == 1
|
||||
? XVWAP_STATE_BULLISH
|
||||
: value == 2
|
||||
? XVWAP_STATE_BEARISH
|
||||
: XVWAP_STATE_NEUTURAL;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
bool IsVWAPBullish(double value)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
result = ToVWAPState(value) == XVWAP_STATE_BULLISH;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
bool IsVWAPBearish(double value)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
result = ToVWAPState(value) == XVWAP_STATE_BEARISH;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
bool IsVWAPNeutural(double value)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
result = ToVWAPState(value) == XVWAP_STATE_NEUTURAL;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// XDON ...
|
||||
|
||||
@@ -2868,8 +3210,8 @@ class XCX121Helper : public XCBaseHelper
|
||||
|
||||
bool GetConditions(
|
||||
X121Conditions &conditions, //
|
||||
int barIndex = 0, //
|
||||
int loopback = 5 //
|
||||
int barIndex = 0, //
|
||||
int loopback = 5 //
|
||||
)
|
||||
{
|
||||
//
|
||||
@@ -2895,6 +3237,42 @@ class XCX121Helper : public XCBaseHelper
|
||||
int pIndex = cIndex + 1;
|
||||
int ppIndex = pIndex + 1;
|
||||
|
||||
//
|
||||
XOHCL zBar;
|
||||
result = zBar.Init(
|
||||
mSymbol,
|
||||
mPeriod,
|
||||
zIndex //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
XOHCL cBar;
|
||||
result = cBar.Init(
|
||||
mSymbol,
|
||||
mPeriod,
|
||||
cIndex //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
XOHCL pBar;
|
||||
result = pBar.Init(
|
||||
mSymbol,
|
||||
mPeriod,
|
||||
pIndex //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Buffers ...
|
||||
|
||||
@@ -3152,7 +3530,237 @@ class XCX121Helper : public XCBaseHelper
|
||||
|
||||
//
|
||||
// Conditions ...
|
||||
// TODO: Implement this if Required ...
|
||||
|
||||
//
|
||||
// XSAR ...
|
||||
|
||||
//
|
||||
bool isSarBullish = conditions.sarBuffer[cIndex] < cBar.low;
|
||||
bool isSarBullishPrev = conditions.sarBuffer[pIndex] < pBar.low;
|
||||
|
||||
//
|
||||
bool isSarBearish = conditions.sarBuffer[cIndex] > cBar.high;
|
||||
bool isSarBearishPrev = conditions.sarBuffer[pIndex] > pBar.high;
|
||||
|
||||
//
|
||||
bool isSarSwitchedBullish = isSarBullish &&
|
||||
!isSarBullishPrev;
|
||||
bool isSarSwitchedBearish = isSarBearish &&
|
||||
!isSarBearishPrev;
|
||||
|
||||
//
|
||||
// XPV ...
|
||||
|
||||
//
|
||||
bool isNewPeak = conditions.peaksBuffer[cIndex] != conditions.peaksBuffer[pIndex];
|
||||
bool isNewPeakOverLast = isNewPeak &&
|
||||
conditions.peaksBuffer[cIndex] > conditions.peaksBuffer[pIndex];
|
||||
bool isNewPeakUnderLast = isNewPeak &&
|
||||
conditions.peaksBuffer[cIndex] < conditions.peaksBuffer[pIndex];
|
||||
|
||||
//
|
||||
bool isNewVale = conditions.valesBuffer[cIndex] != conditions.valesBuffer[pIndex];
|
||||
bool isNewValeOverLast = isNewVale &&
|
||||
conditions.valesBuffer[cIndex] > conditions.valesBuffer[pIndex];
|
||||
bool isNewValeUnderLast = isNewVale &&
|
||||
conditions.valesBuffer[cIndex] < conditions.valesBuffer[pIndex];
|
||||
|
||||
//
|
||||
// XVWAP ...
|
||||
|
||||
//
|
||||
bool isVWapFastBullish = IsVWAPBullish(conditions.vwapFastStateBuffer[cIndex]);
|
||||
bool isVWapFastBullishPrev = IsVWAPBullish(conditions.vwapFastStateBuffer[pIndex]);
|
||||
|
||||
//
|
||||
bool isVWapFastBearish = IsVWAPBearish(conditions.vwapFastStateBuffer[cIndex]);
|
||||
bool isVWapFastBearishPrev = IsVWAPBearish(conditions.vwapFastStateBuffer[pIndex]);
|
||||
|
||||
//
|
||||
bool isVWapFastNeutural = IsVWAPNeutural(conditions.vwapFastStateBuffer[cIndex]);
|
||||
bool isVWapFastNeuturalPrev = IsVWAPNeutural(conditions.vwapFastStateBuffer[pIndex]);
|
||||
|
||||
//
|
||||
bool isVWapMidBullish = IsVWAPBullish(conditions.vwapMidStateBuffer[cIndex]);
|
||||
bool isVWapMidBullishPrev = IsVWAPBullish(conditions.vwapMidStateBuffer[pIndex]);
|
||||
|
||||
//
|
||||
bool isVWapMidBearish = IsVWAPBearish(conditions.vwapMidStateBuffer[cIndex]);
|
||||
bool isVWapMidBearishPrev = IsVWAPBearish(conditions.vwapMidStateBuffer[pIndex]);
|
||||
|
||||
//
|
||||
bool isVWapMidNeutural = IsVWAPNeutural(conditions.vwapMidStateBuffer[cIndex]);
|
||||
bool isVWapMidNeuturalPrev = IsVWAPNeutural(conditions.vwapMidStateBuffer[pIndex]);
|
||||
|
||||
//
|
||||
bool isVWapSlowBullish = IsVWAPBullish(conditions.vwapSlowStateBuffer[cIndex]);
|
||||
bool isVWapSlowBullishPrev = IsVWAPBullish(conditions.vwapSlowStateBuffer[pIndex]);
|
||||
|
||||
//
|
||||
bool isVWapSlowBearish = IsVWAPBearish(conditions.vwapSlowStateBuffer[cIndex]);
|
||||
bool isVWapSlowBearishPrev = IsVWAPBearish(conditions.vwapSlowStateBuffer[pIndex]);
|
||||
|
||||
//
|
||||
bool isVWapSlowNeutural = IsVWAPNeutural(conditions.vwapSlowStateBuffer[cIndex]);
|
||||
bool isVWapSlowNeuturalPrev = IsVWAPNeutural(conditions.vwapSlowStateBuffer[pIndex]);
|
||||
|
||||
//
|
||||
bool isVWapFastOverMid = conditions.vwapFastBuffer[cIndex] > conditions.vwapMidBuffer[cIndex];
|
||||
bool isVWapFastOverMidPrev = conditions.vwapFastBuffer[pIndex] > conditions.vwapMidBuffer[pIndex];
|
||||
|
||||
//
|
||||
bool isVWapMidOverSlow = conditions.vwapMidBuffer[cIndex] > conditions.vwapSlowBuffer[cIndex];
|
||||
bool isVWapMidOverSlowPrev = conditions.vwapMidBuffer[pIndex] > conditions.vwapSlowBuffer[pIndex];
|
||||
|
||||
//
|
||||
bool isVWapFastUnderMid = conditions.vwapFastBuffer[cIndex] < conditions.vwapMidBuffer[cIndex];
|
||||
bool isVWapFastUnderMidPrev = conditions.vwapFastBuffer[pIndex] < conditions.vwapMidBuffer[pIndex];
|
||||
|
||||
//
|
||||
bool isVWapMidUnderSlow = conditions.vwapMidBuffer[cIndex] < conditions.vwapSlowBuffer[cIndex];
|
||||
bool isVWapMidUnderSlowPrev = conditions.vwapMidBuffer[pIndex] < conditions.vwapSlowBuffer[pIndex];
|
||||
|
||||
//
|
||||
bool isVWapBullishState = isVWapFastBullish &&
|
||||
isVWapMidBullish &&
|
||||
isVWapSlowBullish;
|
||||
bool isVWapBullishStatePrev = isVWapFastBullishPrev &&
|
||||
isVWapMidBullishPrev &&
|
||||
isVWapSlowBullishPrev;
|
||||
|
||||
//
|
||||
bool isVWapBearishState = isVWapFastBearish &&
|
||||
isVWapMidBearish &&
|
||||
isVWapSlowBearish;
|
||||
bool isVWapBearishStatePrev = isVWapFastBearishPrev &&
|
||||
isVWapMidBearishPrev &&
|
||||
isVWapSlowBearishPrev;
|
||||
|
||||
//
|
||||
bool isVWapNeuturalState = isVWapFastNeutural &&
|
||||
isVWapMidNeutural &&
|
||||
isVWapSlowNeutural;
|
||||
bool isVWapNeuturalStatePrev = isVWapFastNeuturalPrev &&
|
||||
isVWapMidNeuturalPrev &&
|
||||
isVWapSlowNeuturalPrev;
|
||||
|
||||
//
|
||||
bool isVWapBullishOrdered = isVWapFastOverMid &&
|
||||
isVWapMidOverSlow;
|
||||
bool isVWapBullishOrderedPrev = isVWapFastOverMidPrev &&
|
||||
isVWapMidOverSlowPrev;
|
||||
|
||||
//
|
||||
bool isVWapBearishOrdered = isVWapFastUnderMid &&
|
||||
isVWapMidUnderSlow;
|
||||
bool isVWapBearishOrderedPrev = isVWapFastUnderMidPrev &&
|
||||
isVWapMidUnderSlowPrev;
|
||||
|
||||
//
|
||||
bool isVWapSwitchedToBullishOrdered = isVWapBullishOrdered &&
|
||||
!isVWapBullishOrderedPrev;
|
||||
bool isVWapSwitchedToBearishOrdered = isVWapBearishOrdered &&
|
||||
!isVWapBearishOrderedPrev;
|
||||
|
||||
//
|
||||
bool isVWapSwitchedToBullishState = isVWapBullishState &&
|
||||
!isVWapBullishStatePrev;
|
||||
bool isVWapSwitchedToBearishState = isVWapBearishState &&
|
||||
!isVWapBearishStatePrev;
|
||||
bool isVWapSwitchedToNeuturalState = isVWapNeuturalState &&
|
||||
!isVWapNeuturalStatePrev;
|
||||
|
||||
//
|
||||
// XDON ...
|
||||
|
||||
//
|
||||
// XFIBONACCI ...
|
||||
|
||||
//
|
||||
bool isOerFib1 = cBar.low > conditions.fl1Buffer[cIndex];
|
||||
bool isOerFib2 = cBar.low > conditions.fl2Buffer[cIndex];
|
||||
bool isOerFib3 = cBar.low > conditions.fl3Buffer[cIndex];
|
||||
bool isOerFib4 = cBar.low > conditions.fl4Buffer[cIndex];
|
||||
bool isOerFib5 = cBar.low > conditions.fl5Buffer[cIndex];
|
||||
|
||||
//
|
||||
bool isUnderFib1 = cBar.high < conditions.fl1Buffer[cIndex];
|
||||
bool isUnderFib2 = cBar.high < conditions.fl2Buffer[cIndex];
|
||||
bool isUnderFib3 = cBar.high < conditions.fl3Buffer[cIndex];
|
||||
bool isUnderFib4 = cBar.high < conditions.fl4Buffer[cIndex];
|
||||
bool isUnderFib5 = cBar.high < conditions.fl5Buffer[cIndex];
|
||||
|
||||
//
|
||||
bool isCloseOerFib1 = cBar.close > conditions.fl1Buffer[cIndex];
|
||||
bool isCloseOerFib2 = cBar.close > conditions.fl2Buffer[cIndex];
|
||||
bool isCloseOerFib3 = cBar.close > conditions.fl3Buffer[cIndex];
|
||||
bool isCloseOerFib4 = cBar.close > conditions.fl4Buffer[cIndex];
|
||||
bool isCloseOerFib5 = cBar.close > conditions.fl5Buffer[cIndex];
|
||||
|
||||
//
|
||||
bool isCloseUnderFib1 = cBar.close < conditions.fl1Buffer[cIndex];
|
||||
bool isCloseUnderFib2 = cBar.close < conditions.fl2Buffer[cIndex];
|
||||
bool isCloseUnderFib3 = cBar.close < conditions.fl3Buffer[cIndex];
|
||||
bool isCloseUnderFib4 = cBar.close < conditions.fl4Buffer[cIndex];
|
||||
bool isCloseUnderFib5 = cBar.close < conditions.fl5Buffer[cIndex];
|
||||
|
||||
//
|
||||
|
||||
//
|
||||
// Set ...
|
||||
conditions.isSarBullish = isSarBullish;
|
||||
conditions.isSarBearish = isSarBearish;
|
||||
conditions.isSarSwitchedBullish = isSarSwitchedBullish;
|
||||
conditions.isSarSwitchedBearish = isSarSwitchedBearish;
|
||||
conditions.isNewPeak = isNewPeak;
|
||||
conditions.isNewPeakOverLast = isNewPeakOverLast;
|
||||
conditions.isNewPeakUnderLast = isNewPeakUnderLast;
|
||||
conditions.isNewVale = isNewVale;
|
||||
conditions.isNewValeOverLast = isNewValeOverLast;
|
||||
conditions.isNewValeUnderLast = isNewValeUnderLast;
|
||||
conditions.isVWapFastBullish = isVWapFastBullish;
|
||||
conditions.isVWapFastBearish = isVWapFastBearish;
|
||||
conditions.isVWapFastNeutural = isVWapFastNeutural;
|
||||
conditions.isVWapMidBullish = isVWapMidBullish;
|
||||
conditions.isVWapMidBearish = isVWapMidBearish;
|
||||
conditions.isVWapMidNeutural = isVWapMidNeutural;
|
||||
conditions.isVWapSlowBullish = isVWapSlowBullish;
|
||||
conditions.isVWapSlowBearish = isVWapSlowBearish;
|
||||
conditions.isVWapSlowNeutural = isVWapSlowNeutural;
|
||||
conditions.isVWapFastOverMid = isVWapFastOverMid;
|
||||
conditions.isVWapMidOverSlow = isVWapMidOverSlow;
|
||||
conditions.isVWapFastUnderMid = isVWapFastUnderMid;
|
||||
conditions.isVWapMidUnderSlow = isVWapMidUnderSlow;
|
||||
conditions.isVWapBullishState = isVWapBullishState;
|
||||
conditions.isVWapBearishState = isVWapBearishState;
|
||||
conditions.isVWapNeuturalState = isVWapNeuturalState;
|
||||
conditions.isVWapBullishOrdered = isVWapBullishOrdered;
|
||||
conditions.isVWapBearishOrdered = isVWapBearishOrdered;
|
||||
conditions.isVWapSwitchedToBullishOrdered = isVWapSwitchedToBullishOrdered;
|
||||
conditions.isVWapSwitchedToBearishOrdered = isVWapSwitchedToBearishOrdered;
|
||||
conditions.isVWapSwitchedToBullishState = isVWapSwitchedToBullishState;
|
||||
conditions.isVWapSwitchedToBearishState = isVWapSwitchedToBearishState;
|
||||
conditions.isVWapSwitchedToNeuturalState = isVWapSwitchedToNeuturalState;
|
||||
conditions.isOerFib1 = isOerFib1;
|
||||
conditions.isOerFib2 = isOerFib2;
|
||||
conditions.isOerFib3 = isOerFib3;
|
||||
conditions.isOerFib4 = isOerFib4;
|
||||
conditions.isOerFib5 = isOerFib5;
|
||||
conditions.isUnderFib1 = isUnderFib1;
|
||||
conditions.isUnderFib2 = isUnderFib2;
|
||||
conditions.isUnderFib3 = isUnderFib3;
|
||||
conditions.isUnderFib4 = isUnderFib4;
|
||||
conditions.isUnderFib5 = isUnderFib5;
|
||||
conditions.isCloseOerFib1 = isCloseOerFib1;
|
||||
conditions.isCloseOerFib2 = isCloseOerFib2;
|
||||
conditions.isCloseOerFib3 = isCloseOerFib3;
|
||||
conditions.isCloseOerFib4 = isCloseOerFib4;
|
||||
conditions.isCloseOerFib5 = isCloseOerFib5;
|
||||
conditions.isCloseUnderFib1 = isCloseUnderFib1;
|
||||
conditions.isCloseUnderFib2 = isCloseUnderFib2;
|
||||
conditions.isCloseUnderFib3 = isCloseUnderFib3;
|
||||
conditions.isCloseUnderFib4 = isCloseUnderFib4;
|
||||
conditions.isCloseUnderFib5 = isCloseUnderFib5;
|
||||
|
||||
//
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user