cleanup x121 helper, apply all cleanup and buffers and conditions on helpers and try to complete x121 new helper ...
This commit is contained in:
@@ -158,3 +158,5 @@
|
|||||||
// isNearestTenkensSenCrossedUnderKijunSen
|
// isNearestTenkensSenCrossedUnderKijunSen
|
||||||
//
|
//
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
|
||||||
|
//
|
||||||
|
// XCC ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XPV ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XHK ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XMAS ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XATR ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XSTR ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XCHE ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// X3MA ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XVWAP ...
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
|
||||||
|
//
|
||||||
|
// XCC ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XPV ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XHK ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XMAS ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XATR ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XSTR ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XCHE ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// X3MA ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XVWAP ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
@@ -0,0 +1,359 @@
|
|||||||
|
|
||||||
|
//
|
||||||
|
// XCC ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XPV ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
double sarBuffer[];
|
||||||
|
double cHHBuffer[];
|
||||||
|
double cLLBuffer[];
|
||||||
|
double sHHBuffer[];
|
||||||
|
double sLLBuffer[];
|
||||||
|
double mHHBuffer[];
|
||||||
|
double mLLBuffer[];
|
||||||
|
double lHHBuffer[];
|
||||||
|
double lLLBuffer[];
|
||||||
|
double hHHBuffer[];
|
||||||
|
double hLLBuffer[];
|
||||||
|
double peaksBuffer[];
|
||||||
|
double valesBuffer[];
|
||||||
|
double supportsBuffer[];
|
||||||
|
double peaksGoldenBuffer[];
|
||||||
|
double valesGoldenBuffer[];
|
||||||
|
double resistancesBuffer[];
|
||||||
|
double fractalsUpperBuffer[];
|
||||||
|
double fractalsLowerBuffer[];
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isSarBullish;
|
||||||
|
bool isSarBearish;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isSarSwitchedToBullish;
|
||||||
|
bool isSarSwitchedToBearish;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isNewPeak;
|
||||||
|
bool isNewPeakOverLast;
|
||||||
|
bool isNewPeakUnderLast;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isNewVale;
|
||||||
|
bool isNewValeOverLast;
|
||||||
|
bool isNewValeUnderLast;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XHK ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
double xhkSMLowBuffer[];
|
||||||
|
double xhkRawLowBuffer[];
|
||||||
|
double xhkSMOpenBuffer[];
|
||||||
|
double xhkSMHighBuffer[];
|
||||||
|
double xhkRawOpenBuffer[];
|
||||||
|
double xhkRawHighBuffer[];
|
||||||
|
double xhkSMCloseBuffer[];
|
||||||
|
double xhkRawCloseBuffer[];
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isSMHKBullish;
|
||||||
|
bool isRawHKBullish;
|
||||||
|
bool isSMHKSwitchedToBullish;
|
||||||
|
bool isRawHKSwitchedToBullish;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isSMHKBearish;
|
||||||
|
bool isRawHKBearish;
|
||||||
|
bool isSMHKSwitchedToBearish;
|
||||||
|
bool isRawHKSwitchedToBearish;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isClosedOverSMHK;
|
||||||
|
bool isClosedUnderSMHK;
|
||||||
|
bool isClosedOverRawHK;
|
||||||
|
bool isClosedUnderRawHK;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isRawHKClosedOverSMHK;
|
||||||
|
bool isRawHKClosedUnderSMHK;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XMAS ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
double midBuffer[];
|
||||||
|
double upperBuffer[];
|
||||||
|
double lowerBuffer[];
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XATR ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
double rsiBuffer[];
|
||||||
|
double atrBuffer[];
|
||||||
|
double atrUpperBuffer[];
|
||||||
|
double atrLowerBuffer[];
|
||||||
|
double atrUpperSMBuffer[];
|
||||||
|
double atrLowerSMBuffer[];
|
||||||
|
double rsiChangeBuffer[];
|
||||||
|
double rsiChangeSMBuffer[];
|
||||||
|
double priceChangeBuffer[];
|
||||||
|
double priceChangeSMBuffer[];
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isRsiInRange;
|
||||||
|
bool isRsiOverSold;
|
||||||
|
bool isRsiOverBought;
|
||||||
|
bool isRsiCrossedOverOverSold;
|
||||||
|
bool isRsiCrossedUnderOverSold;
|
||||||
|
bool isRsiCrossedOverOverBought;
|
||||||
|
bool isRsiCrossedUnderOverBought;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isRsiSMOverPriceChange;
|
||||||
|
bool isRsiSMUnderPriceChange;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isRsiSMCrossedOverPriceChange;
|
||||||
|
bool isRsiSMCrossedUnderPriceChange;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isPriceChangeSMOverRsi;
|
||||||
|
bool isPriceChangeSMUnderRsi;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isPriceChangeSMCrossedOverRsi;
|
||||||
|
bool isPriceChangeSMCrossedUnderRsi;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isRsiOverRsiSM;
|
||||||
|
bool isRsiUnderRsiSM;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isRsiCrossedOverRsiSM;
|
||||||
|
bool isRsiCrossedUnderRsiSM;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isPriceChangeOverPriceChangeSM;
|
||||||
|
bool isPriceChangeUnderPriceChangeSM;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isPriceChangeCrossedOverPriceChangeSM;
|
||||||
|
bool isPriceChangeCrossedUnderPriceChangeSM;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XSTR ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
double strBuffer[];
|
||||||
|
double strUpBuffer[];
|
||||||
|
double strDownBuffer[];
|
||||||
|
double strPriceBuffer[];
|
||||||
|
double strStateBuffer[];
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isStrBullish;
|
||||||
|
bool isStrBearish;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isStrSwitchedToBullish;
|
||||||
|
bool isStrSwitchedToBearish;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XCHE ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
double le1Buffer[];
|
||||||
|
double se1Buffer[];
|
||||||
|
double le2Buffer[];
|
||||||
|
double se2Buffer[];
|
||||||
|
double le1StartBuffer[];
|
||||||
|
double se1StartBuffer[];
|
||||||
|
double le2StartBuffer[];
|
||||||
|
double se2StartBuffer[];
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isChe1Bullish;
|
||||||
|
bool isChe1Bearish;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isChe1SwitchedToBullish;
|
||||||
|
bool isChe1SwitchedToBearish;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isChe2Bullish;
|
||||||
|
bool isChe2Bearish;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isChe2SwitchedToBullish;
|
||||||
|
bool isChe2SwitchedToBearish;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCheBullish;
|
||||||
|
bool isCheBearish;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCheSwitchedToBullish;
|
||||||
|
bool isCheSwitchedToBearish;
|
||||||
|
|
||||||
|
//
|
||||||
|
// X3MA ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
double x3maMidBuffer[];
|
||||||
|
double x3maFastBuffer[];
|
||||||
|
double x3maSlowBuffer[];
|
||||||
|
double x3maMidStateBuffer[];
|
||||||
|
double x3maFastStateBuffer[];
|
||||||
|
double x3maSlowStateBuffer[];
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isX3MaFastBullish;
|
||||||
|
bool isX3MaFastBearish;
|
||||||
|
bool isX3MaFastNeutural;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isX3MaMidBullish;
|
||||||
|
bool isX3MaMidBearish;
|
||||||
|
bool isX3MaMidNeutural;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isX3MaSlowBullish;
|
||||||
|
bool isX3MaSlowBearish;
|
||||||
|
bool isX3MaSlowNeutural;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isX3MaFastOverMid;
|
||||||
|
bool isX3MaMidOverSlow;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isX3MaFastUnderMid;
|
||||||
|
bool isX3MaMidUnderSlow;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isX3MaBullishState;
|
||||||
|
bool isX3MaBearishState;
|
||||||
|
bool isX3MaNeuturalState;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isX3MaBullishOrdered;
|
||||||
|
bool isX3MaBearishOrdered;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isX3MaSwitchedToBullishOrdered;
|
||||||
|
bool isX3MaSwitchedToBearishOrdered;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isX3MaSwitchedToBullishState;
|
||||||
|
bool isX3MaSwitchedToBearishState;
|
||||||
|
bool isX3MaSwitchedToNeuturalState;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XVWAP ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
double vwapMidBuffer[];
|
||||||
|
double vwapFastBuffer[];
|
||||||
|
double vwapSlowBuffer[];
|
||||||
|
double vwapPriceBuffer[];
|
||||||
|
double vwapVolumeBuffer[];
|
||||||
|
double vwapMidStateBuffer[];
|
||||||
|
double vwapFastStateBuffer[];
|
||||||
|
double vwapSlowStateBuffer[];
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
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;
|
||||||
@@ -0,0 +1,408 @@
|
|||||||
|
//
|
||||||
|
// XPV ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clean ...
|
||||||
|
|
||||||
|
//
|
||||||
|
Clean(sarBuffer);
|
||||||
|
Clean(cHHBuffer);
|
||||||
|
Clean(cLLBuffer);
|
||||||
|
Clean(sHHBuffer);
|
||||||
|
Clean(sLLBuffer);
|
||||||
|
Clean(mHHBuffer);
|
||||||
|
Clean(mLLBuffer);
|
||||||
|
Clean(lHHBuffer);
|
||||||
|
Clean(lLLBuffer);
|
||||||
|
Clean(hHHBuffer);
|
||||||
|
Clean(hLLBuffer);
|
||||||
|
Clean(peaksBuffer);
|
||||||
|
Clean(valesBuffer);
|
||||||
|
Clean(supportsBuffer);
|
||||||
|
Clean(peaksGoldenBuffer);
|
||||||
|
Clean(valesGoldenBuffer);
|
||||||
|
Clean(resistancesBuffer);
|
||||||
|
Clean(fractalsUpperBuffer);
|
||||||
|
Clean(fractalsLowerBuffer);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Set As Series ...
|
||||||
|
|
||||||
|
//
|
||||||
|
ArraySetAsSeries(sarBuffer, true);
|
||||||
|
ArraySetAsSeries(cHHBuffer, true);
|
||||||
|
ArraySetAsSeries(cLLBuffer, true);
|
||||||
|
ArraySetAsSeries(sHHBuffer, true);
|
||||||
|
ArraySetAsSeries(sLLBuffer, true);
|
||||||
|
ArraySetAsSeries(mHHBuffer, true);
|
||||||
|
ArraySetAsSeries(mLLBuffer, true);
|
||||||
|
ArraySetAsSeries(lHHBuffer, true);
|
||||||
|
ArraySetAsSeries(lLLBuffer, true);
|
||||||
|
ArraySetAsSeries(hHHBuffer, true);
|
||||||
|
ArraySetAsSeries(hLLBuffer, true);
|
||||||
|
ArraySetAsSeries(peaksBuffer, true);
|
||||||
|
ArraySetAsSeries(valesBuffer, true);
|
||||||
|
ArraySetAsSeries(supportsBuffer, true);
|
||||||
|
ArraySetAsSeries(peaksGoldenBuffer, true);
|
||||||
|
ArraySetAsSeries(valesGoldenBuffer, true);
|
||||||
|
ArraySetAsSeries(resistancesBuffer, true);
|
||||||
|
ArraySetAsSeries(fractalsUpperBuffer, true);
|
||||||
|
ArraySetAsSeries(fractalsLowerBuffer, true);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
isNewPeak = false;
|
||||||
|
isNewVale = false;
|
||||||
|
isSarBullish = false;
|
||||||
|
isSarBearish = false;
|
||||||
|
isNewPeakOverLast = false;
|
||||||
|
isNewValeOverLast = false;
|
||||||
|
isNewPeakUnderLast = false;
|
||||||
|
isNewValeUnderLast = false;
|
||||||
|
isSarSwitchedToBullish = false;
|
||||||
|
isSarSwitchedToBearish = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XHK ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clean ...
|
||||||
|
|
||||||
|
//
|
||||||
|
Clean(xhkSMLowBuffer);
|
||||||
|
Clean(xhkRawLowBuffer);
|
||||||
|
Clean(xhkSMOpenBuffer);
|
||||||
|
Clean(xhkSMHighBuffer);
|
||||||
|
Clean(xhkRawOpenBuffer);
|
||||||
|
Clean(xhkRawHighBuffer);
|
||||||
|
Clean(xhkSMCloseBuffer);
|
||||||
|
Clean(xhkRawCloseBuffer);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Set As Series ...
|
||||||
|
|
||||||
|
//
|
||||||
|
ArraySetAsSeries(xhkSMLowBuffer, true);
|
||||||
|
ArraySetAsSeries(xhkRawLowBuffer, true);
|
||||||
|
ArraySetAsSeries(xhkSMOpenBuffer, true);
|
||||||
|
ArraySetAsSeries(xhkSMHighBuffer, true);
|
||||||
|
ArraySetAsSeries(xhkRawOpenBuffer, true);
|
||||||
|
ArraySetAsSeries(xhkRawHighBuffer, true);
|
||||||
|
ArraySetAsSeries(xhkSMCloseBuffer, true);
|
||||||
|
ArraySetAsSeries(xhkRawCloseBuffer, true);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
isSMHKBullish = false;
|
||||||
|
isSMHKBearish = false;
|
||||||
|
isRawHKBullish = false;
|
||||||
|
isRawHKBearish = false;
|
||||||
|
isClosedOverSMHK = false;
|
||||||
|
isClosedUnderSMHK = false;
|
||||||
|
isClosedOverRawHK = false;
|
||||||
|
isClosedUnderRawHK = false;
|
||||||
|
isRawHKClosedOverSMHK = false;
|
||||||
|
isRawHKClosedUnderSMHK = false;
|
||||||
|
isSMHKSwitchedToBearish = false;
|
||||||
|
isSMHKSwitchedToBullish = false;
|
||||||
|
isRawHKSwitchedToBullish = false;
|
||||||
|
isRawHKSwitchedToBearish = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XMAS ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clean ...
|
||||||
|
|
||||||
|
//
|
||||||
|
Clean(midBuffer);
|
||||||
|
Clean(upperBuffer);
|
||||||
|
Clean(lowerBuffer);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Set As Series ...
|
||||||
|
|
||||||
|
//
|
||||||
|
ArraySetAsSeries(midBuffer, true);
|
||||||
|
ArraySetAsSeries(upperBuffer, true);
|
||||||
|
ArraySetAsSeries(lowerBuffer, true);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XATR ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clean ...
|
||||||
|
|
||||||
|
//
|
||||||
|
Clean(rsiBuffer);
|
||||||
|
Clean(atrBuffer);
|
||||||
|
Clean(atrUpperBuffer);
|
||||||
|
Clean(atrLowerBuffer);
|
||||||
|
Clean(rsiChangeBuffer);
|
||||||
|
Clean(atrUpperSMBuffer);
|
||||||
|
Clean(atrLowerSMBuffer);
|
||||||
|
Clean(rsiChangeSMBuffer);
|
||||||
|
Clean(priceChangeBuffer);
|
||||||
|
Clean(priceChangeSMBuffer);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Set As Series ...
|
||||||
|
|
||||||
|
//
|
||||||
|
ArraySetAsSeries(rsiBuffer, true);
|
||||||
|
ArraySetAsSeries(atrBuffer, true);
|
||||||
|
ArraySetAsSeries(atrUpperBuffer, true);
|
||||||
|
ArraySetAsSeries(atrLowerBuffer, true);
|
||||||
|
ArraySetAsSeries(rsiChangeBuffer, true);
|
||||||
|
ArraySetAsSeries(atrUpperSMBuffer, true);
|
||||||
|
ArraySetAsSeries(atrLowerSMBuffer, true);
|
||||||
|
ArraySetAsSeries(rsiChangeSMBuffer, true);
|
||||||
|
ArraySetAsSeries(priceChangeBuffer, true);
|
||||||
|
ArraySetAsSeries(priceChangeSMBuffer, true);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
isRsiInRange = false;
|
||||||
|
isRsiOverSold = false;
|
||||||
|
isRsiOverRsiSM = false;
|
||||||
|
isRsiUnderRsiSM = false;
|
||||||
|
isRsiOverBought = false;
|
||||||
|
isRsiCrossedOverRsiSM = false;
|
||||||
|
isRsiCrossedUnderRsiSM = false;
|
||||||
|
isPriceChangeSMOverRsi = false;
|
||||||
|
isRsiSMOverPriceChange = false;
|
||||||
|
isRsiSMUnderPriceChange = false;
|
||||||
|
isPriceChangeSMUnderRsi = false;
|
||||||
|
isRsiCrossedOverOverSold = false;
|
||||||
|
isRsiCrossedUnderOverSold = false;
|
||||||
|
isRsiCrossedOverOverBought = false;
|
||||||
|
isRsiCrossedUnderOverBought = false;
|
||||||
|
isRsiSMCrossedOverPriceChange = false;
|
||||||
|
isPriceChangeSMCrossedOverRsi = false;
|
||||||
|
isRsiSMCrossedUnderPriceChange = false;
|
||||||
|
isPriceChangeSMCrossedUnderRsi = false;
|
||||||
|
isPriceChangeOverPriceChangeSM = false;
|
||||||
|
isPriceChangeUnderPriceChangeSM = false;
|
||||||
|
isPriceChangeCrossedOverPriceChangeSM = false;
|
||||||
|
isPriceChangeCrossedUnderPriceChangeSM = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XSTR ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clean ...
|
||||||
|
|
||||||
|
//
|
||||||
|
Clean(strBuffer);
|
||||||
|
Clean(strUpBuffer);
|
||||||
|
Clean(strDownBuffer);
|
||||||
|
Clean(strPriceBuffer);
|
||||||
|
Clean(strStateBuffer);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Set As Series ...
|
||||||
|
|
||||||
|
//
|
||||||
|
ArraySetAsSeries(strBuffer, true);
|
||||||
|
ArraySetAsSeries(strUpBuffer, true);
|
||||||
|
ArraySetAsSeries(strDownBuffer, true);
|
||||||
|
ArraySetAsSeries(strPriceBuffer, true);
|
||||||
|
ArraySetAsSeries(strStateBuffer, true);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
isStrBullish = false;
|
||||||
|
isStrBearish = false;
|
||||||
|
isStrSwitchedToBullish = false;
|
||||||
|
isStrSwitchedToBearish = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XCHE ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clean ...
|
||||||
|
|
||||||
|
//
|
||||||
|
Clean(le1Buffer);
|
||||||
|
Clean(se1Buffer);
|
||||||
|
Clean(le2Buffer);
|
||||||
|
Clean(se2Buffer);
|
||||||
|
Clean(le1StartBuffer);
|
||||||
|
Clean(se1StartBuffer);
|
||||||
|
Clean(le2StartBuffer);
|
||||||
|
Clean(se2StartBuffer);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Set As Series ...
|
||||||
|
|
||||||
|
//
|
||||||
|
ArraySetAsSeries(le1Buffer, true);
|
||||||
|
ArraySetAsSeries(se1Buffer, true);
|
||||||
|
ArraySetAsSeries(le2Buffer, true);
|
||||||
|
ArraySetAsSeries(se2Buffer, true);
|
||||||
|
ArraySetAsSeries(le1StartBuffer, true);
|
||||||
|
ArraySetAsSeries(se1StartBuffer, true);
|
||||||
|
ArraySetAsSeries(le2StartBuffer, true);
|
||||||
|
ArraySetAsSeries(se2StartBuffer, true);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
isCheBullish = false;
|
||||||
|
isCheBearish = false;
|
||||||
|
isChe1Bullish = false;
|
||||||
|
isChe1Bearish = false;
|
||||||
|
isChe2Bullish = false;
|
||||||
|
isChe2Bearish = false;
|
||||||
|
isCheSwitchedToBullish = false;
|
||||||
|
isCheSwitchedToBearish = false;
|
||||||
|
isChe1SwitchedToBullish = false;
|
||||||
|
isChe1SwitchedToBearish = false;
|
||||||
|
isChe2SwitchedToBullish = false;
|
||||||
|
isChe2SwitchedToBearish = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// X3MA ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clean ...
|
||||||
|
|
||||||
|
//
|
||||||
|
Clean(x3maMidBuffer);
|
||||||
|
Clean(x3maFastBuffer);
|
||||||
|
Clean(x3maSlowBuffer);
|
||||||
|
Clean(x3maMidStateBuffer);
|
||||||
|
Clean(x3maFastStateBuffer);
|
||||||
|
Clean(x3maSlowStateBuffer);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Set As Series ...
|
||||||
|
|
||||||
|
//
|
||||||
|
ArraySetAsSeries(x3maMidBuffer, true);
|
||||||
|
ArraySetAsSeries(x3maFastBuffer, true);
|
||||||
|
ArraySetAsSeries(x3maSlowBuffer, true);
|
||||||
|
ArraySetAsSeries(x3maMidStateBuffer, true);
|
||||||
|
ArraySetAsSeries(x3maFastStateBuffer, true);
|
||||||
|
ArraySetAsSeries(x3maSlowStateBuffer, true);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
isX3MaMidBullish = false;
|
||||||
|
isX3MaMidBearish = false;
|
||||||
|
isX3MaFastBullish = false;
|
||||||
|
isX3MaFastBearish = false;
|
||||||
|
isX3MaMidNeutural = false;
|
||||||
|
isX3MaSlowBullish = false;
|
||||||
|
isX3MaSlowBearish = false;
|
||||||
|
isX3MaFastOverMid = false;
|
||||||
|
isX3MaMidOverSlow = false;
|
||||||
|
isX3MaFastNeutural = false;
|
||||||
|
isX3MaSlowNeutural = false;
|
||||||
|
isX3MaFastUnderMid = false;
|
||||||
|
isX3MaMidUnderSlow = false;
|
||||||
|
isX3MaBullishState = false;
|
||||||
|
isX3MaBearishState = false;
|
||||||
|
isX3MaNeuturalState = false;
|
||||||
|
isX3MaBullishOrdered = false;
|
||||||
|
isX3MaBearishOrdered = false;
|
||||||
|
isX3MaSwitchedToBullishState = false;
|
||||||
|
isX3MaSwitchedToBearishState = false;
|
||||||
|
isX3MaSwitchedToNeuturalState = false;
|
||||||
|
isX3MaSwitchedToBullishOrdered = false;
|
||||||
|
isX3MaSwitchedToBearishOrdered = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XVWAP ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Buffers ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clean ...
|
||||||
|
|
||||||
|
//
|
||||||
|
Clean(vwapMidBuffer);
|
||||||
|
Clean(vwapFastBuffer);
|
||||||
|
Clean(vwapSlowBuffer);
|
||||||
|
Clean(vwapPriceBuffer);
|
||||||
|
Clean(vwapVolumeBuffer);
|
||||||
|
Clean(vwapMidStateBuffer);
|
||||||
|
Clean(vwapFastStateBuffer);
|
||||||
|
Clean(vwapSlowStateBuffer);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Set As Series ...
|
||||||
|
|
||||||
|
//
|
||||||
|
ArraySetAsSeries(vwapMidBuffer, true);
|
||||||
|
ArraySetAsSeries(vwapFastBuffer, true);
|
||||||
|
ArraySetAsSeries(vwapSlowBuffer, true);
|
||||||
|
ArraySetAsSeries(vwapPriceBuffer, true);
|
||||||
|
ArraySetAsSeries(vwapVolumeBuffer, true);
|
||||||
|
ArraySetAsSeries(vwapMidStateBuffer, true);
|
||||||
|
ArraySetAsSeries(vwapFastStateBuffer, true);
|
||||||
|
ArraySetAsSeries(vwapSlowStateBuffer, true);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
isVWapMidBullish = false;
|
||||||
|
isVWapMidBearish = false;
|
||||||
|
isVWapMidNeutural = false;
|
||||||
|
isVWapFastBullish = false;
|
||||||
|
isVWapFastBearish = false;
|
||||||
|
isVWapSlowBullish = false;
|
||||||
|
isVWapSlowBearish = false;
|
||||||
|
isVWapFastOverMid = false;
|
||||||
|
isVWapMidOverSlow = false;
|
||||||
|
isVWapFastNeutural = false;
|
||||||
|
isVWapSlowNeutural = false;
|
||||||
|
isVWapFastUnderMid = false;
|
||||||
|
isVWapMidUnderSlow = false;
|
||||||
|
isVWapBullishState = false;
|
||||||
|
isVWapBearishState = false;
|
||||||
|
isVWapNeuturalState = false;
|
||||||
|
isVWapBullishOrdered = false;
|
||||||
|
isVWapBearishOrdered = false;
|
||||||
|
isVWapSwitchedToBullishState = false;
|
||||||
|
isVWapSwitchedToBearishState = false;
|
||||||
|
isVWapSwitchedToNeuturalState = false;
|
||||||
|
isVWapSwitchedToBullishOrdered = false;
|
||||||
|
isVWapSwitchedToBearishOrdered = false;
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
|
||||||
|
//
|
||||||
|
// XDON ...
|
||||||
|
x121Inputs.xdonInputs.showOpen = showAll || false;
|
||||||
|
x121Inputs.xdonInputs.showClose = showAll || false;
|
||||||
|
x121Inputs.xdonInputs.showLow = showAll || false;
|
||||||
|
x121Inputs.xdonInputs.showHigh = showAll || false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XICH ...
|
||||||
|
x121Inputs.xichInputs.showTenkanSen = showAll || false;
|
||||||
|
x121Inputs.xichInputs.showKijunSen = showAll || false;
|
||||||
|
x121Inputs.xichInputs.showChikouSpan = showAll || false;
|
||||||
|
x121Inputs.xichInputs.showSenkouSpanA = showAll || false;
|
||||||
|
x121Inputs.xichInputs.showSenkouSpanB = showAll || false;
|
||||||
|
x121Inputs.xichInputs.showKumo = showAll || false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XCC ...
|
||||||
|
x121Inputs.xccInputs.showCandles = showAll || true;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XPV ...
|
||||||
|
|
||||||
|
//
|
||||||
|
x121Inputs.xpvInputs.showSar = showAll || false;
|
||||||
|
x121Inputs.xpvInputs.showPeaks = showAll || true;
|
||||||
|
x121Inputs.xpvInputs.showVales = showAll || true;
|
||||||
|
x121Inputs.xpvInputs.showSupports = showAll || false;
|
||||||
|
x121Inputs.xpvInputs.showResistances = showAll || false;
|
||||||
|
x121Inputs.xpvInputs.showGoldenZones = showAll || true;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XHK ...
|
||||||
|
|
||||||
|
//
|
||||||
|
x121Inputs.xhkInputs.drawRawXHKCandles = showAll || false;
|
||||||
|
x121Inputs.xhkInputs.drawSmoothedXHKCandles = showAll || false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XMAS ...
|
||||||
|
|
||||||
|
//
|
||||||
|
x121Inputs.xmasInputs.showUpper = showAll || false;
|
||||||
|
x121Inputs.xmasInputs.showMid = showAll || false;
|
||||||
|
x121Inputs.xmasInputs.showLower = showAll || false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XATR ...
|
||||||
|
x121Inputs.xatrInputs.showATRUpper = showAll || false;
|
||||||
|
x121Inputs.xatrInputs.showATRLower = showAll || false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XSTR ...
|
||||||
|
x121Inputs.xstrInputs.showStr = showAll || true;
|
||||||
|
x121Inputs.xstrInputs.showStrUpper = showAll || false;
|
||||||
|
x121Inputs.xstrInputs.showStrLower = showAll || false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XCHE ...
|
||||||
|
x121Inputs.xcheInputs.showLE1 = showAll || false;
|
||||||
|
x121Inputs.xcheInputs.showLE2 = showAll || false;
|
||||||
|
x121Inputs.xcheInputs.showSE1 = showAll || false;
|
||||||
|
x121Inputs.xcheInputs.showSE2 = showAll || false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XVWAP ...
|
||||||
|
x121Inputs.xvwapInputs.showVWapFast = showAll || false;
|
||||||
|
x121Inputs.xvwapInputs.showVWapMedium = showAll || false;
|
||||||
|
x121Inputs.xvwapInputs.showVWapSlow = showAll || false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// X3MA ...
|
||||||
|
x121Inputs.x3maInputs.showX3MaFast = showAll || true;
|
||||||
|
x121Inputs.x3maInputs.showX3MaMid = showAll || false;
|
||||||
|
x121Inputs.x3maInputs.showX3MaSlow = showAll || false;
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// x121Inputs.xcheInputs.cheLength = 14;
|
||||||
|
// x121Inputs.xcheInputs.cheLoopback = 7;
|
||||||
|
// x121Inputs.xcheInputs.cheMultiplier1 = 1.5;
|
||||||
|
// x121Inputs.xcheInputs.cheMultiplier2 = 2;
|
||||||
|
|
||||||
|
//
|
||||||
|
// x121Inputs.xstrInputs.strLength = 14;
|
||||||
|
// x121Inputs.xstrInputs.strMultiplier = 1.5;
|
||||||
|
|
||||||
|
//
|
||||||
|
// x121Inputs.xccInputs.upColor = clrLime;
|
||||||
|
// x121Inputs.xccInputs.downColor = clrRed;
|
||||||
|
// x121Inputs.xccInputs.lineColor = CLR_NONE;
|
||||||
|
// x121Inputs.xccInputs.bearishColor = clrRed;
|
||||||
|
// x121Inputs.xccInputs.bullishColor = clrLime;
|
||||||
|
// x121Inputs.xccInputs.volumesColor = clrGreen;
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,580 @@
|
|||||||
|
|
||||||
|
//
|
||||||
|
bool DetectNearestTenKijCross(
|
||||||
|
XOHCL &bar,
|
||||||
|
ENUM_X_DIRECTION &dir,
|
||||||
|
int barIndex = 0,
|
||||||
|
int maxAllowedBars = 20 //
|
||||||
|
)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bool result = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
bar.Clean();
|
||||||
|
dir = X_DIRECTION_NONE;
|
||||||
|
barIndex = NormalizeInt(barIndex, 0);
|
||||||
|
maxAllowedBars = NormalizeInt(maxAllowedBars, 20);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Looping Through LoopBack Period ...
|
||||||
|
// for Detecting Result ...
|
||||||
|
for (int i = barIndex; i < barIndex + maxAllowedBars; i++)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
XOHCL iBar;
|
||||||
|
result = iBar.Init(
|
||||||
|
GetSymbol(),
|
||||||
|
GetPeriod(),
|
||||||
|
i //
|
||||||
|
);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
iBar.Clean();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
double iTSen = mX121Helper.xichHelper.GetTenkanSen(i);
|
||||||
|
double iTSenP = mX121Helper.xichHelper.GetTenkanSen(i + 1);
|
||||||
|
|
||||||
|
//
|
||||||
|
double iKSen = mX121Helper.xichHelper.GetKijunSen(i);
|
||||||
|
double iKSenP = mX121Helper.xichHelper.GetKijunSen(i + 1);
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isTSenOverKSen = iTSen > iKSen;
|
||||||
|
bool isTSenOverKSenP = iTSenP > iKSenP;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isTSenUnderKSen = iTSen < iKSen;
|
||||||
|
bool isTSenUnderKSenP = iTSenP < iKSenP;
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isTSenCrossedOverKSen = isTSenOverKSen &&
|
||||||
|
!isTSenOverKSenP;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isTSenCrossedUnderKSen = isTSenUnderKSen &&
|
||||||
|
!isTSenUnderKSenP;
|
||||||
|
|
||||||
|
//
|
||||||
|
result = isTSenCrossedOverKSen ||
|
||||||
|
isTSenCrossedUnderKSen;
|
||||||
|
if (result)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bar = iBar;
|
||||||
|
|
||||||
|
//
|
||||||
|
dir = isTSenCrossedOverKSen
|
||||||
|
? X_DIRECTION_BULLISH
|
||||||
|
: X_DIRECTION_BEARISH;
|
||||||
|
|
||||||
|
//
|
||||||
|
iBar.Clean();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
iBar.Clean();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
bool DetectNearestVolumeSwitched(
|
||||||
|
XOHCL &bar,
|
||||||
|
ENUM_X_DIRECTION &dir,
|
||||||
|
int barIndex = 0,
|
||||||
|
int maxAllowedBars = 20 //
|
||||||
|
)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bool result = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
bar.Clean();
|
||||||
|
dir = X_DIRECTION_NONE;
|
||||||
|
barIndex = NormalizeInt(barIndex, 0);
|
||||||
|
maxAllowedBars = NormalizeInt(maxAllowedBars, 20);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Looping Through LoopBack Period ...
|
||||||
|
// for Detecting Result ...
|
||||||
|
for (int i = barIndex; i < barIndex + maxAllowedBars; i++)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
XOHCL iBar;
|
||||||
|
result = iBar.Init(
|
||||||
|
GetSymbol(),
|
||||||
|
GetPeriod(),
|
||||||
|
i //
|
||||||
|
);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
iBar.Clean();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
double iBullVMa = mX121Helper.xvolumeHelper.GetBullishVolumeMa(i);
|
||||||
|
double iBullVMaP = mX121Helper.xvolumeHelper.GetBullishVolumeMa(i + 1);
|
||||||
|
|
||||||
|
//
|
||||||
|
double iBearVMa = mX121Helper.xvolumeHelper.GetBearishVolumeMa(i);
|
||||||
|
double iBearVMaP = mX121Helper.xvolumeHelper.GetBearishVolumeMa(i + 1);
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isBullVMaOverBearVMa = iBullVMa > iBearVMa;
|
||||||
|
bool isBullVMaOverBearVMaP = iBullVMaP > iBearVMaP;
|
||||||
|
bool isCrossOver = isBullVMaOverBearVMa &&
|
||||||
|
!isBullVMaOverBearVMaP;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isBullVMaUnderBearVMa = iBullVMa < iBearVMa;
|
||||||
|
bool isBullVMaUnderBearVMaP = iBullVMaP < iBearVMaP;
|
||||||
|
bool isCrossUnder = isBullVMaUnderBearVMa &&
|
||||||
|
!isBullVMaUnderBearVMaP;
|
||||||
|
|
||||||
|
//
|
||||||
|
result = isCrossOver ||
|
||||||
|
isCrossUnder;
|
||||||
|
if (result)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bar = iBar;
|
||||||
|
|
||||||
|
//
|
||||||
|
dir = isCrossOver
|
||||||
|
? X_DIRECTION_BULLISH
|
||||||
|
: X_DIRECTION_BEARISH;
|
||||||
|
|
||||||
|
//
|
||||||
|
iBar.Clean();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
iBar.Clean();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
bool DetectNearestDeltaSwitched(
|
||||||
|
XOHCL &bar,
|
||||||
|
ENUM_X_DIRECTION &dir,
|
||||||
|
int barIndex = 0,
|
||||||
|
int maxAllowedBars = 20 //
|
||||||
|
)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bool result = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
bar.Clean();
|
||||||
|
dir = X_DIRECTION_NONE;
|
||||||
|
barIndex = NormalizeInt(barIndex, 0);
|
||||||
|
maxAllowedBars = NormalizeInt(maxAllowedBars, 20);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Looping Through LoopBack Period ...
|
||||||
|
// for Detecting Result ...
|
||||||
|
for (int i = barIndex; i < barIndex + maxAllowedBars; i++)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
XOHCL iBar;
|
||||||
|
result = iBar.Init(
|
||||||
|
GetSymbol(),
|
||||||
|
GetPeriod(),
|
||||||
|
i //
|
||||||
|
);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
iBar.Clean();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
double iDelta = mX121Helper.xdeltaHelper.GetDelta(i);
|
||||||
|
double iDeltaP = mX121Helper.xdeltaHelper.GetDelta(i + 1);
|
||||||
|
|
||||||
|
//
|
||||||
|
double iDeltaMa = mX121Helper.xdeltaHelper.GetDeltaMa(i);
|
||||||
|
double iDeltaMaP = mX121Helper.xdeltaHelper.GetDeltaMa(i + 1);
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isDeltaOverMa = iDelta > iDeltaMa;
|
||||||
|
bool isDeltaOverMaP = iDeltaP > iDeltaMaP;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isDeltaUnderMa = iDelta < iDeltaMa;
|
||||||
|
bool isDeltaUnderMaP = iDeltaP < iDeltaMaP;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCrossOver = isDeltaOverMa &&
|
||||||
|
!isDeltaOverMaP;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCrossUnder = isDeltaUnderMa &&
|
||||||
|
!isDeltaUnderMaP;
|
||||||
|
|
||||||
|
//
|
||||||
|
result = isCrossOver ||
|
||||||
|
isCrossUnder;
|
||||||
|
if (result)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bar = iBar;
|
||||||
|
|
||||||
|
//
|
||||||
|
dir = isCrossOver
|
||||||
|
? X_DIRECTION_BULLISH
|
||||||
|
: X_DIRECTION_BEARISH;
|
||||||
|
|
||||||
|
//
|
||||||
|
iBar.Clean();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
iBar.Clean();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Activated Boxes ...
|
||||||
|
bool HasActivatedBoxConditions(
|
||||||
|
ENUM_X_CYCLES cycle,
|
||||||
|
XSignalBox &box,
|
||||||
|
ENUM_X_DIRECTION &dir,
|
||||||
|
XSignalBox &waitingBoxes[],
|
||||||
|
X121SMCStrategySignalProviderData &provider,
|
||||||
|
int barIndex = 0 //
|
||||||
|
)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bool result = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
box.Clean();
|
||||||
|
dir = X_DIRECTION_NONE;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Checking Waiting Baoxes Exists ...
|
||||||
|
result = HasChild(waitingBoxes);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Fil Selected Data ...
|
||||||
|
XPOIState cState;
|
||||||
|
X121Conditions cXConditions;
|
||||||
|
XPOIStateEvents cStateEvents;
|
||||||
|
XC121SMCCycleHelper *cHelper;
|
||||||
|
X121SMCCycleConditions cConditions;
|
||||||
|
result = provider.SelectCycle(
|
||||||
|
cycle,
|
||||||
|
cState,
|
||||||
|
cStateEvents,
|
||||||
|
cXConditions,
|
||||||
|
cHelper,
|
||||||
|
cConditions //
|
||||||
|
);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
cState.Clean();
|
||||||
|
ZeroMemory(cHelper);
|
||||||
|
cConditions.Clean();
|
||||||
|
cXConditions.Clean();
|
||||||
|
cStateEvents.Clean();
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Parse(cXConditions);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Normalize Args ...
|
||||||
|
|
||||||
|
//
|
||||||
|
if (barIndex < 0)
|
||||||
|
{
|
||||||
|
barIndex = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
int idx = -1;
|
||||||
|
int count = 0;
|
||||||
|
bool has = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
int zIDX = barIndex;
|
||||||
|
int cIDX = zIDX + 1;
|
||||||
|
int pIDX = cIDX + 1;
|
||||||
|
int ppIDX = pIDX + 1;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isBullish = false;
|
||||||
|
bool isBearish = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
XOHCL zBar;
|
||||||
|
XOHCL cBar;
|
||||||
|
XOHCL pBar;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Initial Bars ...
|
||||||
|
result = zBar.Init(
|
||||||
|
cState.symbol,
|
||||||
|
cState.period,
|
||||||
|
barIndex //
|
||||||
|
);
|
||||||
|
result =
|
||||||
|
result &&
|
||||||
|
zBar.GetPreviousBar(cBar);
|
||||||
|
result =
|
||||||
|
result &&
|
||||||
|
cBar.GetPreviousBar(pBar);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
zBar.Clean();
|
||||||
|
cBar.Clean();
|
||||||
|
pBar.Clean();
|
||||||
|
cState.Clean();
|
||||||
|
ZeroMemory(cHelper);
|
||||||
|
cConditions.Clean();
|
||||||
|
cXConditions.Clean();
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Checking Bar Based on Positions State ...
|
||||||
|
ENUM_X_DIRECTION iBarPosDir;
|
||||||
|
bool isBarValidForDir = cHelper
|
||||||
|
.mBarAnalyser
|
||||||
|
.IsValidForPosition(
|
||||||
|
cBar,
|
||||||
|
iBarPosDir //
|
||||||
|
);
|
||||||
|
bool isBarValidForBullish =
|
||||||
|
isBarValidForDir &&
|
||||||
|
IsBullish(iBarPosDir);
|
||||||
|
bool isBarValidForBearish =
|
||||||
|
isBarValidForDir &&
|
||||||
|
IsBearish(iBarPosDir);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Extract Selected Boxes ...
|
||||||
|
XBoxZone selectedBox;
|
||||||
|
XSignalBox iSignalBox;
|
||||||
|
count = ArraySize(waitingBoxes);
|
||||||
|
has = IsValidSize(count);
|
||||||
|
if (has)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
for (int i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
XSignalBox iBox = waitingBoxes[i];
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isBullish = iBox.ob.IsBullish();
|
||||||
|
|
||||||
|
//
|
||||||
|
has = cBar.low < iBox.sharp.upper &&
|
||||||
|
cBar.low > iBox.sharp.lower &&
|
||||||
|
cBar.high > iBox.sharp.lower &&
|
||||||
|
cBar.high < iBox.sharp.upper;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Force Using OB ...
|
||||||
|
if (has)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
iSignalBox = iBox;
|
||||||
|
if (!selectedBox.IsValid())
|
||||||
|
{
|
||||||
|
selectedBox = iBox.ob;
|
||||||
|
}
|
||||||
|
iBox.Clean();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
iBox.Clean();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
result =
|
||||||
|
iSignalBox.IsValid() &&
|
||||||
|
selectedBox.IsValid();
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
zBar.Clean();
|
||||||
|
cBar.Clean();
|
||||||
|
pBar.Clean();
|
||||||
|
cState.Clean();
|
||||||
|
iSignalBox.Clean();
|
||||||
|
selectedBox.Clean();
|
||||||
|
ZeroMemory(cHelper);
|
||||||
|
cConditions.Clean();
|
||||||
|
cXConditions.Clean();
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
bool hasSignalBox = iSignalBox.IsValid();
|
||||||
|
bool isSignalBoxBullish = IsBullish(iSignalBox.ob.dir);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Checking Other Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// XVWAP ...
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isVWapSlopeBullish =
|
||||||
|
cXConditions.isVwapFastSlopeBullish &&
|
||||||
|
cXConditions.isVwapMidSlopeBullish &&
|
||||||
|
cXConditions.isVwapSlowSlopeBullish;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isVWapSlopeBearish =
|
||||||
|
cXConditions.isVwapFastSlopeBearish &&
|
||||||
|
cXConditions.isVwapMidSlopeBearish &&
|
||||||
|
cXConditions.isVwapSlowSlopeBearish;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isVWapBullishCondition =
|
||||||
|
(cXConditions.isVWapBullishOrdered &&
|
||||||
|
cXConditions.isVWapSwitchedToBullishState) ||
|
||||||
|
(cXConditions.isVWapBullishState &&
|
||||||
|
cXConditions.isVWapSwitchedToBullishOrdered);
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isVWapBearishCondition =
|
||||||
|
(cXConditions.isVWapBearishOrdered &&
|
||||||
|
cXConditions.isVWapSwitchedToBearishState) ||
|
||||||
|
(cXConditions.isVWapBearishState &&
|
||||||
|
cXConditions.isVWapSwitchedToBearishOrdered);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Bullish Conditions ...
|
||||||
|
isBullish =
|
||||||
|
//
|
||||||
|
// Base Condition ...
|
||||||
|
(
|
||||||
|
//
|
||||||
|
hasSignalBox &&
|
||||||
|
isSignalBoxBullish &&
|
||||||
|
isVWapSlopeBullish &&
|
||||||
|
isBarValidForBullish &&
|
||||||
|
isVWapBullishCondition
|
||||||
|
//
|
||||||
|
)
|
||||||
|
//
|
||||||
|
;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Bearish Conditions ...
|
||||||
|
isBearish =
|
||||||
|
//
|
||||||
|
// Base Condition ...
|
||||||
|
(
|
||||||
|
//
|
||||||
|
hasSignalBox &&
|
||||||
|
isVWapSlopeBearish &&
|
||||||
|
!isSignalBoxBullish &&
|
||||||
|
isBarValidForBearish &&
|
||||||
|
isVWapBearishCondition
|
||||||
|
//
|
||||||
|
)
|
||||||
|
//
|
||||||
|
;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Filling Requirements ...
|
||||||
|
result =
|
||||||
|
isBullish ||
|
||||||
|
isBearish;
|
||||||
|
if (result)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
dir =
|
||||||
|
isBullish
|
||||||
|
? X_DIRECTION_BULLISH
|
||||||
|
: X_DIRECTION_BEARISH;
|
||||||
|
|
||||||
|
//
|
||||||
|
box = iSignalBox;
|
||||||
|
box.UpdateTo(TimeCurrent());
|
||||||
|
|
||||||
|
//
|
||||||
|
// Provide TP/SL ...
|
||||||
|
|
||||||
|
//
|
||||||
|
box.sl = isBullish
|
||||||
|
? cXConditions.vwapMin
|
||||||
|
: cXConditions.vwapMax;
|
||||||
|
|
||||||
|
//
|
||||||
|
box.tp = isBullish
|
||||||
|
? box.sharp.upper
|
||||||
|
: box.sharp.lower;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Check All Conditions ...
|
||||||
|
result =
|
||||||
|
box.IsValid() &&
|
||||||
|
HasDirection(dir) &&
|
||||||
|
(isBullish ||
|
||||||
|
isBearish);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Cleanup Resources ...
|
||||||
|
zBar.Clean();
|
||||||
|
cBar.Clean();
|
||||||
|
pBar.Clean();
|
||||||
|
cState.Clean();
|
||||||
|
iSignalBox.Clean();
|
||||||
|
selectedBox.Clean();
|
||||||
|
ZeroMemory(cHelper);
|
||||||
|
cConditions.Clean();
|
||||||
|
cStateEvents.Clean();
|
||||||
|
cXConditions.Clean();
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,393 @@
|
|||||||
|
|
||||||
|
// //
|
||||||
|
// // XICH ...
|
||||||
|
// X121XICHConditions xichConditions;
|
||||||
|
// result = GetICHConditions(
|
||||||
|
// xichConditions,
|
||||||
|
// barIndex,
|
||||||
|
// loopback //
|
||||||
|
// );
|
||||||
|
// if (!result)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// xpvConditions.Clean();
|
||||||
|
// xhkConditions.Clean();
|
||||||
|
// xichConditions.Clean();
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // XDON ...
|
||||||
|
// X121XDONConditions xdonConditions;
|
||||||
|
// result = GetDONConditions(
|
||||||
|
// xdonConditions,
|
||||||
|
// barIndex,
|
||||||
|
// loopback //
|
||||||
|
// );
|
||||||
|
// if (!result)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// xpvConditions.Clean();
|
||||||
|
// xhkConditions.Clean();
|
||||||
|
// xichConditions.Clean();
|
||||||
|
// xmasConditions.Clean();
|
||||||
|
// xatrConditions.Clean();
|
||||||
|
// xstrConditions.Clean();
|
||||||
|
// xcheConditions.Clean();
|
||||||
|
// xdonConditions.Clean();
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // XDELTA ...
|
||||||
|
// X121XDELTAConditions xdeltaConditions;
|
||||||
|
// result = GetDELTAConditions(
|
||||||
|
// xdeltaConditions,
|
||||||
|
// barIndex,
|
||||||
|
// loopback //
|
||||||
|
// );
|
||||||
|
// if (!result)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// xpvConditions.Clean();
|
||||||
|
// xhkConditions.Clean();
|
||||||
|
// xichConditions.Clean();
|
||||||
|
// xmasConditions.Clean();
|
||||||
|
// xatrConditions.Clean();
|
||||||
|
// xstrConditions.Clean();
|
||||||
|
// xcheConditions.Clean();
|
||||||
|
// xdonConditions.Clean();
|
||||||
|
// x3maConditions.Clean();
|
||||||
|
// xvwapConditions.Clean();
|
||||||
|
// xdeltaConditions.Clean();
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // XVOLUME ...
|
||||||
|
// X121XVOLUMEConditions xvolumeConditions;
|
||||||
|
// result = GetVOLUMEConditions(
|
||||||
|
// xvolumeConditions,
|
||||||
|
// barIndex,
|
||||||
|
// loopback //
|
||||||
|
// );
|
||||||
|
// if (!result)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// xpvConditions.Clean();
|
||||||
|
// xhkConditions.Clean();
|
||||||
|
// xichConditions.Clean();
|
||||||
|
// xmasConditions.Clean();
|
||||||
|
// xatrConditions.Clean();
|
||||||
|
// xstrConditions.Clean();
|
||||||
|
// xcheConditions.Clean();
|
||||||
|
// xdonConditions.Clean();
|
||||||
|
// x3maConditions.Clean();
|
||||||
|
// xvwapConditions.Clean();
|
||||||
|
// xdeltaConditions.Clean();
|
||||||
|
// xvolumeConditions.Clean();
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
//
|
||||||
|
// xichConditions.Clean();
|
||||||
|
// xdonConditions.Clean();
|
||||||
|
// xdeltaConditions.Clean();
|
||||||
|
// xvolumeConditions.Clean();
|
||||||
|
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // XICH ...
|
||||||
|
// bool GetICHConditions(
|
||||||
|
// X121XICHConditions &conditions, //
|
||||||
|
// int barIndex = 0, //
|
||||||
|
// int loopback = 5 //
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// bool result = false;
|
||||||
|
|
||||||
|
// //
|
||||||
|
// result = xichHelper.GetConditions(
|
||||||
|
// conditions,
|
||||||
|
// barIndex,
|
||||||
|
// loopback //
|
||||||
|
// );
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // XDON ...
|
||||||
|
// bool GetDONConditions(
|
||||||
|
// X121XDONConditions &conditions, //
|
||||||
|
// int barIndex = 0, //
|
||||||
|
// int loopback = 5 //
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// bool result = false;
|
||||||
|
|
||||||
|
// //
|
||||||
|
// result = xdonHelper.GetConditions(
|
||||||
|
// conditions,
|
||||||
|
// barIndex,
|
||||||
|
// loopback //
|
||||||
|
// );
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // XDELTA ...
|
||||||
|
// bool GetDELTAConditions(
|
||||||
|
// X121XDELTAConditions &conditions, //
|
||||||
|
// int barIndex = 0, //
|
||||||
|
// int loopback = 5 //
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// bool result = false;
|
||||||
|
|
||||||
|
// //
|
||||||
|
// result = xdeltaHelper.GetConditions(
|
||||||
|
// conditions,
|
||||||
|
// barIndex,
|
||||||
|
// loopback //
|
||||||
|
// );
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // XVOLUME ...
|
||||||
|
// bool GetVOLUMEConditions(
|
||||||
|
// X121XVOLUMEConditions &conditions, //
|
||||||
|
// int barIndex = 0, //
|
||||||
|
// int loopback = 5 //
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// bool result = false;
|
||||||
|
|
||||||
|
// //
|
||||||
|
// result = xvolumeHelper.GetConditions(
|
||||||
|
// conditions,
|
||||||
|
// barIndex,
|
||||||
|
// loopback //
|
||||||
|
// );
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// xichInputs = inputs.xichInputs;
|
||||||
|
// xdonInputs = inputs.xdonInputs;
|
||||||
|
// xdeltaInputs = inputs.xdeltaInputs;
|
||||||
|
// xvolumeInputs = inputs.xvolumeInputs;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // XICH ...
|
||||||
|
// xichHelper = new XCX121XICHHelper();
|
||||||
|
// result = xichHelper.Init(
|
||||||
|
// symbol,
|
||||||
|
// period,
|
||||||
|
// xichInputs //
|
||||||
|
// );
|
||||||
|
// if (!result)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// ZeroMemory(xccHelper);
|
||||||
|
// ZeroMemory(xpvHelper);
|
||||||
|
// ZeroMemory(xhkHelper);
|
||||||
|
// ZeroMemory(xmasHelper);
|
||||||
|
// ZeroMemory(xatrHelper);
|
||||||
|
// ZeroMemory(xstrHelper);
|
||||||
|
// ZeroMemory(xcheHelper);
|
||||||
|
// ZeroMemory(x3maHelper);
|
||||||
|
// ZeroMemory(xvwapHelper);
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // ZeroMemory(xichHelper);
|
||||||
|
// // ZeroMemory(xdonHelper);
|
||||||
|
// // ZeroMemory(xdeltaHelper);
|
||||||
|
// // ZeroMemory(xvolumeHelper);
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // XDON ...
|
||||||
|
// xdonHelper = new XCX121XDONHelper();
|
||||||
|
// result = xdonHelper.Init(
|
||||||
|
// symbol,
|
||||||
|
// period,
|
||||||
|
// xdonInputs //
|
||||||
|
// );
|
||||||
|
// if (!result)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// ZeroMemory(xccHelper);
|
||||||
|
// ZeroMemory(xpvHelper);
|
||||||
|
// ZeroMemory(xhkHelper);
|
||||||
|
// ZeroMemory(xmasHelper);
|
||||||
|
// ZeroMemory(xatrHelper);
|
||||||
|
// ZeroMemory(xstrHelper);
|
||||||
|
// ZeroMemory(xcheHelper);
|
||||||
|
// ZeroMemory(x3maHelper);
|
||||||
|
// ZeroMemory(xvwapHelper);
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // ZeroMemory(xichHelper);
|
||||||
|
// // ZeroMemory(xdonHelper);
|
||||||
|
// // ZeroMemory(xdeltaHelper);
|
||||||
|
// // ZeroMemory(xvolumeHelper);
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // XDELTA ...
|
||||||
|
// xdeltaHelper = new XCX121XDELTAHelper();
|
||||||
|
// result = xdeltaHelper.Init(
|
||||||
|
// symbol,
|
||||||
|
// period,
|
||||||
|
// xdeltaInputs //
|
||||||
|
// );
|
||||||
|
// if (!result)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// ZeroMemory(xccHelper);
|
||||||
|
// ZeroMemory(xpvHelper);
|
||||||
|
// ZeroMemory(xhkHelper);
|
||||||
|
// ZeroMemory(xmasHelper);
|
||||||
|
// ZeroMemory(xatrHelper);
|
||||||
|
// ZeroMemory(xstrHelper);
|
||||||
|
// ZeroMemory(xcheHelper);
|
||||||
|
// ZeroMemory(x3maHelper);
|
||||||
|
// ZeroMemory(xvwapHelper);
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // ZeroMemory(xichHelper);
|
||||||
|
// // ZeroMemory(xdonHelper);
|
||||||
|
// // ZeroMemory(xdeltaHelper);
|
||||||
|
// // ZeroMemory(xvolumeHelper);
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // XVOLUME ...
|
||||||
|
// xvolumeHelper = new XCX121XVOLUMEHelper();
|
||||||
|
// result = xvolumeHelper.Init(
|
||||||
|
// symbol,
|
||||||
|
// period,
|
||||||
|
// xvolumeInputs //
|
||||||
|
// );
|
||||||
|
// if (!result)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// ZeroMemory(xccHelper);
|
||||||
|
// ZeroMemory(xpvHelper);
|
||||||
|
// ZeroMemory(xhkHelper);
|
||||||
|
// ZeroMemory(xmasHelper);
|
||||||
|
// ZeroMemory(xatrHelper);
|
||||||
|
// ZeroMemory(xstrHelper);
|
||||||
|
// ZeroMemory(xcheHelper);
|
||||||
|
// ZeroMemory(x3maHelper);
|
||||||
|
// ZeroMemory(xvwapHelper);
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // ZeroMemory(xichHelper);
|
||||||
|
// // ZeroMemory(xdonHelper);
|
||||||
|
// // ZeroMemory(xdeltaHelper);
|
||||||
|
// // ZeroMemory(xvolumeHelper);
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ZeroMemory(xichHelper);
|
||||||
|
// ZeroMemory(xdonHelper);
|
||||||
|
// ZeroMemory(xdeltaHelper);
|
||||||
|
// ZeroMemory(xvolumeHelper);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// XCX121XICHHelper *xichHelper;
|
||||||
|
// XCX121XDONHelper *xdonHelper;
|
||||||
|
// XCX121XDELTAHelper *xdeltaHelper;
|
||||||
|
// XCX121XVOLUMEHelper *xvolumeHelper;
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// int xdonMax = xdonInputs.Max();
|
||||||
|
// int xichMax = xichInputs.Max();
|
||||||
|
// int xdeltaMax = xdeltaInputs.Max();
|
||||||
|
// int xvolumeMax = xvolumeInputs.Max();
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// result = MathMax(result, xdonMax);
|
||||||
|
// result = MathMax(result, xichMax);
|
||||||
|
// result = MathMax(result, xdeltaMax);
|
||||||
|
// result = MathMax(result, xvolumeMax);
|
||||||
|
|
||||||
|
// &&
|
||||||
|
// xichInputs.IsValid() &&
|
||||||
|
// xdonInputs.IsValid() &&
|
||||||
|
// xdeltaInputs.IsValid() &&
|
||||||
|
// xvolumeInputs.IsValid()
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// xichInputs.Default();
|
||||||
|
// xdonInputs.Default();
|
||||||
|
// xdeltaInputs.Default();
|
||||||
|
// xvolumeInputs.Default();
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// xichInputs.Clean();
|
||||||
|
// xdonInputs.Clean();
|
||||||
|
// xdeltaInputs.Clean();
|
||||||
|
// xvolumeInputs.Clean();
|
||||||
|
|
||||||
|
//
|
||||||
|
// xichInputs.Clean();
|
||||||
|
// xdonInputs.Clean();
|
||||||
|
// xdeltaInputs.Clean();
|
||||||
|
// xvolumeInputs.Clean();
|
||||||
|
|
||||||
|
//
|
||||||
|
// delete xichHelper;
|
||||||
|
// delete xdonHelper;
|
||||||
|
// delete xdeltaHelper;
|
||||||
|
// delete xvolumeHelper;
|
||||||
|
|
||||||
|
//
|
||||||
|
// ZeroMemory(xichHelper);
|
||||||
|
// ZeroMemory(xdonHelper);
|
||||||
|
// ZeroMemory(xdeltaHelper);
|
||||||
|
// ZeroMemory(xvolumeHelper);
|
||||||
+1328
-3181
File diff suppressed because it is too large
Load Diff
@@ -316,7 +316,100 @@ struct X121X3MAConditions
|
|||||||
bearishScore = 0;
|
bearishScore = 0;
|
||||||
|
|
||||||
//
|
//
|
||||||
// TODO: Implement if Required ...
|
double score = 1;
|
||||||
|
double minScore = 0.5;
|
||||||
|
double highScore = 1.5;
|
||||||
|
|
||||||
|
//
|
||||||
|
// X3MA ...
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isX3MaBullishState)
|
||||||
|
{
|
||||||
|
bullishScore += score;
|
||||||
|
}
|
||||||
|
if (isX3MaBullishOrdered)
|
||||||
|
{
|
||||||
|
bullishScore += score;
|
||||||
|
}
|
||||||
|
if (isX3MaSwitchedToBullishState)
|
||||||
|
{
|
||||||
|
bullishScore += highScore;
|
||||||
|
}
|
||||||
|
if (isX3MaSwitchedToBullishOrdered)
|
||||||
|
{
|
||||||
|
bullishScore += highScore;
|
||||||
|
}
|
||||||
|
if (!isX3MaBullishState &&
|
||||||
|
!isX3MaSwitchedToBullishState)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
if (isX3MaFastBullish)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isX3MaSlowBullish)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!isX3MaBullishOrdered &&
|
||||||
|
!isX3MaSwitchedToBullishOrdered)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
if (isX3MaFastOverMid)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isX3MaMidOverSlow)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isX3MaBearishState)
|
||||||
|
{
|
||||||
|
bearishScore += score;
|
||||||
|
}
|
||||||
|
if (isX3MaBearishOrdered)
|
||||||
|
{
|
||||||
|
bearishScore += score;
|
||||||
|
}
|
||||||
|
if (isX3MaSwitchedToBearishState)
|
||||||
|
{
|
||||||
|
bearishScore += highScore;
|
||||||
|
}
|
||||||
|
if (isX3MaSwitchedToBearishOrdered)
|
||||||
|
{
|
||||||
|
bearishScore += highScore;
|
||||||
|
}
|
||||||
|
if (!isX3MaBearishState &&
|
||||||
|
!isX3MaSwitchedToBearishState)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
if (isX3MaFastBearish)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isX3MaSlowBearish)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!isX3MaBearishOrdered &&
|
||||||
|
!isX3MaSwitchedToBearishOrdered)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
if (isX3MaFastUnderMid)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isX3MaMidUnderSlow)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -370,6 +463,9 @@ struct X121X3MAConditions
|
|||||||
//
|
//
|
||||||
string conditionsStr =
|
string conditionsStr =
|
||||||
//
|
//
|
||||||
|
"-----------------------" + separator +
|
||||||
|
"X3MA: " + separator +
|
||||||
|
"-----------------------" + separator +
|
||||||
ToString("isX3MaFastBullish", isX3MaFastBullish, ignoreFalseConditions, separator) +
|
ToString("isX3MaFastBullish", isX3MaFastBullish, ignoreFalseConditions, separator) +
|
||||||
ToString("isX3MaFastBearish", isX3MaFastBearish, ignoreFalseConditions, separator) +
|
ToString("isX3MaFastBearish", isX3MaFastBearish, ignoreFalseConditions, separator) +
|
||||||
ToString("isX3MaFastNeutural", isX3MaFastNeutural, ignoreFalseConditions, separator) +
|
ToString("isX3MaFastNeutural", isX3MaFastNeutural, ignoreFalseConditions, separator) +
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -202,14 +202,6 @@ struct X121XCHEConditions
|
|||||||
bool isCheSwitchedToBullish;
|
bool isCheSwitchedToBullish;
|
||||||
bool isCheSwitchedToBearish;
|
bool isCheSwitchedToBearish;
|
||||||
|
|
||||||
//
|
|
||||||
bool isClosedOverCheMin;
|
|
||||||
bool isClosedOverCheMax;
|
|
||||||
|
|
||||||
//
|
|
||||||
bool isClosedUnderCheMin;
|
|
||||||
bool isClosedUnderCheMax;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Constructor ...
|
// Constructor ...
|
||||||
X121XCHEConditions()
|
X121XCHEConditions()
|
||||||
@@ -281,14 +273,6 @@ struct X121XCHEConditions
|
|||||||
isCheSwitchedToBullish = false;
|
isCheSwitchedToBullish = false;
|
||||||
isCheSwitchedToBearish = false;
|
isCheSwitchedToBearish = false;
|
||||||
|
|
||||||
//
|
|
||||||
isClosedOverCheMin = false;
|
|
||||||
isClosedOverCheMax = false;
|
|
||||||
|
|
||||||
//
|
|
||||||
isClosedUnderCheMin = false;
|
|
||||||
isClosedUnderCheMax = false;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
ZeroMemory(this);
|
ZeroMemory(this);
|
||||||
}
|
}
|
||||||
@@ -309,7 +293,56 @@ struct X121XCHEConditions
|
|||||||
bearishScore = 0;
|
bearishScore = 0;
|
||||||
|
|
||||||
//
|
//
|
||||||
// TODO: Implement if Required ...
|
double score = 1;
|
||||||
|
double minScore = 0.5;
|
||||||
|
double highScore = 1.5;
|
||||||
|
|
||||||
|
//
|
||||||
|
// XCHE ...
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isCheBullish)
|
||||||
|
{
|
||||||
|
bullishScore += score;
|
||||||
|
}
|
||||||
|
if (isCheSwitchedToBullish)
|
||||||
|
{
|
||||||
|
bullishScore += highScore;
|
||||||
|
}
|
||||||
|
if (isChe1Bullish &&
|
||||||
|
!isCheBullish &&
|
||||||
|
!isCheSwitchedToBullish)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isChe1SwitchedToBullish &&
|
||||||
|
!isCheBullish &&
|
||||||
|
!isCheSwitchedToBullish)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isCheBearish)
|
||||||
|
{
|
||||||
|
bearishScore += score;
|
||||||
|
}
|
||||||
|
if (isCheSwitchedToBearish)
|
||||||
|
{
|
||||||
|
bearishScore += highScore;
|
||||||
|
}
|
||||||
|
if (isChe1Bearish &&
|
||||||
|
!isCheBearish &&
|
||||||
|
!isCheSwitchedToBearish)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isChe1SwitchedToBearish &&
|
||||||
|
!isCheBearish &&
|
||||||
|
!isCheSwitchedToBearish)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -363,6 +396,9 @@ struct X121XCHEConditions
|
|||||||
//
|
//
|
||||||
string conditionsStr =
|
string conditionsStr =
|
||||||
//
|
//
|
||||||
|
"-----------------------" + separator +
|
||||||
|
"XCHE: " + separator +
|
||||||
|
"-----------------------" + separator +
|
||||||
ToString("isChe1Bullish", isChe1Bullish, ignoreFalseConditions, separator) +
|
ToString("isChe1Bullish", isChe1Bullish, ignoreFalseConditions, separator) +
|
||||||
ToString("isChe1Bearish", isChe1Bearish, ignoreFalseConditions, separator) +
|
ToString("isChe1Bearish", isChe1Bearish, ignoreFalseConditions, separator) +
|
||||||
ToString("isChe1SwitchedToBullish", isChe1SwitchedToBullish, ignoreFalseConditions, separator) +
|
ToString("isChe1SwitchedToBullish", isChe1SwitchedToBullish, ignoreFalseConditions, separator) +
|
||||||
@@ -375,10 +411,6 @@ struct X121XCHEConditions
|
|||||||
ToString("isCheBearish", isCheBearish, ignoreFalseConditions, separator) +
|
ToString("isCheBearish", isCheBearish, ignoreFalseConditions, separator) +
|
||||||
ToString("isCheSwitchedToBullish", isCheSwitchedToBullish, ignoreFalseConditions, separator) +
|
ToString("isCheSwitchedToBullish", isCheSwitchedToBullish, ignoreFalseConditions, separator) +
|
||||||
ToString("isCheSwitchedToBearish", isCheSwitchedToBearish, 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) +
|
|
||||||
//
|
//
|
||||||
""
|
""
|
||||||
//
|
//
|
||||||
@@ -979,42 +1011,6 @@ class XCX121XCHEHelper : public XCBaseHelper
|
|||||||
int pIndex = cIndex + 1;
|
int pIndex = cIndex + 1;
|
||||||
int ppIndex = pIndex + 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 ...
|
// Buffers ...
|
||||||
|
|
||||||
@@ -1178,12 +1174,6 @@ class XCX121XCHEHelper : public XCBaseHelper
|
|||||||
double cheMin = GetMin(ches);
|
double cheMin = GetMin(ches);
|
||||||
double cheMax = GetMax(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;
|
conditions.isChe1Bullish = isChe1Bullish;
|
||||||
conditions.isChe1Bearish = isChe1Bearish;
|
conditions.isChe1Bearish = isChe1Bearish;
|
||||||
@@ -1197,19 +1187,10 @@ class XCX121XCHEHelper : public XCBaseHelper
|
|||||||
conditions.isCheBearish = isCheBearish;
|
conditions.isCheBearish = isCheBearish;
|
||||||
conditions.isCheSwitchedToBullish = isCheSwitchedToBullish;
|
conditions.isCheSwitchedToBullish = isCheSwitchedToBullish;
|
||||||
conditions.isCheSwitchedToBearish = isCheSwitchedToBearish;
|
conditions.isCheSwitchedToBearish = isCheSwitchedToBearish;
|
||||||
conditions.isClosedOverCheMin = isClosedOverCheMin;
|
|
||||||
conditions.isClosedOverCheMax = isClosedOverCheMax;
|
|
||||||
conditions.isClosedUnderCheMin = isClosedUnderCheMin;
|
|
||||||
conditions.isClosedUnderCheMax = isClosedUnderCheMax;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
Cleanup();
|
Cleanup();
|
||||||
|
|
||||||
//
|
|
||||||
zBar.Clean();
|
|
||||||
cBar.Clean();
|
|
||||||
pBar.Clean();
|
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -245,7 +245,44 @@ struct X121XDELTAConditions
|
|||||||
bearishScore = 0;
|
bearishScore = 0;
|
||||||
|
|
||||||
//
|
//
|
||||||
// TODO: Implement if Required ...
|
double score = 1;
|
||||||
|
double minScore = 0.5;
|
||||||
|
double highScore = 1.5;
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isDeltaOverMa)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isDeltaBullish)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isDeltaCrossedOverMa)
|
||||||
|
{
|
||||||
|
bullishScore += score;
|
||||||
|
}
|
||||||
|
if (isDeltaSwitchedToBullish)
|
||||||
|
{
|
||||||
|
bullishScore += score;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isDeltaBearish)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isDeltaUnderMa)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isDeltaCrossedUnderMa)
|
||||||
|
{
|
||||||
|
bearishScore += score;
|
||||||
|
}
|
||||||
|
if (isDeltaSwitchedToBearish)
|
||||||
|
{
|
||||||
|
bearishScore += score;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -299,6 +336,17 @@ struct X121XDELTAConditions
|
|||||||
//
|
//
|
||||||
string conditionsStr =
|
string conditionsStr =
|
||||||
//
|
//
|
||||||
|
"-----------------------" + separator +
|
||||||
|
"XDELTA: " + separator +
|
||||||
|
"-----------------------" + separator +
|
||||||
|
ToString("isDeltaBullish", isDeltaBullish, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isDeltaBearish", isDeltaBearish, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isDeltaSwitchedToBullish", isDeltaSwitchedToBullish, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isDeltaSwitchedToBearish", isDeltaSwitchedToBearish, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isDeltaOverMa", isDeltaOverMa, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isDeltaUnderMa", isDeltaUnderMa, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isDeltaCrossedOverMa", isDeltaCrossedOverMa, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isDeltaCrossedUnderMa", isDeltaCrossedUnderMa, ignoreFalseConditions, separator) +
|
||||||
//
|
//
|
||||||
""
|
""
|
||||||
//
|
//
|
||||||
@@ -607,6 +655,12 @@ class XCX121XDELTAHelper : public XCBaseHelper
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
void Free() override
|
||||||
|
{
|
||||||
|
Cleanup(10);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
bool GetConditions(
|
bool GetConditions(
|
||||||
X121XDELTAConditions &conditions, //
|
X121XDELTAConditions &conditions, //
|
||||||
@@ -637,42 +691,6 @@ class XCX121XDELTAHelper : public XCBaseHelper
|
|||||||
int pIndex = cIndex + 1;
|
int pIndex = cIndex + 1;
|
||||||
int ppIndex = pIndex + 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 ...
|
// Buffers ...
|
||||||
|
|
||||||
@@ -744,11 +762,6 @@ class XCX121XDELTAHelper : public XCBaseHelper
|
|||||||
//
|
//
|
||||||
Cleanup();
|
Cleanup();
|
||||||
|
|
||||||
//
|
|
||||||
zBar.Clean();
|
|
||||||
cBar.Clean();
|
|
||||||
pBar.Clean();
|
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -934,42 +934,6 @@ class XCX121XDONHelper : public XCBaseHelper
|
|||||||
int pIndex = cIndex + 1;
|
int pIndex = cIndex + 1;
|
||||||
int ppIndex = pIndex + 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 ...
|
// Buffers ...
|
||||||
|
|
||||||
@@ -1039,11 +1003,6 @@ class XCX121XDONHelper : public XCBaseHelper
|
|||||||
//
|
//
|
||||||
Cleanup();
|
Cleanup();
|
||||||
|
|
||||||
//
|
|
||||||
zBar.Clean();
|
|
||||||
cBar.Clean();
|
|
||||||
pBar.Clean();
|
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ struct X121XHKInputs
|
|||||||
//
|
//
|
||||||
result =
|
result =
|
||||||
//
|
//
|
||||||
true
|
xhkSmoothingLength > 0
|
||||||
//
|
//
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -268,7 +268,69 @@ struct X121XHKConditions
|
|||||||
bearishScore = 0;
|
bearishScore = 0;
|
||||||
|
|
||||||
//
|
//
|
||||||
// TODO: Implement if Required ...
|
double score = 1;
|
||||||
|
double minScore = 0.5;
|
||||||
|
double highScore = 1.5;
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isSMHKBullish)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isRawHKBullish)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isClosedOverSMHK)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isClosedOverRawHK)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isRawHKClosedOverSMHK)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isSMHKSwitchedToBullish)
|
||||||
|
{
|
||||||
|
bullishScore += highScore;
|
||||||
|
}
|
||||||
|
if (isRawHKSwitchedToBullish)
|
||||||
|
{
|
||||||
|
bullishScore += highScore;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isSMHKBearish)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isRawHKBearish)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isClosedUnderSMHK)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isClosedUnderRawHK)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isRawHKClosedUnderSMHK)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isSMHKSwitchedToBearish)
|
||||||
|
{
|
||||||
|
bearishScore += highScore;
|
||||||
|
}
|
||||||
|
if (isRawHKSwitchedToBullish)
|
||||||
|
{
|
||||||
|
bearishScore += highScore;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -322,6 +384,9 @@ struct X121XHKConditions
|
|||||||
//
|
//
|
||||||
string conditionsStr =
|
string conditionsStr =
|
||||||
//
|
//
|
||||||
|
"-----------------------" + separator +
|
||||||
|
"XHK: " + separator +
|
||||||
|
"-----------------------" + separator +
|
||||||
ToString("isSMHKBullish", isSMHKBullish, ignoreFalseConditions, separator) +
|
ToString("isSMHKBullish", isSMHKBullish, ignoreFalseConditions, separator) +
|
||||||
ToString("isRawHKBullish", isRawHKBullish, ignoreFalseConditions, separator) +
|
ToString("isRawHKBullish", isRawHKBullish, ignoreFalseConditions, separator) +
|
||||||
ToString("isSMHKSwitchedToBullish", isSMHKSwitchedToBullish, ignoreFalseConditions, separator) +
|
ToString("isSMHKSwitchedToBullish", isSMHKSwitchedToBullish, ignoreFalseConditions, separator) +
|
||||||
|
|||||||
@@ -287,7 +287,45 @@ struct X121XICHConditions
|
|||||||
bearishScore = 0;
|
bearishScore = 0;
|
||||||
|
|
||||||
//
|
//
|
||||||
// TODO: Implement if Required ...
|
double score = 1;
|
||||||
|
double minScore = 0.5;
|
||||||
|
double highScore = 1.5;
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isSenkouSpanAOverB)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isTenkanSenOverKijunSen)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isSenkouSpanACrossedOverB)
|
||||||
|
{
|
||||||
|
bullishScore += highScore;
|
||||||
|
}
|
||||||
|
if (isTenkanSenCrossedOverKijunSen)
|
||||||
|
{
|
||||||
|
bullishScore += highScore;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isSenkouSpanAUnderB)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isTenkanSenUnderKijunSen)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isSenkouSpanACrossedUnderB)
|
||||||
|
{
|
||||||
|
bearishScore += highScore;
|
||||||
|
}
|
||||||
|
if (isTenkanSenCrossedUnderKijunSen)
|
||||||
|
{
|
||||||
|
bearishScore += highScore;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -341,6 +379,9 @@ struct X121XICHConditions
|
|||||||
//
|
//
|
||||||
string conditionsStr =
|
string conditionsStr =
|
||||||
//
|
//
|
||||||
|
"-----------------------" + separator +
|
||||||
|
"XICH: " + separator +
|
||||||
|
"-----------------------" + separator +
|
||||||
ToString("isTenkanSenOverKijunSen", isTenkanSenOverKijunSen, ignoreFalseConditions, separator) +
|
ToString("isTenkanSenOverKijunSen", isTenkanSenOverKijunSen, ignoreFalseConditions, separator) +
|
||||||
ToString("isTenkanSenUnderKijunSen", isTenkanSenUnderKijunSen, ignoreFalseConditions, separator) +
|
ToString("isTenkanSenUnderKijunSen", isTenkanSenUnderKijunSen, ignoreFalseConditions, separator) +
|
||||||
ToString("isTenkanSenCrossedOverKijunSen", isTenkanSenCrossedOverKijunSen, ignoreFalseConditions, separator) +
|
ToString("isTenkanSenCrossedOverKijunSen", isTenkanSenCrossedOverKijunSen, ignoreFalseConditions, separator) +
|
||||||
|
|||||||
@@ -583,6 +583,12 @@ class XCX121XMASHelper : public XCBaseHelper
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
void Free() override
|
||||||
|
{
|
||||||
|
Cleanup(10);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
bool GetConditions(
|
bool GetConditions(
|
||||||
X121XMASConditions &conditions, //
|
X121XMASConditions &conditions, //
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ struct X121XPVInputs
|
|||||||
// Boundary Detection ...
|
// Boundary Detection ...
|
||||||
hhMode = MODE_HIGH;
|
hhMode = MODE_HIGH;
|
||||||
llMode = MODE_LOW;
|
llMode = MODE_LOW;
|
||||||
goldenZoneLevel = X_FIBO_LEVEL_382;
|
goldenZoneLevel = X_FIBO_LEVEL_236;
|
||||||
|
|
||||||
//
|
//
|
||||||
sarStep = 0.02;
|
sarStep = 0.02;
|
||||||
@@ -441,7 +441,29 @@ struct X121XPVConditions
|
|||||||
bearishScore = 0;
|
bearishScore = 0;
|
||||||
|
|
||||||
//
|
//
|
||||||
// TODO: Implement if Required ...
|
double score = 1;
|
||||||
|
double minScore = 0.5;
|
||||||
|
double highScore = 1.5;
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isSarBullish)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isSarSwitchedToBullish)
|
||||||
|
{
|
||||||
|
bullishScore += score;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isSarBearish)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isSarSwitchedToBearish)
|
||||||
|
{
|
||||||
|
bearishScore += score;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -495,6 +517,9 @@ struct X121XPVConditions
|
|||||||
//
|
//
|
||||||
string conditionsStr =
|
string conditionsStr =
|
||||||
//
|
//
|
||||||
|
"-----------------------" + separator +
|
||||||
|
"XPV: " + separator +
|
||||||
|
"-----------------------" + separator +
|
||||||
ToString("isSarBullish", isSarBullish, ignoreFalseConditions, separator) +
|
ToString("isSarBullish", isSarBullish, ignoreFalseConditions, separator) +
|
||||||
ToString("isSarBearish", isSarBearish, ignoreFalseConditions, separator) +
|
ToString("isSarBearish", isSarBearish, ignoreFalseConditions, separator) +
|
||||||
ToString("isSarSwitchedToBullish", isSarSwitchedToBullish, ignoreFalseConditions, separator) +
|
ToString("isSarSwitchedToBullish", isSarSwitchedToBullish, ignoreFalseConditions, separator) +
|
||||||
|
|||||||
@@ -238,7 +238,29 @@ struct X121XSTRConditions
|
|||||||
bearishScore = 0;
|
bearishScore = 0;
|
||||||
|
|
||||||
//
|
//
|
||||||
// TODO: Implement if Required ...
|
double score = 1;
|
||||||
|
double minScore = 0.5;
|
||||||
|
double highScore = 1.5;
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isStrBullish)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isStrSwitchedToBullish)
|
||||||
|
{
|
||||||
|
bullishScore += score;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isStrBearish)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isStrSwitchedToBearish)
|
||||||
|
{
|
||||||
|
bearishScore += score;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -292,6 +314,9 @@ struct X121XSTRConditions
|
|||||||
//
|
//
|
||||||
string conditionsStr =
|
string conditionsStr =
|
||||||
//
|
//
|
||||||
|
"-----------------------" + separator +
|
||||||
|
"XSTR: " + separator +
|
||||||
|
"-----------------------" + separator +
|
||||||
ToString("isStrBullish", isStrBullish, ignoreFalseConditions, separator) +
|
ToString("isStrBullish", isStrBullish, ignoreFalseConditions, separator) +
|
||||||
ToString("isStrBearish", isStrBearish, ignoreFalseConditions, separator) +
|
ToString("isStrBearish", isStrBearish, ignoreFalseConditions, separator) +
|
||||||
ToString("isStrSwitchedToBullish", isStrSwitchedToBullish, ignoreFalseConditions, separator) +
|
ToString("isStrSwitchedToBullish", isStrSwitchedToBullish, ignoreFalseConditions, separator) +
|
||||||
@@ -952,14 +977,14 @@ class XCX121XSTRHelper : public XCBaseHelper
|
|||||||
conditions.isStrBearish = isStrBearish;
|
conditions.isStrBearish = isStrBearish;
|
||||||
conditions.isStrSwitchedToBullish = isStrSwitchedToBullish;
|
conditions.isStrSwitchedToBullish = isStrSwitchedToBullish;
|
||||||
conditions.isStrSwitchedToBearish = isStrSwitchedToBearish;
|
conditions.isStrSwitchedToBearish = isStrSwitchedToBearish;
|
||||||
|
|
||||||
//
|
//
|
||||||
Cleanup();
|
Cleanup();
|
||||||
|
|
||||||
//
|
//
|
||||||
zBar.Clean();
|
zBar.Clean();
|
||||||
cBar.Clean();
|
cBar.Clean();
|
||||||
pBar.Clean();
|
pBar.Clean();
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -275,7 +275,29 @@ struct X121XTRENDConditions
|
|||||||
bearishScore = 0;
|
bearishScore = 0;
|
||||||
|
|
||||||
//
|
//
|
||||||
// TODO: Implement if Required ...
|
double score = 1;
|
||||||
|
double minScore = 0.5;
|
||||||
|
double highScore = 1.5;
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isTrendBullish)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isTrendSwitchedToBullish)
|
||||||
|
{
|
||||||
|
bullishScore += score;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isTrendBearish)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isTrendSwitchedToBearish)
|
||||||
|
{
|
||||||
|
bearishScore += score;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -329,6 +351,9 @@ struct X121XTRENDConditions
|
|||||||
//
|
//
|
||||||
string conditionsStr =
|
string conditionsStr =
|
||||||
//
|
//
|
||||||
|
"-----------------------" + separator +
|
||||||
|
"XTREND: " + separator +
|
||||||
|
"-----------------------" + separator +
|
||||||
ToString("isTrendBullish", isTrendBullish, ignoreFalseConditions, separator) +
|
ToString("isTrendBullish", isTrendBullish, ignoreFalseConditions, separator) +
|
||||||
ToString("isTrendBearish", isTrendBearish, ignoreFalseConditions, separator) +
|
ToString("isTrendBearish", isTrendBearish, ignoreFalseConditions, separator) +
|
||||||
ToString("isTrendSwitchedToBullish", isTrendSwitchedToBullish, ignoreFalseConditions, separator) +
|
ToString("isTrendSwitchedToBullish", isTrendSwitchedToBullish, ignoreFalseConditions, separator) +
|
||||||
|
|||||||
@@ -303,7 +303,97 @@ struct X121XVOLUMEConditions
|
|||||||
bearishScore = 0;
|
bearishScore = 0;
|
||||||
|
|
||||||
//
|
//
|
||||||
// TODO: Implement if Required ...
|
double score = 1;
|
||||||
|
double minScore = 0.5;
|
||||||
|
double highScore = 1.5;
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isBullishVolumeOverMa)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isBearishVolumeUnderMa)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isBullishVolumeIncreased)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isBearishVolumeDecreased)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isBullishVolumeMaOverBearishVolumeMa)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isVolumeSwitchedToBullish)
|
||||||
|
{
|
||||||
|
bullishScore += score;
|
||||||
|
}
|
||||||
|
if (isBullishVolumeCrossedOverMa)
|
||||||
|
{
|
||||||
|
bullishScore += score;
|
||||||
|
}
|
||||||
|
if (isBearishVolumeCrossedUnderMa)
|
||||||
|
{
|
||||||
|
bullishScore += score;
|
||||||
|
}
|
||||||
|
if (isBullishVolumeSwitchedToIncreased)
|
||||||
|
{
|
||||||
|
bullishScore += score;
|
||||||
|
}
|
||||||
|
if (isBearishVolumeSwitchedToDecreased)
|
||||||
|
{
|
||||||
|
bullishScore += score;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isBearishVolumeOverMa)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isBullishVolumeUnderMa)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isBullishVolumeDecreased)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isBearishVolumeIncreased)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isBullishVolumeMaUnderBearishVolumeMa)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isVolumeSwitchedToBearish)
|
||||||
|
{
|
||||||
|
bearishScore += score;
|
||||||
|
}
|
||||||
|
if (isBearishVolumeCrossedOverMa)
|
||||||
|
{
|
||||||
|
bearishScore += score;
|
||||||
|
}
|
||||||
|
if (isBullishVolumeCrossedUnderMa)
|
||||||
|
{
|
||||||
|
bearishScore += score;
|
||||||
|
}
|
||||||
|
if (isBullishVolumeSwitchedToDecreased)
|
||||||
|
{
|
||||||
|
bearishScore += score;
|
||||||
|
}
|
||||||
|
if (isBearishVolumeSwitchedToIncreased)
|
||||||
|
{
|
||||||
|
bearishScore += score;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -357,6 +447,29 @@ struct X121XVOLUMEConditions
|
|||||||
//
|
//
|
||||||
string conditionsStr =
|
string conditionsStr =
|
||||||
//
|
//
|
||||||
|
"-----------------------" + separator +
|
||||||
|
"XVOLUME: " + separator +
|
||||||
|
"-----------------------" + separator +
|
||||||
|
ToString("isBullishVolumeOverMa", isBullishVolumeOverMa, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isBullishVolumeCrossedOverMa", isBullishVolumeCrossedOverMa, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isBullishVolumeUnderMa", isBullishVolumeUnderMa, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isBullishVolumeCrossedUnderMa", isBullishVolumeCrossedUnderMa, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isBullishVolumeIncreased", isBullishVolumeIncreased, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isBullishVolumeSwitchedToIncreased", isBullishVolumeSwitchedToIncreased, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isBullishVolumeDecreased", isBullishVolumeDecreased, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isBullishVolumeSwitchedToDecreased", isBullishVolumeSwitchedToDecreased, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isBearishVolumeOverMa", isBearishVolumeOverMa, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isBearishVolumeCrossedOverMa", isBearishVolumeCrossedOverMa, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isBearishVolumeUnderMa", isBearishVolumeUnderMa, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isBearishVolumeCrossedUnderMa", isBearishVolumeCrossedUnderMa, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isBearishVolumeIncreased", isBearishVolumeIncreased, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isBearishVolumeSwitchedToIncreased", isBearishVolumeSwitchedToIncreased, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isBearishVolumeDecreased", isBearishVolumeDecreased, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isBearishVolumeSwitchedToDecreased", isBearishVolumeSwitchedToDecreased, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isVolumeSwitchedToBullish", isVolumeSwitchedToBullish, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isVolumeSwitchedToBearish", isVolumeSwitchedToBearish, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isBullishVolumeMaOverBearishVolumeMa", isBullishVolumeMaOverBearishVolumeMa, ignoreFalseConditions, separator) +
|
||||||
|
ToString("isBullishVolumeMaUnderBearishVolumeMa", isBullishVolumeMaUnderBearishVolumeMa, ignoreFalseConditions, separator) +
|
||||||
//
|
//
|
||||||
""
|
""
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -329,9 +329,98 @@ struct X121XVWAPConditions
|
|||||||
//
|
//
|
||||||
bullishScore = 0;
|
bullishScore = 0;
|
||||||
bearishScore = 0;
|
bearishScore = 0;
|
||||||
|
//
|
||||||
|
double score = 1;
|
||||||
|
double minScore = 0.5;
|
||||||
|
double highScore = 1.5;
|
||||||
|
|
||||||
//
|
//
|
||||||
// TODO: Implement if Required ...
|
if (isVWapBullishState)
|
||||||
|
{
|
||||||
|
bullishScore += score;
|
||||||
|
}
|
||||||
|
if (isVWapBullishOrdered)
|
||||||
|
{
|
||||||
|
bullishScore += score;
|
||||||
|
}
|
||||||
|
if (isVWapSwitchedToBullishState)
|
||||||
|
{
|
||||||
|
bullishScore += highScore;
|
||||||
|
}
|
||||||
|
if (isVWapSwitchedToBullishOrdered)
|
||||||
|
{
|
||||||
|
bullishScore += highScore;
|
||||||
|
}
|
||||||
|
if (!isVWapBullishState &&
|
||||||
|
!isVWapSwitchedToBullishState)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
if (isVWapFastBullish)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isVWapSlowBullish)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!isVWapBullishOrdered &&
|
||||||
|
!isVWapSwitchedToBullishOrdered)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
if (isVWapFastOverMid)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isVWapMidOverSlow)
|
||||||
|
{
|
||||||
|
bullishScore += minScore;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isVWapBearishState)
|
||||||
|
{
|
||||||
|
bearishScore += score;
|
||||||
|
}
|
||||||
|
if (isVWapBearishOrdered)
|
||||||
|
{
|
||||||
|
bearishScore += score;
|
||||||
|
}
|
||||||
|
if (isVWapSwitchedToBearishState)
|
||||||
|
{
|
||||||
|
bearishScore += highScore;
|
||||||
|
}
|
||||||
|
if (isVWapSwitchedToBearishOrdered)
|
||||||
|
{
|
||||||
|
bearishScore += highScore;
|
||||||
|
}
|
||||||
|
if (!isVWapBearishState &&
|
||||||
|
!isVWapSwitchedToBearishState)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
if (isVWapFastBearish)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isVWapSlowBearish)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!isVWapBearishOrdered &&
|
||||||
|
!isVWapSwitchedToBearishOrdered)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
if (isVWapFastUnderMid)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
if (isVWapMidUnderSlow)
|
||||||
|
{
|
||||||
|
bearishScore += minScore;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -385,6 +474,9 @@ struct X121XVWAPConditions
|
|||||||
//
|
//
|
||||||
string conditionsStr =
|
string conditionsStr =
|
||||||
//
|
//
|
||||||
|
"-----------------------" + separator +
|
||||||
|
"XVWAP: " + separator +
|
||||||
|
"-----------------------" + separator +
|
||||||
ToString("isVWapFastBullish", isVWapFastBullish, ignoreFalseConditions, separator) +
|
ToString("isVWapFastBullish", isVWapFastBullish, ignoreFalseConditions, separator) +
|
||||||
ToString("isVWapFastBearish", isVWapFastBearish, ignoreFalseConditions, separator) +
|
ToString("isVWapFastBearish", isVWapFastBearish, ignoreFalseConditions, separator) +
|
||||||
ToString("isVWapFastNeutural", isVWapFastNeutural, ignoreFalseConditions, separator) +
|
ToString("isVWapFastNeutural", isVWapFastNeutural, ignoreFalseConditions, separator) +
|
||||||
|
|||||||
@@ -1213,7 +1213,7 @@ void CalculatePeaksAndVales(int barIndex)
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Calculate Support nad Resistances ...
|
* Calculate Support nad Resistances ...
|
||||||
*
|
*
|
||||||
* @param bar_index: int, Specified Bar Index ...
|
* @param bar_index: int, Specified Bar Index ...
|
||||||
* @param prevCalculated: int, Provides Previous Calculated Bars ...
|
* @param prevCalculated: int, Provides Previous Calculated Bars ...
|
||||||
* @param ratesTotal: int, Provides All Availabled Bars ...
|
* @param ratesTotal: int, Provides All Availabled Bars ...
|
||||||
@@ -1247,8 +1247,8 @@ void CalculateSupportAndResistance(
|
|||||||
? iLow
|
? iLow
|
||||||
: supportsBuffer[bar_index + 1];
|
: supportsBuffer[bar_index + 1];
|
||||||
double iResistance = iUpperFractalsPrev != EMPTY_VALUE
|
double iResistance = iUpperFractalsPrev != EMPTY_VALUE
|
||||||
? iHigh
|
? iHigh
|
||||||
: resistancesBuffer[bar_index + 1];
|
: resistancesBuffer[bar_index + 1];
|
||||||
|
|
||||||
//
|
//
|
||||||
supportsBuffer[bar_index] = iSupport;
|
supportsBuffer[bar_index] = iSupport;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1938,14 +1938,7 @@ struct X121SMCStrategyXWZWorkingZone
|
|||||||
if (useSenario1)
|
if (useSenario1)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
isSenario1Happend = cParser.HasRejectedBoxConditions(
|
isSenario1Happend = false;
|
||||||
X_CYCLE_DECISION,
|
|
||||||
box,
|
|
||||||
dir,
|
|
||||||
waitingBoxes,
|
|
||||||
provider,
|
|
||||||
barIndex //
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
isSenario1Bullish =
|
isSenario1Bullish =
|
||||||
@@ -1977,14 +1970,7 @@ struct X121SMCStrategyXWZWorkingZone
|
|||||||
useSenario2)
|
useSenario2)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
isSenario2Happend = cParser.HasActivatedBoxConditions(
|
isSenario2Happend = false;
|
||||||
X_CYCLE_DECISION,
|
|
||||||
box,
|
|
||||||
dir,
|
|
||||||
waitingBoxes,
|
|
||||||
provider,
|
|
||||||
barIndex //
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
isSenario2Bullish =
|
isSenario2Bullish =
|
||||||
@@ -2017,14 +2003,7 @@ struct X121SMCStrategyXWZWorkingZone
|
|||||||
useSenario3)
|
useSenario3)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
isSenario3Happend = cParser.HasBreakedBoxConditions(
|
isSenario3Happend = false;
|
||||||
X_CYCLE_DECISION,
|
|
||||||
box,
|
|
||||||
dir,
|
|
||||||
breakedBoxes,
|
|
||||||
provider,
|
|
||||||
barIndex //
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
isSenario3Bullish =
|
isSenario3Bullish =
|
||||||
@@ -2058,14 +2037,7 @@ struct X121SMCStrategyXWZWorkingZone
|
|||||||
useSenario4)
|
useSenario4)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
isSenario4Happend = cParser.HasXFVGMAConditions(
|
isSenario4Happend = false;
|
||||||
X_CYCLE_DECISION,
|
|
||||||
box,
|
|
||||||
dir,
|
|
||||||
waitingBoxes,
|
|
||||||
provider,
|
|
||||||
barIndex //
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
isSenario4Bullish =
|
isSenario4Bullish =
|
||||||
@@ -2100,14 +2072,7 @@ struct X121SMCStrategyXWZWorkingZone
|
|||||||
useSenario5)
|
useSenario5)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
isSenario5Happend = cParser.HasXWPVZConditions(
|
isSenario5Happend = false;
|
||||||
X_CYCLE_DECISION,
|
|
||||||
X_CYCLE_CONSOLIDATION,
|
|
||||||
box,
|
|
||||||
dir,
|
|
||||||
provider,
|
|
||||||
barIndex //
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
isSenario5Bullish =
|
isSenario5Bullish =
|
||||||
|
|||||||
@@ -934,6 +934,10 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
|||||||
mMaxAllowedRequiredPOIs = 0;
|
mMaxAllowedRequiredPOIs = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
X121Inputs x121Inputs;
|
||||||
|
x121Inputs.Default();
|
||||||
|
|
||||||
//
|
//
|
||||||
// Short ...
|
// Short ...
|
||||||
ENUM_X_PERIOD_METHOD scMethod = X_PERIOD_AUTO; // How to Find Period
|
ENUM_X_PERIOD_METHOD scMethod = X_PERIOD_AUTO; // How to Find Period
|
||||||
@@ -954,20 +958,30 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
|||||||
ENUM_X_PERIOD_METHOD hcMethod = X_PERIOD_AUTO; // How to Find Period
|
ENUM_X_PERIOD_METHOD hcMethod = X_PERIOD_AUTO; // How to Find Period
|
||||||
ENUM_TIMEFRAMES hcPeriod = NULL; // Time Period
|
ENUM_TIMEFRAMES hcPeriod = NULL; // Time Period
|
||||||
|
|
||||||
//
|
|
||||||
// XPV ...
|
|
||||||
X121Inputs x121Inputs;
|
|
||||||
|
|
||||||
//
|
|
||||||
x121Inputs.Default();
|
|
||||||
|
|
||||||
//
|
//
|
||||||
bool showAll = false;
|
bool showAll = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
x121Inputs.showRSI = showAll || true;
|
||||||
|
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// XCC ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Configurations ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Presentations ...
|
||||||
|
|
||||||
//
|
//
|
||||||
// XPV ...
|
// XPV ...
|
||||||
|
|
||||||
//
|
//
|
||||||
|
// Configurations ...
|
||||||
x121Inputs.xpvInputs.scMethod = scMethod;
|
x121Inputs.xpvInputs.scMethod = scMethod;
|
||||||
x121Inputs.xpvInputs.scPeriod = scPeriod;
|
x121Inputs.xpvInputs.scPeriod = scPeriod;
|
||||||
x121Inputs.xpvInputs.mcMethod = mcMethod;
|
x121Inputs.xpvInputs.mcMethod = mcMethod;
|
||||||
@@ -976,127 +990,109 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
|
|||||||
x121Inputs.xpvInputs.lcPeriod = lcPeriod;
|
x121Inputs.xpvInputs.lcPeriod = lcPeriod;
|
||||||
x121Inputs.xpvInputs.hcMethod = hcMethod;
|
x121Inputs.xpvInputs.hcMethod = hcMethod;
|
||||||
x121Inputs.xpvInputs.hcPeriod = hcPeriod;
|
x121Inputs.xpvInputs.hcPeriod = hcPeriod;
|
||||||
|
|
||||||
//
|
|
||||||
x121Inputs.xhkInputs.xhkIgnoreSmoothingShadows = true;
|
|
||||||
|
|
||||||
//
|
|
||||||
x121Inputs.xatrInputs.atrMultiplier = 1.5;
|
|
||||||
x121Inputs.xatrInputs.atrSmoothingMode = X_MA_MODE_EMA;
|
|
||||||
x121Inputs.xpvInputs.goldenZoneLevel = X_FIBO_LEVEL_236;
|
x121Inputs.xpvInputs.goldenZoneLevel = X_FIBO_LEVEL_236;
|
||||||
|
|
||||||
//
|
//
|
||||||
x121Inputs.xvwapInputs.vwapFastLength = 20;
|
// Presentations ...
|
||||||
x121Inputs.xvwapInputs.vwapMidLength = 50;
|
x121Inputs.xpvInputs.showSar = showAll || true;
|
||||||
x121Inputs.xvwapInputs.vwapSlowLength = 200;
|
|
||||||
|
|
||||||
//
|
|
||||||
x121Inputs.x3maInputs.x3maFastMALength = 20;
|
|
||||||
x121Inputs.x3maInputs.x3maMidMALength = 50;
|
|
||||||
x121Inputs.x3maInputs.x3maSlowMALength = 200;
|
|
||||||
|
|
||||||
//
|
|
||||||
x121Inputs.xichInputs.shiftKumo = true;
|
|
||||||
|
|
||||||
//
|
|
||||||
x121Inputs.showRSI = showAll || true;
|
|
||||||
|
|
||||||
//
|
|
||||||
// x121Inputs.xcheInputs.cheLength = 14;
|
|
||||||
// x121Inputs.xcheInputs.cheLoopback = 7;
|
|
||||||
// x121Inputs.xcheInputs.cheMultiplier1 = 1.5;
|
|
||||||
// x121Inputs.xcheInputs.cheMultiplier2 = 2;
|
|
||||||
|
|
||||||
//
|
|
||||||
// x121Inputs.xstrInputs.strLength = 14;
|
|
||||||
// x121Inputs.xstrInputs.strMultiplier = 1.5;
|
|
||||||
|
|
||||||
//
|
|
||||||
// x121Inputs.xccInputs.upColor = clrLime;
|
|
||||||
// x121Inputs.xccInputs.downColor = clrRed;
|
|
||||||
// x121Inputs.xccInputs.lineColor = CLR_NONE;
|
|
||||||
// x121Inputs.xccInputs.bearishColor = clrRed;
|
|
||||||
// x121Inputs.xccInputs.bullishColor = clrLime;
|
|
||||||
// x121Inputs.xccInputs.volumesColor = clrGreen;
|
|
||||||
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
//
|
|
||||||
// XCC ...
|
|
||||||
x121Inputs.xccInputs.showCandles = showAll || true;
|
|
||||||
|
|
||||||
//
|
|
||||||
// XPV ...
|
|
||||||
x121Inputs.xpvInputs.showSar = showAll || false;
|
|
||||||
x121Inputs.xpvInputs.showPeaks = showAll || true;
|
x121Inputs.xpvInputs.showPeaks = showAll || true;
|
||||||
x121Inputs.xpvInputs.showVales = showAll || true;
|
x121Inputs.xpvInputs.showVales = showAll || true;
|
||||||
x121Inputs.xpvInputs.showSupports = showAll || false;
|
x121Inputs.xpvInputs.showSupports = showAll || false;
|
||||||
x121Inputs.xpvInputs.showResistances = showAll || false;
|
|
||||||
x121Inputs.xpvInputs.showGoldenZones = showAll || true;
|
x121Inputs.xpvInputs.showGoldenZones = showAll || true;
|
||||||
|
x121Inputs.xpvInputs.showResistances = showAll || false;
|
||||||
|
|
||||||
//
|
//
|
||||||
// XHK ...
|
// XHK ...
|
||||||
|
|
||||||
//
|
//
|
||||||
x121Inputs.xhkInputs.drawRawXHKCandles = showAll || false;
|
// Configurations ...
|
||||||
x121Inputs.xhkInputs.drawSmoothedXHKCandles = showAll || false;
|
x121Inputs.xhkInputs.xhkIgnoreSmoothingShadows = true;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Presentations ...
|
||||||
|
x121Inputs.xhkInputs.drawRawXHKCandles = showAll || true;
|
||||||
|
x121Inputs.xhkInputs.drawSmoothedXHKCandles = showAll || true;
|
||||||
|
|
||||||
//
|
//
|
||||||
// XMAS ...
|
// XMAS ...
|
||||||
|
|
||||||
//
|
//
|
||||||
x121Inputs.xmasInputs.showUpper = showAll || false;
|
// Configurations ...
|
||||||
x121Inputs.xmasInputs.showMid = showAll || false;
|
|
||||||
x121Inputs.xmasInputs.showLower = showAll || false;
|
//
|
||||||
|
// Presentations ...
|
||||||
|
x121Inputs.xmasInputs.showMid = showAll || true;
|
||||||
|
x121Inputs.xmasInputs.showUpper = showAll || true;
|
||||||
|
x121Inputs.xmasInputs.showLower = showAll || true;
|
||||||
|
|
||||||
//
|
//
|
||||||
// XATR ...
|
// XATR ...
|
||||||
x121Inputs.xatrInputs.showATRUpper = showAll || false;
|
|
||||||
x121Inputs.xatrInputs.showATRLower = showAll || false;
|
//
|
||||||
|
// Configurations ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Presentations ...
|
||||||
|
x121Inputs.xatrInputs.showAtrUpper = showAll || false;
|
||||||
|
x121Inputs.xatrInputs.showAtrLower = showAll || false;
|
||||||
|
x121Inputs.xatrInputs.showRSIChange = showAll || false;
|
||||||
|
x121Inputs.xatrInputs.showPriceChange = showAll || false;
|
||||||
|
x121Inputs.xatrInputs.showSmoothedAtrUpper = showAll || true;
|
||||||
|
x121Inputs.xatrInputs.showSmoothedAtrLower = showAll || true;
|
||||||
|
x121Inputs.xatrInputs.showSmoothedRSIChange = showAll || true;
|
||||||
|
x121Inputs.xatrInputs.showSmoothedPriceChange = showAll || true;
|
||||||
|
|
||||||
//
|
//
|
||||||
// XSTR ...
|
// XSTR ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Configurations ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Presentations ...
|
||||||
x121Inputs.xstrInputs.showStr = showAll || true;
|
x121Inputs.xstrInputs.showStr = showAll || true;
|
||||||
x121Inputs.xstrInputs.showStrUpper = showAll || false;
|
x121Inputs.xstrInputs.showStrUpper = showAll || false;
|
||||||
x121Inputs.xstrInputs.showStrLower = showAll || false;
|
x121Inputs.xstrInputs.showStrLower = showAll || false;
|
||||||
|
|
||||||
//
|
//
|
||||||
// XCHE ...
|
// XCHE ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Configurations ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Presentations ...
|
||||||
x121Inputs.xcheInputs.showLE1 = showAll || false;
|
x121Inputs.xcheInputs.showLE1 = showAll || false;
|
||||||
x121Inputs.xcheInputs.showLE2 = showAll || false;
|
|
||||||
x121Inputs.xcheInputs.showSE1 = showAll || false;
|
x121Inputs.xcheInputs.showSE1 = showAll || false;
|
||||||
|
x121Inputs.xcheInputs.showLE2 = showAll || false;
|
||||||
x121Inputs.xcheInputs.showSE2 = showAll || false;
|
x121Inputs.xcheInputs.showSE2 = showAll || false;
|
||||||
|
|
||||||
//
|
|
||||||
// XDON ...
|
|
||||||
x121Inputs.xdonInputs.showOpen = showAll || false;
|
|
||||||
x121Inputs.xdonInputs.showClose = showAll || false;
|
|
||||||
x121Inputs.xdonInputs.showLow = showAll || false;
|
|
||||||
x121Inputs.xdonInputs.showHigh = showAll || false;
|
|
||||||
|
|
||||||
//
|
|
||||||
// XVWAP ...
|
|
||||||
x121Inputs.xvwapInputs.showVWapFast = showAll || false;
|
|
||||||
x121Inputs.xvwapInputs.showVWapMedium = showAll || false;
|
|
||||||
x121Inputs.xvwapInputs.showVWapSlow = showAll || false;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// X3MA ...
|
// X3MA ...
|
||||||
x121Inputs.x3maInputs.showX3MaFast = showAll || true;
|
|
||||||
|
//
|
||||||
|
// Configurations ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Presentations ...
|
||||||
x121Inputs.x3maInputs.showX3MaMid = showAll || false;
|
x121Inputs.x3maInputs.showX3MaMid = showAll || false;
|
||||||
|
x121Inputs.x3maInputs.showX3MaFast = showAll || false;
|
||||||
x121Inputs.x3maInputs.showX3MaSlow = showAll || false;
|
x121Inputs.x3maInputs.showX3MaSlow = showAll || false;
|
||||||
|
|
||||||
//
|
//
|
||||||
// XICH ...
|
// XVWAP ...
|
||||||
x121Inputs.xichInputs.showTenkanSen = showAll || false;
|
|
||||||
x121Inputs.xichInputs.showKijunSen = showAll || false;
|
|
||||||
x121Inputs.xichInputs.showChikouSpan = showAll || false;
|
|
||||||
x121Inputs.xichInputs.showSenkouSpanA = showAll || false;
|
|
||||||
x121Inputs.xichInputs.showSenkouSpanB = showAll || false;
|
|
||||||
x121Inputs.xichInputs.showKumo = showAll || false;
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Configurations ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Presentations ...
|
||||||
|
x121Inputs.xvwapInputs.showVWapFast = showAll || false;
|
||||||
|
x121Inputs.xvwapInputs.showVWapSlow = showAll || false;
|
||||||
|
x121Inputs.xvwapInputs.showVWapMedium = showAll || false;
|
||||||
|
|
||||||
|
//
|
||||||
|
//
|
||||||
//
|
//
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
Reference in New Issue
Block a user