cleanup x121 helper, apply all cleanup and buffers and conditions on helpers and try to complete x121 new helper ...

This commit is contained in:
2025-03-31 07:04:12 +03:30
parent 7619129c26
commit 53ad7b092a
28 changed files with 14572 additions and 6548 deletions
+2
View File
@@ -158,3 +158,5 @@
// isNearestTenkensSenCrossedUnderKijunSen
//
;
+27
View File
@@ -0,0 +1,27 @@
//
// XCC ...
//
// XPV ...
//
// XHK ...
//
// XMAS ...
//
// XATR ...
//
// XSTR ...
//
// XCHE ...
//
// X3MA ...
//
// XVWAP ...
+82
View File
@@ -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 ...
+359
View File
@@ -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;
+408
View File
@@ -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;
+96
View File
@@ -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
+580
View File
@@ -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
+393
View File
@@ -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);
File diff suppressed because it is too large Load Diff
+97 -1
View File
@@ -316,7 +316,100 @@ struct X121X3MAConditions
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 =
//
"-----------------------" + separator +
"X3MA: " + separator +
"-----------------------" + separator +
ToString("isX3MaFastBullish", isX3MaFastBullish, ignoreFalseConditions, separator) +
ToString("isX3MaFastBearish", isX3MaFastBearish, ignoreFalseConditions, separator) +
ToString("isX3MaFastNeutural", isX3MaFastNeutural, ignoreFalseConditions, separator) +
File diff suppressed because it is too large Load Diff
+53 -72
View File
@@ -202,14 +202,6 @@ struct X121XCHEConditions
bool isCheSwitchedToBullish;
bool isCheSwitchedToBearish;
//
bool isClosedOverCheMin;
bool isClosedOverCheMax;
//
bool isClosedUnderCheMin;
bool isClosedUnderCheMax;
//
// Constructor ...
X121XCHEConditions()
@@ -281,14 +273,6 @@ struct X121XCHEConditions
isCheSwitchedToBullish = false;
isCheSwitchedToBearish = false;
//
isClosedOverCheMin = false;
isClosedOverCheMax = false;
//
isClosedUnderCheMin = false;
isClosedUnderCheMax = false;
//
ZeroMemory(this);
}
@@ -309,7 +293,56 @@ struct X121XCHEConditions
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 =
//
"-----------------------" + separator +
"XCHE: " + separator +
"-----------------------" + separator +
ToString("isChe1Bullish", isChe1Bullish, ignoreFalseConditions, separator) +
ToString("isChe1Bearish", isChe1Bearish, ignoreFalseConditions, separator) +
ToString("isChe1SwitchedToBullish", isChe1SwitchedToBullish, ignoreFalseConditions, separator) +
@@ -375,10 +411,6 @@ struct X121XCHEConditions
ToString("isCheBearish", isCheBearish, ignoreFalseConditions, separator) +
ToString("isCheSwitchedToBullish", isCheSwitchedToBullish, ignoreFalseConditions, separator) +
ToString("isCheSwitchedToBearish", isCheSwitchedToBearish, ignoreFalseConditions, separator) +
ToString("isClosedOverCheMin", isClosedOverCheMin, ignoreFalseConditions, separator) +
ToString("isClosedOverCheMax", isClosedOverCheMax, ignoreFalseConditions, separator) +
ToString("isClosedUnderCheMin", isClosedUnderCheMin, ignoreFalseConditions, separator) +
ToString("isClosedUnderCheMax", isClosedUnderCheMax, ignoreFalseConditions, separator) +
//
""
//
@@ -979,42 +1011,6 @@ class XCX121XCHEHelper : public XCBaseHelper
int pIndex = cIndex + 1;
int ppIndex = pIndex + 1;
//
XOHCL zBar;
result = zBar.Init(
mSymbol,
mPeriod,
zIndex //
);
if (!result)
{
return result;
}
//
XOHCL cBar;
result = cBar.Init(
mSymbol,
mPeriod,
cIndex //
);
if (!result)
{
return result;
}
//
XOHCL pBar;
result = pBar.Init(
mSymbol,
mPeriod,
pIndex //
);
if (!result)
{
return result;
}
//
// Buffers ...
@@ -1178,12 +1174,6 @@ class XCX121XCHEHelper : public XCBaseHelper
double cheMin = GetMin(ches);
double cheMax = GetMax(ches);
//
bool isClosedOverCheMin = cBar.close > cheMin;
bool isClosedOverCheMax = cBar.close > cheMax;
bool isClosedUnderCheMin = cBar.close < cheMin;
bool isClosedUnderCheMax = cBar.close < cheMax;
//
conditions.isChe1Bullish = isChe1Bullish;
conditions.isChe1Bearish = isChe1Bearish;
@@ -1197,19 +1187,10 @@ class XCX121XCHEHelper : public XCBaseHelper
conditions.isCheBearish = isCheBearish;
conditions.isCheSwitchedToBullish = isCheSwitchedToBullish;
conditions.isCheSwitchedToBearish = isCheSwitchedToBearish;
conditions.isClosedOverCheMin = isClosedOverCheMin;
conditions.isClosedOverCheMax = isClosedOverCheMax;
conditions.isClosedUnderCheMin = isClosedUnderCheMin;
conditions.isClosedUnderCheMax = isClosedUnderCheMax;
//
Cleanup();
//
zBar.Clean();
cBar.Clean();
pBar.Clean();
//
return result;
}
+55 -42
View File
@@ -245,7 +245,44 @@ struct X121XDELTAConditions
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 =
//
"-----------------------" + 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(
X121XDELTAConditions &conditions, //
@@ -637,42 +691,6 @@ class XCX121XDELTAHelper : public XCBaseHelper
int pIndex = cIndex + 1;
int ppIndex = pIndex + 1;
//
XOHCL zBar;
result = zBar.Init(
mSymbol,
mPeriod,
zIndex //
);
if (!result)
{
return result;
}
//
XOHCL cBar;
result = cBar.Init(
mSymbol,
mPeriod,
cIndex //
);
if (!result)
{
return result;
}
//
XOHCL pBar;
result = pBar.Init(
mSymbol,
mPeriod,
pIndex //
);
if (!result)
{
return result;
}
//
// Buffers ...
@@ -744,11 +762,6 @@ class XCX121XDELTAHelper : public XCBaseHelper
//
Cleanup();
//
zBar.Clean();
cBar.Clean();
pBar.Clean();
//
return result;
}
-41
View File
@@ -934,42 +934,6 @@ class XCX121XDONHelper : public XCBaseHelper
int pIndex = cIndex + 1;
int ppIndex = pIndex + 1;
//
XOHCL zBar;
result = zBar.Init(
mSymbol,
mPeriod,
zIndex //
);
if (!result)
{
return result;
}
//
XOHCL cBar;
result = cBar.Init(
mSymbol,
mPeriod,
cIndex //
);
if (!result)
{
return result;
}
//
XOHCL pBar;
result = pBar.Init(
mSymbol,
mPeriod,
pIndex //
);
if (!result)
{
return result;
}
//
// Buffers ...
@@ -1039,11 +1003,6 @@ class XCX121XDONHelper : public XCBaseHelper
//
Cleanup();
//
zBar.Clean();
cBar.Clean();
pBar.Clean();
//
return result;
}
+67 -2
View File
@@ -106,7 +106,7 @@ struct X121XHKInputs
//
result =
//
true
xhkSmoothingLength > 0
//
;
@@ -268,7 +268,69 @@ struct X121XHKConditions
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 =
//
"-----------------------" + separator +
"XHK: " + separator +
"-----------------------" + separator +
ToString("isSMHKBullish", isSMHKBullish, ignoreFalseConditions, separator) +
ToString("isRawHKBullish", isRawHKBullish, ignoreFalseConditions, separator) +
ToString("isSMHKSwitchedToBullish", isSMHKSwitchedToBullish, ignoreFalseConditions, separator) +
+42 -1
View File
@@ -287,7 +287,45 @@ struct X121XICHConditions
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 =
//
"-----------------------" + separator +
"XICH: " + separator +
"-----------------------" + separator +
ToString("isTenkanSenOverKijunSen", isTenkanSenOverKijunSen, ignoreFalseConditions, separator) +
ToString("isTenkanSenUnderKijunSen", isTenkanSenUnderKijunSen, ignoreFalseConditions, separator) +
ToString("isTenkanSenCrossedOverKijunSen", isTenkanSenCrossedOverKijunSen, ignoreFalseConditions, separator) +
+6
View File
@@ -583,6 +583,12 @@ class XCX121XMASHelper : public XCBaseHelper
);
}
//
void Free() override
{
Cleanup(10);
}
//
bool GetConditions(
X121XMASConditions &conditions, //
+27 -2
View File
@@ -204,7 +204,7 @@ struct X121XPVInputs
// Boundary Detection ...
hhMode = MODE_HIGH;
llMode = MODE_LOW;
goldenZoneLevel = X_FIBO_LEVEL_382;
goldenZoneLevel = X_FIBO_LEVEL_236;
//
sarStep = 0.02;
@@ -441,7 +441,29 @@ struct X121XPVConditions
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 =
//
"-----------------------" + separator +
"XPV: " + separator +
"-----------------------" + separator +
ToString("isSarBullish", isSarBullish, ignoreFalseConditions, separator) +
ToString("isSarBearish", isSarBearish, ignoreFalseConditions, separator) +
ToString("isSarSwitchedToBullish", isSarSwitchedToBullish, ignoreFalseConditions, separator) +
+28 -3
View File
@@ -238,7 +238,29 @@ struct X121XSTRConditions
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 =
//
"-----------------------" + separator +
"XSTR: " + separator +
"-----------------------" + separator +
ToString("isStrBullish", isStrBullish, ignoreFalseConditions, separator) +
ToString("isStrBearish", isStrBearish, ignoreFalseConditions, separator) +
ToString("isStrSwitchedToBullish", isStrSwitchedToBullish, ignoreFalseConditions, separator) +
@@ -952,14 +977,14 @@ class XCX121XSTRHelper : public XCBaseHelper
conditions.isStrBearish = isStrBearish;
conditions.isStrSwitchedToBullish = isStrSwitchedToBullish;
conditions.isStrSwitchedToBearish = isStrSwitchedToBearish;
//
Cleanup();
//
zBar.Clean();
cBar.Clean();
pBar.Clean();
pBar.Clean();
//
return result;
+26 -1
View File
@@ -275,7 +275,29 @@ struct X121XTRENDConditions
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 =
//
"-----------------------" + separator +
"XTREND: " + separator +
"-----------------------" + separator +
ToString("isTrendBullish", isTrendBullish, ignoreFalseConditions, separator) +
ToString("isTrendBearish", isTrendBearish, ignoreFalseConditions, separator) +
ToString("isTrendSwitchedToBullish", isTrendSwitchedToBullish, ignoreFalseConditions, separator) +
+114 -1
View File
@@ -303,7 +303,97 @@ struct X121XVOLUMEConditions
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 =
//
"-----------------------" + 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) +
//
""
//
+93 -1
View File
@@ -329,9 +329,98 @@ struct X121XVWAPConditions
//
bullishScore = 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 =
//
"-----------------------" + separator +
"XVWAP: " + separator +
"-----------------------" + separator +
ToString("isVWapFastBullish", isVWapFastBullish, ignoreFalseConditions, separator) +
ToString("isVWapFastBearish", isVWapFastBearish, ignoreFalseConditions, separator) +
ToString("isVWapFastNeutural", isVWapFastNeutural, ignoreFalseConditions, separator) +
+3 -3
View File
@@ -1213,7 +1213,7 @@ void CalculatePeaksAndVales(int barIndex)
/**
* Calculate Support nad Resistances ...
*
*
* @param bar_index: int, Specified Bar Index ...
* @param prevCalculated: int, Provides Previous Calculated Bars ...
* @param ratesTotal: int, Provides All Availabled Bars ...
@@ -1247,8 +1247,8 @@ void CalculateSupportAndResistance(
? iLow
: supportsBuffer[bar_index + 1];
double iResistance = iUpperFractalsPrev != EMPTY_VALUE
? iHigh
: resistancesBuffer[bar_index + 1];
? iHigh
: resistancesBuffer[bar_index + 1];
//
supportsBuffer[bar_index] = iSupport;
File diff suppressed because it is too large Load Diff
+5 -40
View File
@@ -1938,14 +1938,7 @@ struct X121SMCStrategyXWZWorkingZone
if (useSenario1)
{
//
isSenario1Happend = cParser.HasRejectedBoxConditions(
X_CYCLE_DECISION,
box,
dir,
waitingBoxes,
provider,
barIndex //
);
isSenario1Happend = false;
//
isSenario1Bullish =
@@ -1977,14 +1970,7 @@ struct X121SMCStrategyXWZWorkingZone
useSenario2)
{
//
isSenario2Happend = cParser.HasActivatedBoxConditions(
X_CYCLE_DECISION,
box,
dir,
waitingBoxes,
provider,
barIndex //
);
isSenario2Happend = false;
//
isSenario2Bullish =
@@ -2017,14 +2003,7 @@ struct X121SMCStrategyXWZWorkingZone
useSenario3)
{
//
isSenario3Happend = cParser.HasBreakedBoxConditions(
X_CYCLE_DECISION,
box,
dir,
breakedBoxes,
provider,
barIndex //
);
isSenario3Happend = false;
//
isSenario3Bullish =
@@ -2058,14 +2037,7 @@ struct X121SMCStrategyXWZWorkingZone
useSenario4)
{
//
isSenario4Happend = cParser.HasXFVGMAConditions(
X_CYCLE_DECISION,
box,
dir,
waitingBoxes,
provider,
barIndex //
);
isSenario4Happend = false;
//
isSenario4Bullish =
@@ -2100,14 +2072,7 @@ struct X121SMCStrategyXWZWorkingZone
useSenario5)
{
//
isSenario5Happend = cParser.HasXWPVZConditions(
X_CYCLE_DECISION,
X_CYCLE_CONSOLIDATION,
box,
dir,
provider,
barIndex //
);
isSenario5Happend = false;
//
isSenario5Bullish =
+84 -88
View File
@@ -934,6 +934,10 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
mMaxAllowedRequiredPOIs = 0;
}
//
X121Inputs x121Inputs;
x121Inputs.Default();
//
// Short ...
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_TIMEFRAMES hcPeriod = NULL; // Time Period
//
// XPV ...
X121Inputs x121Inputs;
//
x121Inputs.Default();
//
bool showAll = false;
//
x121Inputs.showRSI = showAll || true;
//
//
//
//
// XCC ...
//
// Configurations ...
//
// Presentations ...
//
// XPV ...
//
// Configurations ...
x121Inputs.xpvInputs.scMethod = scMethod;
x121Inputs.xpvInputs.scPeriod = scPeriod;
x121Inputs.xpvInputs.mcMethod = mcMethod;
@@ -976,127 +990,109 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy
x121Inputs.xpvInputs.lcPeriod = lcPeriod;
x121Inputs.xpvInputs.hcMethod = hcMethod;
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.xvwapInputs.vwapFastLength = 20;
x121Inputs.xvwapInputs.vwapMidLength = 50;
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;
// Presentations ...
x121Inputs.xpvInputs.showSar = showAll || true;
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;
x121Inputs.xpvInputs.showResistances = showAll || false;
//
// XHK ...
//
x121Inputs.xhkInputs.drawRawXHKCandles = showAll || false;
x121Inputs.xhkInputs.drawSmoothedXHKCandles = showAll || false;
// Configurations ...
x121Inputs.xhkInputs.xhkIgnoreSmoothingShadows = true;
//
// Presentations ...
x121Inputs.xhkInputs.drawRawXHKCandles = showAll || true;
x121Inputs.xhkInputs.drawSmoothedXHKCandles = showAll || true;
//
// XMAS ...
//
x121Inputs.xmasInputs.showUpper = showAll || false;
x121Inputs.xmasInputs.showMid = showAll || false;
x121Inputs.xmasInputs.showLower = showAll || false;
// Configurations ...
//
// Presentations ...
x121Inputs.xmasInputs.showMid = showAll || true;
x121Inputs.xmasInputs.showUpper = showAll || true;
x121Inputs.xmasInputs.showLower = showAll || true;
//
// 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 ...
//
// Configurations ...
//
// Presentations ...
x121Inputs.xstrInputs.showStr = showAll || true;
x121Inputs.xstrInputs.showStrUpper = showAll || false;
x121Inputs.xstrInputs.showStrLower = showAll || false;
//
// XCHE ...
//
// Configurations ...
//
// Presentations ...
x121Inputs.xcheInputs.showLE1 = showAll || false;
x121Inputs.xcheInputs.showLE2 = showAll || false;
x121Inputs.xcheInputs.showSE1 = showAll || false;
x121Inputs.xcheInputs.showLE2 = 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 ...
x121Inputs.x3maInputs.showX3MaFast = showAll || true;
//
// Configurations ...
//
// Presentations ...
x121Inputs.x3maInputs.showX3MaMid = showAll || false;
x121Inputs.x3maInputs.showX3MaFast = showAll || false;
x121Inputs.x3maInputs.showX3MaSlow = 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;
// XVWAP ...
//
// Configurations ...
//
// Presentations ...
x121Inputs.xvwapInputs.showVWapFast = showAll || false;
x121Inputs.xvwapInputs.showVWapSlow = showAll || false;
x121Inputs.xvwapInputs.showVWapMedium = showAll || false;
//
//
//
//