add supports for MANALYSER and attached it to XCAEAHelper ...
This commit is contained in:
@@ -56,10 +56,13 @@ enum ENUM_X121_XCA_BUFFERS
|
||||
X121_XCA_SWING_HIGH_LINE = 23,
|
||||
X121_XCA_TKI_LINE = 24,
|
||||
X121_XCA_VIDYA_LINE = 26,
|
||||
X121_XCA_TREND_STATE_LINE = 28,
|
||||
X121_XCA_KI_STATE_LINE = 29,
|
||||
X121_XCA_TKI_STATE_LINE = 30,
|
||||
X121_XCA_VIDYA_STATE_LINE = 31,
|
||||
X121_XCA_MAH_LINE = 28,
|
||||
X121_XCA_MAL_LINE = 29,
|
||||
X121_XCA_MAC_LINE = 30,
|
||||
X121_XCA_TREND_STATE_LINE = 31,
|
||||
X121_XCA_KI_STATE_LINE = 32,
|
||||
X121_XCA_TKI_STATE_LINE = 33,
|
||||
X121_XCA_VIDYA_STATE_LINE = 34,
|
||||
};
|
||||
|
||||
//
|
||||
@@ -119,6 +122,11 @@ struct X121XCAInputs
|
||||
int vidyaEMALength; // EMA Length
|
||||
ENUM_APPLIED_PRICE vidyaAppliedTo; // Applied To
|
||||
|
||||
//
|
||||
// MANALYSER ...
|
||||
int manalyserLength; // Length
|
||||
ENUM_MA_METHOD manalyserMethod; // Method
|
||||
|
||||
//
|
||||
// Swing Detection ...
|
||||
int swingLength; // Length
|
||||
@@ -138,6 +146,9 @@ struct X121XCAInputs
|
||||
bool showSar; // Show Sar
|
||||
bool showKI; // Show KI
|
||||
bool showTKI; // Show TKI
|
||||
bool showMAH; // Show MAH
|
||||
bool showMAL; // Show MAL
|
||||
bool showMAC; // Show MAC
|
||||
bool showVidya; // Show Vidya
|
||||
bool showTrend; // Show Trend
|
||||
bool showSwings; // Show Swings
|
||||
@@ -223,6 +234,11 @@ struct X121XCAInputs
|
||||
vidyaEMALength = 0;
|
||||
vidyaAppliedTo = PRICE_CLOSE;
|
||||
|
||||
//
|
||||
// MANALYSER ...
|
||||
manalyserLength = 0; // Length
|
||||
manalyserMethod = MODE_SMA; // Method
|
||||
|
||||
//
|
||||
// Swing Detection ...
|
||||
swingLength = 0; // Length
|
||||
@@ -239,22 +255,25 @@ struct X121XCAInputs
|
||||
startCalculationForLastBars = 0; // Calculate Last n Bars
|
||||
|
||||
//
|
||||
showSar = true; // Show Sar
|
||||
showKI = true; // Show KI
|
||||
showTKI = true; // Show TKI
|
||||
showVidya = true; // Show Vidya
|
||||
showTrend = true; // Show Trend
|
||||
showSwings = true; // Show Swings
|
||||
showFiboLevel1 = true; // Show Fibo Level 1
|
||||
showFiboLevel2 = true; // Show Fibo Level 2
|
||||
showFiboLevel3 = true; // Show Fibo Level 3
|
||||
showPeaksAndVales = true; // Show Peaks And Vales
|
||||
showPeakAndValeGolden = true; // Show Peak and Vale Golden
|
||||
showSupportAndResistance = true; // Show Support and Resistance
|
||||
showShortCycle = true; // Show Short Cycle
|
||||
showMediumCycle = true; // Show Medium Cycle
|
||||
showLongCycle = true; // Show Long Cycle
|
||||
showHindCycle = true; // Show Hind Cycle
|
||||
showSar = false; // Show Sar
|
||||
showKI = false; // Show KI
|
||||
showTKI = false; // Show TKI
|
||||
showMAH = false; // Show MAH
|
||||
showMAL = false; // Show MAL
|
||||
showMAC = false; // Show MAC
|
||||
showVidya = false; // Show Vidya
|
||||
showTrend = false; // Show Trend
|
||||
showSwings = false; // Show Swings
|
||||
showFiboLevel1 = false; // Show Fibo Level 1
|
||||
showFiboLevel2 = false; // Show Fibo Level 2
|
||||
showFiboLevel3 = false; // Show Fibo Level 3
|
||||
showPeaksAndVales = false; // Show Peaks And Vales
|
||||
showPeakAndValeGolden = false; // Show Peak and Vale Golden
|
||||
showSupportAndResistance = false; // Show Support and Resistance
|
||||
showShortCycle = false; // Show Short Cycle
|
||||
showMediumCycle = false; // Show Medium Cycle
|
||||
showLongCycle = false; // Show Long Cycle
|
||||
showHindCycle = false; // Show Hind Cycle
|
||||
|
||||
//
|
||||
sarArrowCode = 0; // Parabolic Sar Arrow Code
|
||||
@@ -320,6 +339,11 @@ struct X121XCAInputs
|
||||
vidyaEMALength = 14;
|
||||
vidyaAppliedTo = PRICE_CLOSE;
|
||||
|
||||
//
|
||||
// MANALYSER ...
|
||||
manalyserLength = 14; // Length
|
||||
manalyserMethod = MODE_SMA; // Method
|
||||
|
||||
//
|
||||
// Swing Detection ...
|
||||
swingLength = 5; // Length
|
||||
@@ -334,6 +358,9 @@ struct X121XCAInputs
|
||||
showSar = true; // Show Sar
|
||||
showKI = true; // Show KI
|
||||
showTKI = true; // Show TKI
|
||||
showMAH = true; // Show MAH
|
||||
showMAL = true; // Show MAL
|
||||
showMAC = true; // Show MAC
|
||||
showVidya = true; // Show Vidya
|
||||
showTrend = true; // Show Trend
|
||||
showSwings = true; // Show Swings
|
||||
@@ -374,6 +401,7 @@ struct X121XCAInputs
|
||||
sarMax > sarStep &&
|
||||
vidyaCMOLength > 0 &&
|
||||
vidyaEMALength > 0 &&
|
||||
manalyserLength > 0 &&
|
||||
//
|
||||
// XCA ...
|
||||
(IsValid(scMethod, scPeriod) &&
|
||||
@@ -398,6 +426,7 @@ struct X121XCAInputs
|
||||
result = MathMax(kiLength, swingLength);
|
||||
result = MathMax(result, vidyaCMOLength);
|
||||
result = MathMax(result, vidyaEMALength);
|
||||
result = MathMax(result, manalyserLength);
|
||||
|
||||
//
|
||||
return result;
|
||||
@@ -427,6 +456,9 @@ struct X121XCAConditions
|
||||
double hHHBuffer[];
|
||||
double hLLBuffer[];
|
||||
double sarBuffer[];
|
||||
double mahBuffer[];
|
||||
double malBuffer[];
|
||||
double macBuffer[];
|
||||
double peakBuffer[];
|
||||
double valeBuffer[];
|
||||
double vidyaBuffer[];
|
||||
@@ -520,6 +552,66 @@ struct X121XCAConditions
|
||||
bool isSarFinishedFromBullish;
|
||||
bool isSarFinishedFromBearish;
|
||||
|
||||
//
|
||||
// MANALYSER ...
|
||||
|
||||
//
|
||||
// MAH ...
|
||||
|
||||
//
|
||||
bool isOverMah;
|
||||
bool isUnderMah;
|
||||
bool isCrossedOverMah;
|
||||
bool isCrossedUnderMah;
|
||||
|
||||
//
|
||||
bool isCloseOverMah;
|
||||
bool isCloseUnderMah;
|
||||
bool isCloseCrossedOverMah;
|
||||
bool isCloseCrossedUnderMah;
|
||||
|
||||
//
|
||||
bool isMahBullishRejected;
|
||||
bool isMahBearishRejected;
|
||||
|
||||
//
|
||||
// MAL ...
|
||||
|
||||
//
|
||||
bool isOverMal;
|
||||
bool isUnderMal;
|
||||
bool isCrossedOverMal;
|
||||
bool isCrossedUnderMal;
|
||||
|
||||
//
|
||||
bool isCloseOverMal;
|
||||
bool isCloseUnderMal;
|
||||
bool isCloseCrossedOverMal;
|
||||
bool isCloseCrossedUnderMal;
|
||||
|
||||
//
|
||||
bool isMalBullishRejected;
|
||||
bool isMalBearishRejected;
|
||||
|
||||
//
|
||||
// MAC ...
|
||||
|
||||
//
|
||||
bool isOverMac;
|
||||
bool isUnderMac;
|
||||
bool isCrossedOverMac;
|
||||
bool isCrossedUnderMac;
|
||||
|
||||
//
|
||||
bool isCloseOverMac;
|
||||
bool isCloseUnderMac;
|
||||
bool isCloseCrossedOverMac;
|
||||
bool isCloseCrossedUnderMac;
|
||||
|
||||
//
|
||||
bool isMacBullishRejected;
|
||||
bool isMacBearishRejected;
|
||||
|
||||
//
|
||||
// PEAK ...
|
||||
|
||||
@@ -666,6 +758,9 @@ struct X121XCAConditions
|
||||
Clean(hHHBuffer);
|
||||
Clean(hLLBuffer);
|
||||
Clean(sarBuffer);
|
||||
Clean(mahBuffer);
|
||||
Clean(malBuffer);
|
||||
Clean(macBuffer);
|
||||
Clean(peakBuffer);
|
||||
Clean(valeBuffer);
|
||||
Clean(vidyaBuffer);
|
||||
@@ -696,6 +791,9 @@ struct X121XCAConditions
|
||||
ArraySetAsSeries(hHHBuffer, true);
|
||||
ArraySetAsSeries(hLLBuffer, true);
|
||||
ArraySetAsSeries(sarBuffer, true);
|
||||
ArraySetAsSeries(mahBuffer, true);
|
||||
ArraySetAsSeries(malBuffer, true);
|
||||
ArraySetAsSeries(macBuffer, true);
|
||||
ArraySetAsSeries(peakBuffer, true);
|
||||
ArraySetAsSeries(valeBuffer, true);
|
||||
ArraySetAsSeries(vidyaBuffer, true);
|
||||
@@ -788,6 +886,66 @@ struct X121XCAConditions
|
||||
//
|
||||
isSarFinishedFromBullish = false;
|
||||
isSarFinishedFromBearish = false;
|
||||
|
||||
//
|
||||
// MANALYSER ...
|
||||
|
||||
//
|
||||
// MAH ...
|
||||
|
||||
//
|
||||
isOverMah = false;
|
||||
isUnderMah = false;
|
||||
isCrossedOverMah = false;
|
||||
isCrossedUnderMah = false;
|
||||
|
||||
//
|
||||
isCloseOverMah = false;
|
||||
isCloseUnderMah = false;
|
||||
isCloseCrossedOverMah = false;
|
||||
isCloseCrossedUnderMah = false;
|
||||
|
||||
//
|
||||
isMahBullishRejected = false;
|
||||
isMahBearishRejected = false;
|
||||
|
||||
//
|
||||
// MAL ...
|
||||
|
||||
//
|
||||
isOverMal = false;
|
||||
isUnderMal = false;
|
||||
isCrossedOverMal = false;
|
||||
isCrossedUnderMal = false;
|
||||
|
||||
//
|
||||
isCloseOverMal = false;
|
||||
isCloseUnderMal = false;
|
||||
isCloseCrossedOverMal = false;
|
||||
isCloseCrossedUnderMal = false;
|
||||
|
||||
//
|
||||
isMalBullishRejected = false;
|
||||
isMalBearishRejected = false;
|
||||
|
||||
//
|
||||
// MAC ...
|
||||
|
||||
//
|
||||
isOverMac = false;
|
||||
isUnderMac = false;
|
||||
isCrossedOverMac = false;
|
||||
isCrossedUnderMac = false;
|
||||
|
||||
//
|
||||
isCloseOverMac = false;
|
||||
isCloseUnderMac = false;
|
||||
isCloseCrossedOverMac = false;
|
||||
isCloseCrossedUnderMac = false;
|
||||
|
||||
//
|
||||
isMacBullishRejected = false;
|
||||
isMacBearishRejected = false;
|
||||
|
||||
//
|
||||
// PEAK ...
|
||||
@@ -1039,6 +1197,152 @@ struct X121XCAConditions
|
||||
bearishScore += minScore;
|
||||
}
|
||||
|
||||
//
|
||||
// MANALYSER ...
|
||||
|
||||
//
|
||||
// MAH ...
|
||||
|
||||
//
|
||||
if (isUnderMah)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isCloseUnderMah)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isCrossedUnderMah)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isMahBullishRejected)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isCloseCrossedUnderMah)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
|
||||
//
|
||||
if (isOverMah)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isCloseOverMah)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isCrossedOverMah)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isMahBearishRejected)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isCloseCrossedOverMah)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
//
|
||||
// MAL ...
|
||||
|
||||
//
|
||||
if (isOverMal)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isCloseOverMal)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isCrossedOverMal)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isMalBullishRejected)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isCloseCrossedOverMal)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
|
||||
//
|
||||
if (isUnderMal)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isCloseUnderMal)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isCrossedUnderMal)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isMalBearishRejected)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isCloseCrossedUnderMal)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
|
||||
//
|
||||
// MAC ...
|
||||
|
||||
//
|
||||
if (isOverMac)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isCloseOverMac)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isCrossedOverMac)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isMacBullishRejected)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isCloseCrossedOverMac)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
|
||||
//
|
||||
if (isUnderMac)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isCloseUnderMac)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isCrossedUnderMac)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isMacBearishRejected)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isCloseCrossedUnderMac)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
|
||||
//
|
||||
// TREND ...
|
||||
|
||||
@@ -1304,6 +1608,36 @@ struct X121XCAConditions
|
||||
ToString("isSarFinishedFromBullish", isSarFinishedFromBullish, ignoreFalseConditions, separator) +
|
||||
ToString("isSarSwitchedToBearish", isSarSwitchedToBearish, ignoreFalseConditions, separator) +
|
||||
ToString("isSarFinishedFromBearish", isSarFinishedFromBearish, ignoreFalseConditions, separator) +
|
||||
ToString("isOverMah", isOverMah, ignoreFalseConditions, separator) +
|
||||
ToString("isUnderMah", isUnderMah, ignoreFalseConditions, separator) +
|
||||
ToString("isCrossedOverMah", isCrossedOverMah, ignoreFalseConditions, separator) +
|
||||
ToString("isCrossedUnderMah", isCrossedUnderMah, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseOverMah", isCloseOverMah, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseUnderMah", isCloseUnderMah, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedOverMah", isCloseCrossedOverMah, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedUnderMah", isCloseCrossedUnderMah, ignoreFalseConditions, separator) +
|
||||
ToString("isMahBullishRejected", isMahBullishRejected, ignoreFalseConditions, separator) +
|
||||
ToString("isMahBearishRejected", isMahBearishRejected, ignoreFalseConditions, separator) +
|
||||
ToString("isOverMal", isOverMal, ignoreFalseConditions, separator) +
|
||||
ToString("isUnderMal", isUnderMal, ignoreFalseConditions, separator) +
|
||||
ToString("isCrossedOverMal", isCrossedOverMal, ignoreFalseConditions, separator) +
|
||||
ToString("isCrossedUnderMal", isCrossedUnderMal, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseOverMal", isCloseOverMal, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseUnderMal", isCloseUnderMal, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedOverMal", isCloseCrossedOverMal, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedUnderMal", isCloseCrossedUnderMal, ignoreFalseConditions, separator) +
|
||||
ToString("isMalBullishRejected", isMalBullishRejected, ignoreFalseConditions, separator) +
|
||||
ToString("isMalBearishRejected", isMalBearishRejected, ignoreFalseConditions, separator) +
|
||||
ToString("isOverMac", isOverMac, ignoreFalseConditions, separator) +
|
||||
ToString("isUnderMac", isUnderMac, ignoreFalseConditions, separator) +
|
||||
ToString("isCrossedOverMac", isCrossedOverMac, ignoreFalseConditions, separator) +
|
||||
ToString("isCrossedUnderMac", isCrossedUnderMac, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseOverMac", isCloseOverMac, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseUnderMac", isCloseUnderMac, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedOverMac", isCloseCrossedOverMac, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedUnderMac", isCloseCrossedUnderMac, ignoreFalseConditions, separator) +
|
||||
ToString("isMacBullishRejected", isMacBullishRejected, ignoreFalseConditions, separator) +
|
||||
ToString("isMacBearishRejected", isMacBearishRejected, ignoreFalseConditions, separator) +
|
||||
ToString("isPeakSameLast", isPeakSameLast, ignoreFalseConditions, separator) +
|
||||
ToString("isPeakOverLast", isPeakOverLast, ignoreFalseConditions, separator) +
|
||||
ToString("isPeakUnderLast", isPeakUnderLast, ignoreFalseConditions, separator) +
|
||||
@@ -1426,6 +1760,9 @@ class XCX121XCAHelper : public XCBaseHelper
|
||||
Clean(hHHBuffer);
|
||||
Clean(hLLBuffer);
|
||||
Clean(sarBuffer);
|
||||
Clean(mahBuffer);
|
||||
Clean(malBuffer);
|
||||
Clean(macBuffer);
|
||||
Clean(peakBuffer);
|
||||
Clean(valeBuffer);
|
||||
Clean(vidyaBuffer);
|
||||
@@ -1479,6 +1816,9 @@ class XCX121XCAHelper : public XCBaseHelper
|
||||
ArraySetAsSeries(hHHBuffer, true);
|
||||
ArraySetAsSeries(hLLBuffer, true);
|
||||
ArraySetAsSeries(sarBuffer, true);
|
||||
ArraySetAsSeries(mahBuffer, true);
|
||||
ArraySetAsSeries(malBuffer, true);
|
||||
ArraySetAsSeries(macBuffer, true);
|
||||
ArraySetAsSeries(peakBuffer, true);
|
||||
ArraySetAsSeries(valeBuffer, true);
|
||||
ArraySetAsSeries(vidyaBuffer, true);
|
||||
@@ -1534,6 +1874,9 @@ class XCX121XCAHelper : public XCBaseHelper
|
||||
mInputs.vidyaCMOLength,
|
||||
mInputs.vidyaEMALength,
|
||||
mInputs.vidyaAppliedTo,
|
||||
"", // MANALYSER ...
|
||||
mInputs.manalyserLength,
|
||||
mInputs.manalyserMethod,
|
||||
"", // Swing Detection ...
|
||||
mInputs.swingLength,
|
||||
"", // Support and Resistance ...
|
||||
@@ -1544,6 +1887,9 @@ class XCX121XCAHelper : public XCBaseHelper
|
||||
mInputs.showSar,
|
||||
mInputs.showKI,
|
||||
mInputs.showTKI,
|
||||
mInputs.showMAH,
|
||||
mInputs.showMAL,
|
||||
mInputs.showMAC,
|
||||
mInputs.showVidya,
|
||||
mInputs.showTrend,
|
||||
mInputs.showSwings,
|
||||
@@ -2393,6 +2739,165 @@ class XCX121XCAHelper : public XCBaseHelper
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// MANALYSER ...
|
||||
|
||||
//
|
||||
// MAH ...
|
||||
|
||||
//
|
||||
double GetMah(
|
||||
int barIndex // Bar Index
|
||||
)
|
||||
{
|
||||
//
|
||||
if (barIndex < 0)
|
||||
{
|
||||
barIndex = 0;
|
||||
}
|
||||
|
||||
//
|
||||
Calculate(barIndex);
|
||||
|
||||
//
|
||||
int count = ArraySize(mahBuffer);
|
||||
if (barIndex >= count)
|
||||
{
|
||||
barIndex = count - 1;
|
||||
}
|
||||
|
||||
//
|
||||
return mahBuffer[barIndex];
|
||||
}
|
||||
|
||||
//
|
||||
int CopyMah(
|
||||
int start, // Start
|
||||
int count, // Number of Items for read
|
||||
double &buffer[], // Dest Buffer
|
||||
bool forceClean = true // Force To Clean buffer
|
||||
)
|
||||
{
|
||||
//
|
||||
// Update Calculations ...
|
||||
Calculate(start);
|
||||
|
||||
//
|
||||
// Copy Items ...
|
||||
return Copy(
|
||||
0,
|
||||
count,
|
||||
mahBuffer,
|
||||
buffer,
|
||||
forceClean
|
||||
//
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// MAL ,,,
|
||||
|
||||
//
|
||||
double GetMal(
|
||||
int barIndex // Bar Index
|
||||
)
|
||||
{
|
||||
//
|
||||
if (barIndex < 0)
|
||||
{
|
||||
barIndex = 0;
|
||||
}
|
||||
|
||||
//
|
||||
Calculate(barIndex);
|
||||
|
||||
//
|
||||
int count = ArraySize(malBuffer);
|
||||
if (barIndex >= count)
|
||||
{
|
||||
barIndex = count - 1;
|
||||
}
|
||||
|
||||
//
|
||||
return malBuffer[barIndex];
|
||||
}
|
||||
|
||||
//
|
||||
int CopyMlh(
|
||||
int start, // Start
|
||||
int count, // Number of Items for read
|
||||
double &buffer[], // Dest Buffer
|
||||
bool forceClean = true // Force To Clean buffer
|
||||
)
|
||||
{
|
||||
//
|
||||
// Update Calculations ...
|
||||
Calculate(start);
|
||||
|
||||
//
|
||||
// Copy Items ...
|
||||
return Copy(
|
||||
0,
|
||||
count,
|
||||
malBuffer,
|
||||
buffer,
|
||||
forceClean
|
||||
//
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// MAC ...
|
||||
|
||||
//
|
||||
double GetMac(
|
||||
int barIndex // Bar Index
|
||||
)
|
||||
{
|
||||
//
|
||||
if (barIndex < 0)
|
||||
{
|
||||
barIndex = 0;
|
||||
}
|
||||
|
||||
//
|
||||
Calculate(barIndex);
|
||||
|
||||
//
|
||||
int count = ArraySize(macBuffer);
|
||||
if (barIndex >= count)
|
||||
{
|
||||
barIndex = count - 1;
|
||||
}
|
||||
|
||||
//
|
||||
return macBuffer[barIndex];
|
||||
}
|
||||
|
||||
//
|
||||
int CopyMac(
|
||||
int start, // Start
|
||||
int count, // Number of Items for read
|
||||
double &buffer[], // Dest Buffer
|
||||
bool forceClean = true // Force To Clean buffer
|
||||
)
|
||||
{
|
||||
//
|
||||
// Update Calculations ...
|
||||
Calculate(start);
|
||||
|
||||
//
|
||||
// Copy Items ...
|
||||
return Copy(
|
||||
0,
|
||||
count,
|
||||
macBuffer,
|
||||
buffer,
|
||||
forceClean
|
||||
//
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// PEAK ...
|
||||
|
||||
@@ -3249,6 +3754,27 @@ class XCX121XCAHelper : public XCBaseHelper
|
||||
conditions.sarBuffer //
|
||||
);
|
||||
|
||||
//
|
||||
CopyMah(
|
||||
zIndex,
|
||||
loopback,
|
||||
conditions.mahBuffer //
|
||||
);
|
||||
|
||||
//
|
||||
CopyMal(
|
||||
zIndex,
|
||||
loopback,
|
||||
conditions.malBuffer //
|
||||
);
|
||||
|
||||
//
|
||||
CopyMac(
|
||||
zIndex,
|
||||
loopback,
|
||||
conditions.macBuffer //
|
||||
);
|
||||
|
||||
//
|
||||
CopyPeak(
|
||||
zIndex,
|
||||
@@ -3522,6 +4048,141 @@ class XCX121XCAHelper : public XCBaseHelper
|
||||
bool isSarFinishedFromBearish = !isSarBearish &&
|
||||
isSarBearishPrev;
|
||||
|
||||
//
|
||||
// MANALYSER ...
|
||||
|
||||
//
|
||||
// MAH ...
|
||||
|
||||
//
|
||||
bool isOverMah = cBar.low > conditions.mahBuffer[cIDX];
|
||||
bool isOverMahPrev = pBar.low > conditions.mahBuffer[pIDX];
|
||||
|
||||
//
|
||||
bool isUnderMah = cBar.high < conditions.mahBuffer[cIDX];
|
||||
bool isUnderMahPrev = pBar.high < conditions.mahBuffer[pIDX];
|
||||
|
||||
//
|
||||
bool isCrossedOverMah = isOverMah &&
|
||||
!isOverMahPrev;
|
||||
bool isCrossedUnderMah = isUnderMah &&
|
||||
!isUnderMahPrev;
|
||||
|
||||
//
|
||||
bool isCloseOverMah = cBar.close > conditions.mahBuffer[cIDX];
|
||||
bool isCloseOverMahPrev = pBar.close > conditions.mahBuffer[pIDX];
|
||||
|
||||
bool isCloseUnderMah = cBar.close < conditions.mahBuffer[cIDX];
|
||||
bool isCloseUnderMahPrev = pBar.close < conditions.mahBuffer[pIDX];
|
||||
|
||||
//
|
||||
bool isCloseCrossedOverMah = isCloseOverMah &&
|
||||
!isCloseOverMahPrev;
|
||||
bool isCloseCrossedUnderMah = isCloseUnderMah &&
|
||||
!isCloseUnderMahPrev;
|
||||
|
||||
//
|
||||
bool isMahBullishRejected = cBar.IsRejected(
|
||||
conditions.mahBuffer[cIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
false,
|
||||
false //
|
||||
);
|
||||
bool isMahBearishRejected = cBar.IsRejected(
|
||||
conditions.mahBuffer[cIDX],
|
||||
X_DIRECTION_BEARISH,
|
||||
false,
|
||||
false //
|
||||
);
|
||||
|
||||
//
|
||||
// MAL ...
|
||||
|
||||
//
|
||||
bool isOverMal = cBar.low > conditions.malBuffer[cIDX];
|
||||
bool isOverMalPrev = pBar.low > conditions.malBuffer[pIDX];
|
||||
|
||||
//
|
||||
bool isUnderMal = cBar.high < conditions.malBuffer[cIDX];
|
||||
bool isUnderMalPrev = pBar.high < conditions.malBuffer[pIDX];
|
||||
|
||||
//
|
||||
bool isCrossedOverMal = isOverMal &&
|
||||
!isOverMalPrev;
|
||||
bool isCrossedUnderMal = isUnderMal &&
|
||||
!isUnderMalPrev;
|
||||
|
||||
//
|
||||
bool isCloseOverMal = cBar.close > conditions.malBuffer[cIDX];
|
||||
bool isCloseOverMalPrev = pBar.close > conditions.malBuffer[pIDX];
|
||||
|
||||
bool isCloseUnderMal = cBar.close < conditions.malBuffer[cIDX];
|
||||
bool isCloseUnderMalPrev = pBar.close < conditions.malBuffer[pIDX];
|
||||
|
||||
//
|
||||
bool isCloseCrossedOverMal = isCloseOverMal &&
|
||||
!isCloseOverMalPrev;
|
||||
bool isCloseCrossedUnderMal = isCloseUnderMal &&
|
||||
!isCloseUnderMalPrev;
|
||||
|
||||
//
|
||||
bool isMalBullishRejected = cBar.IsRejected(
|
||||
conditions.malBuffer[cIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
false,
|
||||
false //
|
||||
);
|
||||
bool isMalBearishRejected = cBar.IsRejected(
|
||||
conditions.malBuffer[cIDX],
|
||||
X_DIRECTION_BEARISH,
|
||||
false,
|
||||
false //
|
||||
);
|
||||
|
||||
//
|
||||
// MAC ...
|
||||
|
||||
//
|
||||
bool isOverMac = cBar.low > conditions.macBuffer[cIDX];
|
||||
bool isOverMacPrev = pBar.low > conditions.macBuffer[pIDX];
|
||||
|
||||
//
|
||||
bool isUnderMac = cBar.high < conditions.macBuffer[cIDX];
|
||||
bool isUnderMacPrev = pBar.high < conditions.macBuffer[pIDX];
|
||||
|
||||
//
|
||||
bool isCrossedOverMac = isOverMac &&
|
||||
!isOverMacPrev;
|
||||
bool isCrossedUnderMac = isUnderMac &&
|
||||
!isUnderMacPrev;
|
||||
|
||||
//
|
||||
bool isCloseOverMac = cBar.close > conditions.macBuffer[cIDX];
|
||||
bool isCloseOverMacPrev = pBar.close > conditions.macBuffer[pIDX];
|
||||
|
||||
bool isCloseUnderMac = cBar.close < conditions.macBuffer[cIDX];
|
||||
bool isCloseUnderMacPrev = pBar.close < conditions.macBuffer[pIDX];
|
||||
|
||||
//
|
||||
bool isCloseCrossedOverMac = isCloseOverMac &&
|
||||
!isCloseOverMacPrev;
|
||||
bool isCloseCrossedUnderMac = isCloseUnderMac &&
|
||||
!isCloseUnderMacPrev;
|
||||
|
||||
//
|
||||
bool isMacBullishRejected = cBar.IsRejected(
|
||||
conditions.macBuffer[cIDX],
|
||||
X_DIRECTION_BULLISH,
|
||||
false,
|
||||
false //
|
||||
);
|
||||
bool isMacBearishRejected = cBar.IsRejected(
|
||||
conditions.macBuffer[cIDX],
|
||||
X_DIRECTION_BEARISH,
|
||||
false,
|
||||
false //
|
||||
);
|
||||
|
||||
//
|
||||
// PEAK ...
|
||||
|
||||
@@ -3747,6 +4408,12 @@ class XCX121XCAHelper : public XCBaseHelper
|
||||
// Attached ...
|
||||
|
||||
//
|
||||
conditions.isOverMah = isOverMah;
|
||||
conditions.isOverMal = isOverMal;
|
||||
conditions.isOverMac = isOverMac;
|
||||
conditions.isUnderMah = isUnderMah;
|
||||
conditions.isUnderMal = isUnderMal;
|
||||
conditions.isUnderMac = isUnderMac;
|
||||
conditions.isKIBullish = isKIBullish;
|
||||
conditions.isKIBearish = isKIBearish;
|
||||
conditions.isKIRejectUp = isKIRejectUp;
|
||||
@@ -3757,6 +4424,9 @@ class XCX121XCAHelper : public XCBaseHelper
|
||||
conditions.isTKIRejectUp = isTKIRejectUp;
|
||||
conditions.isPeakIsPivot = isPeakIsPivot;
|
||||
conditions.isValeIsPivot = isValeIsPivot;
|
||||
conditions.isCloseOverMah = isCloseOverMah;
|
||||
conditions.isCloseOverMal = isCloseOverMal;
|
||||
conditions.isCloseOverMac = isCloseOverMac;
|
||||
conditions.isVidyaBullish = isVidyaBullish;
|
||||
conditions.isVidyaBearish = isVidyaBearish;
|
||||
conditions.isKIRejectDown = isKIRejectDown;
|
||||
@@ -3766,10 +4436,19 @@ class XCX121XCAHelper : public XCBaseHelper
|
||||
conditions.isValeOverLast = isValeOverLast;
|
||||
conditions.isTrendBullish = isTrendBullish;
|
||||
conditions.isTrendBearish = isTrendBearish;
|
||||
conditions.isCloseUnderMah = isCloseUnderMah;
|
||||
conditions.isCloseUnderMal = isCloseUnderMal;
|
||||
conditions.isCloseUnderMac = isCloseUnderMac;
|
||||
conditions.isTKIRejectDown = isTKIRejectDown;
|
||||
conditions.isPeakUnderLast = isPeakUnderLast;
|
||||
conditions.isValeUnderLast = isValeUnderLast;
|
||||
conditions.isTrendRejectUp = isTrendRejectUp;
|
||||
conditions.isCrossedOverMah = isCrossedOverMah;
|
||||
conditions.isCrossedOverMal = isCrossedOverMal;
|
||||
conditions.isCrossedOverMac = isCrossedOverMac;
|
||||
conditions.isCrossedUnderMah = isCrossedUnderMah;
|
||||
conditions.isCrossedUnderMal = isCrossedUnderMal;
|
||||
conditions.isCrossedUnderMac = isCrossedUnderMac;
|
||||
conditions.isTrendRejectDown = isTrendRejectDown;
|
||||
conditions.isSupportSameLast = isSupportSameLast;
|
||||
conditions.isSupportOverLast = isSupportOverLast;
|
||||
@@ -3780,11 +4459,20 @@ class XCX121XCAHelper : public XCBaseHelper
|
||||
conditions.isSwingHighSameLast = isSwingHighSameLast;
|
||||
conditions.isSwingHighOverLast = isSwingHighOverLast;
|
||||
conditions.isSupportSameAsVale = isSupportSameAsVale;
|
||||
conditions.isMahBullishRejected = isMahBullishRejected;
|
||||
conditions.isMahBearishRejected = isMahBearishRejected;
|
||||
conditions.isMalBullishRejected = isMalBullishRejected;
|
||||
conditions.isMalBearishRejected = isMalBearishRejected;
|
||||
conditions.isMacBullishRejected = isMacBullishRejected;
|
||||
conditions.isMacBearishRejected = isMacBearishRejected;
|
||||
conditions.isLastSupportBreaked = isLastSupportBreaked;
|
||||
conditions.isResistanceSameLast = isResistanceSameLast;
|
||||
conditions.isResistanceOverLast = isResistanceOverLast;
|
||||
conditions.isSwingHighUnderLast = isSwingHighUnderLast;
|
||||
conditions.isSwingLowSameAsVale = isSwingLowSameAsVale;
|
||||
conditions.isCloseCrossedOverMah = isCloseCrossedOverMah;
|
||||
conditions.isCloseCrossedOverMal = isCloseCrossedOverMal;
|
||||
conditions.isCloseCrossedOverMac = isCloseCrossedOverMac;
|
||||
conditions.isLastSupportRejected = isLastSupportRejected;
|
||||
conditions.isResistanceUnderLast = isResistanceUnderLast;
|
||||
conditions.isKISwitchedToBullish = isKISwitchedToBullish;
|
||||
@@ -3793,6 +4481,9 @@ class XCX121XCAHelper : public XCBaseHelper
|
||||
conditions.isSwingHighSameAsPeak = isSwingHighSameAsPeak;
|
||||
conditions.isPeakSwitchedToPivot = isPeakSwitchedToPivot;
|
||||
conditions.isValeSwitchedToPivot = isValeSwitchedToPivot;
|
||||
conditions.isCloseCrossedUnderMah = isCloseCrossedUnderMah;
|
||||
conditions.isCloseCrossedUnderMal = isCloseCrossedUnderMal;
|
||||
conditions.isCloseCrossedUnderMac = isCloseCrossedUnderMac;
|
||||
conditions.isTKISwitchedToBullish = isTKISwitchedToBullish;
|
||||
conditions.isTKISwitchedToBearish = isTKISwitchedToBearish;
|
||||
conditions.isLastSwingLowRejected = isLastSwingLowRejected;
|
||||
@@ -3857,6 +4548,9 @@ class XCX121XCAHelper : public XCBaseHelper
|
||||
double hHHBuffer[];
|
||||
double hLLBuffer[];
|
||||
double sarBuffer[];
|
||||
double mahBuffer[];
|
||||
double malBuffer[];
|
||||
double macBuffer[];
|
||||
double peakBuffer[];
|
||||
double valeBuffer[];
|
||||
double vidyaBuffer[];
|
||||
@@ -3996,6 +4690,33 @@ class XCX121XCAHelper : public XCBaseHelper
|
||||
sarBuffer //
|
||||
);
|
||||
|
||||
//
|
||||
CopyBuffer(
|
||||
mHandler,
|
||||
X121_XCA_MAH_LINE,
|
||||
barIndex,
|
||||
maxRequiredBars,
|
||||
mahBuffer //
|
||||
);
|
||||
|
||||
//
|
||||
CopyBuffer(
|
||||
mHandler,
|
||||
X121_XCA_MAL_LINE,
|
||||
barIndex,
|
||||
maxRequiredBars,
|
||||
malBuffer //
|
||||
);
|
||||
|
||||
//
|
||||
CopyBuffer(
|
||||
mHandler,
|
||||
X121_XCA_MAC_LINE,
|
||||
barIndex,
|
||||
maxRequiredBars,
|
||||
macBuffer //
|
||||
);
|
||||
|
||||
//
|
||||
CopyBuffer(
|
||||
mHandler,
|
||||
@@ -4218,6 +4939,24 @@ class XCX121XCAHelper : public XCBaseHelper
|
||||
maxAllowed //
|
||||
);
|
||||
|
||||
//
|
||||
CleanupArray(
|
||||
mahBuffer,
|
||||
maxAllowed //
|
||||
);
|
||||
|
||||
//
|
||||
CleanupArray(
|
||||
malBuffer,
|
||||
maxAllowed //
|
||||
);
|
||||
|
||||
//
|
||||
CleanupArray(
|
||||
macBuffer,
|
||||
maxAllowed //
|
||||
);
|
||||
|
||||
//
|
||||
CleanupArray(
|
||||
peakBuffer,
|
||||
|
||||
@@ -36,21 +36,21 @@
|
||||
// Fast ...
|
||||
input group "Fast";
|
||||
input int fastLength = 6; // Length
|
||||
input ENUM_MA_METHOD fastMethod = MODE_SMA; // Mwethod
|
||||
input ENUM_MA_METHOD fastMethod = MODE_SMA; // Method
|
||||
input ENUM_APPLIED_PRICE fastAppliedTo = PRICE_CLOSE; // Applied To
|
||||
|
||||
//
|
||||
// Medium ...
|
||||
input group "Medium";
|
||||
input int mediumLength = 21; // Length
|
||||
input ENUM_MA_METHOD mediumMethod = MODE_SMA; // Mwethod
|
||||
input ENUM_MA_METHOD mediumMethod = MODE_SMA; // Method
|
||||
input ENUM_APPLIED_PRICE mediumAppliedTo = PRICE_CLOSE; // Applied To
|
||||
|
||||
//
|
||||
// Slow ...
|
||||
input group "Slow";
|
||||
input int slowLength = 34; // Length
|
||||
input ENUM_MA_METHOD slowMethod = MODE_SMA; // Mwethod
|
||||
input ENUM_MA_METHOD slowMethod = MODE_SMA; // Method
|
||||
input ENUM_APPLIED_PRICE slowAppliedTo = PRICE_CLOSE; // Applied To
|
||||
|
||||
//
|
||||
|
||||
@@ -84,6 +84,12 @@ input int vidyaCMOLength = 20; // CMO (Candle Momentum)
|
||||
input int vidyaEMALength = 14; // EMA Length
|
||||
input ENUM_APPLIED_PRICE vidyaAppliedTo = PRICE_CLOSE; // Applied To
|
||||
|
||||
//
|
||||
// Manalyser ...
|
||||
input group "Manalyser";
|
||||
input int manalyserLength = 14; // Length
|
||||
input ENUM_MA_METHOD manalyserMethod = MODE_SMA; // Method
|
||||
|
||||
//
|
||||
input group "Swing Detection";
|
||||
input int swingLength = 5; // Length
|
||||
@@ -104,6 +110,9 @@ input int startCalculationForLastBars = 1000; // Calculate Last n Bars
|
||||
input bool showSar = true; // Show Sar
|
||||
input bool showKI = true; // Show KI
|
||||
input bool showTKI = true; // Show KI Trend
|
||||
input bool showMAH = true; // Show MAH
|
||||
input bool showMAL = true; // Show MAL
|
||||
input bool showMAC = true; // Show MAC
|
||||
input bool showVidya = true; // Show Vidya
|
||||
input bool showTrend = true; // Show Trend
|
||||
input bool showSwings = true; // Show Swings
|
||||
@@ -146,8 +155,8 @@ input int swingHighArrowCode = 226; // Swing High Arrow Code
|
||||
#property indicator_chart_window
|
||||
|
||||
//
|
||||
#property indicator_buffers 34
|
||||
#property indicator_plots 24
|
||||
#property indicator_buffers 37
|
||||
#property indicator_plots 27
|
||||
|
||||
//
|
||||
// Plot Buffers ...
|
||||
@@ -493,10 +502,55 @@ double vidyaColorBuffer[];
|
||||
#property indicator_style24 STYLE_SOLID
|
||||
#property indicator_width24 1
|
||||
|
||||
//
|
||||
// MAH ...
|
||||
|
||||
//
|
||||
#define mahBufferIndex 28
|
||||
#define mahBufferPlotIndex 24
|
||||
double mahBuffer[];
|
||||
|
||||
//
|
||||
#property indicator_label25 "MAH"
|
||||
#property indicator_type25 DRAW_LINE
|
||||
#property indicator_color25 clrMagenta
|
||||
#property indicator_style25 STYLE_SOLID
|
||||
#property indicator_width25 1
|
||||
|
||||
//
|
||||
// MAL ...
|
||||
|
||||
//
|
||||
#define malBufferIndex 29
|
||||
#define malBufferPlotIndex 25
|
||||
double malBuffer[];
|
||||
|
||||
//
|
||||
#property indicator_label26 "MAL"
|
||||
#property indicator_type26 DRAW_LINE
|
||||
#property indicator_color26 clrAqua
|
||||
#property indicator_style26 STYLE_SOLID
|
||||
#property indicator_width26 1
|
||||
|
||||
//
|
||||
// MAC ...
|
||||
|
||||
//
|
||||
#define macBufferIndex 30
|
||||
#define macBufferPlotIndex 26
|
||||
double macBuffer[];
|
||||
|
||||
//
|
||||
#property indicator_label27 "MAC"
|
||||
#property indicator_type27 DRAW_LINE
|
||||
#property indicator_color27 clrYellow
|
||||
#property indicator_style27 STYLE_SOLID
|
||||
#property indicator_width27 1
|
||||
|
||||
//
|
||||
// Data Buffers ...
|
||||
|
||||
#define mLastBufferIndex 27
|
||||
#define mLastBufferIndex 30
|
||||
|
||||
//
|
||||
#define trendStateBufferIndex mLastBufferIndex + 1
|
||||
@@ -545,6 +599,12 @@ int tkiHandler = INVALID_HANDLE;
|
||||
int vidyaHandler = INVALID_HANDLE;
|
||||
int trendHandler = INVALID_HANDLE;
|
||||
|
||||
//
|
||||
// Manalyser Handlers ...
|
||||
int mahHandler = INVALID_HANDLE;
|
||||
int malHandler = INVALID_HANDLE;
|
||||
int macHandler = INVALID_HANDLE;
|
||||
|
||||
//
|
||||
// XMarketCycle sc;
|
||||
int mSCLength = 0;
|
||||
@@ -653,6 +713,57 @@ int OnInit()
|
||||
return INIT_FAILED;
|
||||
}
|
||||
|
||||
//
|
||||
// MANALYSE ...
|
||||
|
||||
//
|
||||
// MAH ...
|
||||
mahHandler = iMA(
|
||||
_Symbol,
|
||||
_Period,
|
||||
manalyserLength,
|
||||
0,
|
||||
manalyserMethod,
|
||||
PRICE_HIGH //
|
||||
);
|
||||
isInited = mahHandler != INVALID_HANDLE;
|
||||
if (!isInited)
|
||||
{
|
||||
return INIT_FAILED;
|
||||
}
|
||||
|
||||
//
|
||||
// MAL ...
|
||||
malHandler = iMA(
|
||||
_Symbol,
|
||||
_Period,
|
||||
manalyserLength,
|
||||
0,
|
||||
manalyserMethod,
|
||||
PRICE_LOW //
|
||||
);
|
||||
isInited = malHandler != INVALID_HANDLE;
|
||||
if (!isInited)
|
||||
{
|
||||
return INIT_FAILED;
|
||||
}
|
||||
|
||||
//
|
||||
// MAC ...
|
||||
macHandler = iMA(
|
||||
_Symbol,
|
||||
_Period,
|
||||
manalyserLength,
|
||||
0,
|
||||
manalyserMethod,
|
||||
PRICE_CLOSE //
|
||||
);
|
||||
isInited = macHandler != INVALID_HANDLE;
|
||||
if (!isInited)
|
||||
{
|
||||
return INIT_FAILED;
|
||||
}
|
||||
|
||||
//
|
||||
// because in some cases we may have more than one input for
|
||||
// calculation and we must prevent any calculation
|
||||
@@ -758,6 +869,21 @@ int OnCalculate(
|
||||
// TREND ...
|
||||
int trendCalculatedBars = BarsCalculated(trendHandler);
|
||||
|
||||
//
|
||||
// MANALYSER ...
|
||||
|
||||
//
|
||||
// MAH ...
|
||||
int mahCalculatedBars = BarsCalculated(mahHandler);
|
||||
|
||||
//
|
||||
// MAL ...
|
||||
int malCalculatedBars = BarsCalculated(malHandler);
|
||||
|
||||
//
|
||||
// MAC ...
|
||||
int macCalculatedBars = BarsCalculated(macHandler);
|
||||
|
||||
//
|
||||
bool isPassedRequiredCalculatedBars =
|
||||
//
|
||||
@@ -771,7 +897,15 @@ int OnCalculate(
|
||||
vidyaCalculatedBars >= maxLength &&
|
||||
//
|
||||
// TREND ...
|
||||
trendCalculatedBars >= maxLength
|
||||
trendCalculatedBars >= maxLength &&
|
||||
//
|
||||
// MANALYSER ...
|
||||
// MAH ...
|
||||
mahCalculatedBars >= maxLength &&
|
||||
// MAL ...
|
||||
malCalculatedBars >= maxLength &&
|
||||
// MAC ...
|
||||
macCalculatedBars >= maxLength
|
||||
//
|
||||
;
|
||||
if (!isPassedRequiredCalculatedBars)
|
||||
@@ -803,6 +937,21 @@ int OnCalculate(
|
||||
// TREND ...
|
||||
int copiedTrends = CopyBuffer(trendHandler, MAIN_LINE, 0, limit + 1, trendBuffer);
|
||||
|
||||
//
|
||||
// MANALYSER ...
|
||||
|
||||
//
|
||||
// MAH ...
|
||||
int copiedMahs = CopyBuffer(mahHandler, 0, 0, limit, mahBuffer);
|
||||
|
||||
//
|
||||
// MAL ...
|
||||
int copiedMals = CopyBuffer(malHandler, 0, 0, limit, malBuffer);
|
||||
|
||||
//
|
||||
// MAC ...
|
||||
int copiedMacs = CopyBuffer(macHandler, 0, 0, limit, macBuffer);
|
||||
|
||||
//
|
||||
// Validate Copied Items ...
|
||||
bool isPassedRequiredCopiedItems =
|
||||
@@ -817,7 +966,15 @@ int OnCalculate(
|
||||
copiedVidyas >= limit &&
|
||||
//
|
||||
// TREND ...
|
||||
copiedTrends >= limit
|
||||
copiedTrends >= limit &&
|
||||
//
|
||||
// MANALYSER ...
|
||||
// MAH ...
|
||||
copiedMahs >= limit &&
|
||||
// MAL ...
|
||||
copiedMals >= limit &&
|
||||
// MAC ...
|
||||
copiedMacs >= limit
|
||||
//
|
||||
;
|
||||
if (!isPassedRequiredCopiedItems)
|
||||
@@ -871,6 +1028,7 @@ bool ValidateInputs()
|
||||
sarMax > sarStep &&
|
||||
vidyaEMALength > 0 &&
|
||||
vidyaCMOLength > 0 &&
|
||||
manalyserLength > 0 &&
|
||||
//
|
||||
// XCA ...
|
||||
(IsValid(scMethod, scPeriod) &&
|
||||
@@ -898,6 +1056,7 @@ int ExtractMaxLengthOfInputs()
|
||||
result = MathMax(kiLength, swingLength);
|
||||
result = MathMax(result, vidyaCMOLength);
|
||||
result = MathMax(result, vidyaEMALength);
|
||||
result = MathMax(result, manalyserLength);
|
||||
|
||||
//
|
||||
return result;
|
||||
@@ -1340,6 +1499,60 @@ void DefineBuffers()
|
||||
PlotIndexSetDouble(swingHighBufferPlotIndex, PLOT_EMPTY_VALUE, emptyValue);
|
||||
PlotIndexSetInteger(swingHighBufferPlotIndex, PLOT_ARROW, swingHighArrowCode);
|
||||
|
||||
//
|
||||
// MANALYSER ...
|
||||
|
||||
//
|
||||
// MAH ...
|
||||
|
||||
//
|
||||
ENUM_DRAW_TYPE mahDrawType = showMAH ? DRAW_LINE : DRAW_NONE;
|
||||
|
||||
//
|
||||
ArraySetAsSeries(mahBuffer, true);
|
||||
SetIndexBuffer(mahBufferIndex, mahBuffer, INDICATOR_DATA);
|
||||
|
||||
//
|
||||
PlotIndexSetInteger(mahBufferPlotIndex, PLOT_SHOW_DATA, showMAH);
|
||||
PlotIndexSetInteger(mahBufferPlotIndex, PLOT_DRAW_TYPE, mahDrawType);
|
||||
|
||||
//
|
||||
PlotIndexSetDouble(mahBufferPlotIndex, PLOT_EMPTY_VALUE, emptyValue);
|
||||
|
||||
//
|
||||
// MAL ...
|
||||
|
||||
//
|
||||
ENUM_DRAW_TYPE malDrawType = showMAL ? DRAW_LINE : DRAW_NONE;
|
||||
|
||||
//
|
||||
ArraySetAsSeries(malBuffer, true);
|
||||
SetIndexBuffer(malBufferIndex, malBuffer, INDICATOR_DATA);
|
||||
|
||||
//
|
||||
PlotIndexSetInteger(malBufferPlotIndex, PLOT_SHOW_DATA, showMAL);
|
||||
PlotIndexSetInteger(malBufferPlotIndex, PLOT_DRAW_TYPE, malDrawType);
|
||||
|
||||
//
|
||||
PlotIndexSetDouble(malBufferPlotIndex, PLOT_EMPTY_VALUE, emptyValue);
|
||||
|
||||
//
|
||||
// MAC ...
|
||||
|
||||
//
|
||||
ENUM_DRAW_TYPE macDrawType = showMAC ? DRAW_LINE : DRAW_NONE;
|
||||
|
||||
//
|
||||
ArraySetAsSeries(macBuffer, true);
|
||||
SetIndexBuffer(macBufferIndex, macBuffer, INDICATOR_DATA);
|
||||
|
||||
//
|
||||
PlotIndexSetInteger(macBufferPlotIndex, PLOT_SHOW_DATA, showMAC);
|
||||
PlotIndexSetInteger(macBufferPlotIndex, PLOT_DRAW_TYPE, mahDrawType);
|
||||
|
||||
//
|
||||
PlotIndexSetDouble(macBufferPlotIndex, PLOT_EMPTY_VALUE, emptyValue);
|
||||
|
||||
//
|
||||
// Data Buffers ...
|
||||
|
||||
|
||||
+428
-77
@@ -261,6 +261,9 @@ struct XCAEAConditions
|
||||
double hHHBuffer[];
|
||||
double hLLBuffer[];
|
||||
double sarBuffer[];
|
||||
double mahBuffer[];
|
||||
double malBuffer[];
|
||||
double macBuffer[];
|
||||
double peakBuffer[];
|
||||
double valeBuffer[];
|
||||
double vidyaBuffer[];
|
||||
@@ -270,13 +273,13 @@ struct XCAEAConditions
|
||||
double tkiStateBuffer[];
|
||||
double swingLowBuffer[];
|
||||
double swingHighBuffer[];
|
||||
double vidyaStateBuffer[];
|
||||
double resistanceBuffer[];
|
||||
double peakGoldenBuffer[];
|
||||
double valeGoldenBuffer[];
|
||||
double fiboLevel1Buffer[];
|
||||
double fiboLevel2Buffer[];
|
||||
double fiboLevel3Buffer[];
|
||||
double vidyaStateBuffer[];
|
||||
double trendStateBuffer[];
|
||||
|
||||
//
|
||||
@@ -354,6 +357,66 @@ struct XCAEAConditions
|
||||
bool isSarFinishedFromBullish;
|
||||
bool isSarFinishedFromBearish;
|
||||
|
||||
//
|
||||
// MANALYSER ...
|
||||
|
||||
//
|
||||
// MAH ...
|
||||
|
||||
//
|
||||
bool isOverMah;
|
||||
bool isUnderMah;
|
||||
bool isCrossedOverMah;
|
||||
bool isCrossedUnderMah;
|
||||
|
||||
//
|
||||
bool isCloseOverMah;
|
||||
bool isCloseUnderMah;
|
||||
bool isCloseCrossedOverMah;
|
||||
bool isCloseCrossedUnderMah;
|
||||
|
||||
//
|
||||
bool isMahBullishRejected;
|
||||
bool isMahBearishRejected;
|
||||
|
||||
//
|
||||
// MAL ...
|
||||
|
||||
//
|
||||
bool isOverMal;
|
||||
bool isUnderMal;
|
||||
bool isCrossedOverMal;
|
||||
bool isCrossedUnderMal;
|
||||
|
||||
//
|
||||
bool isCloseOverMal;
|
||||
bool isCloseUnderMal;
|
||||
bool isCloseCrossedOverMal;
|
||||
bool isCloseCrossedUnderMal;
|
||||
|
||||
//
|
||||
bool isMalBullishRejected;
|
||||
bool isMalBearishRejected;
|
||||
|
||||
//
|
||||
// MAC ...
|
||||
|
||||
//
|
||||
bool isOverMac;
|
||||
bool isUnderMac;
|
||||
bool isCrossedOverMac;
|
||||
bool isCrossedUnderMac;
|
||||
|
||||
//
|
||||
bool isCloseOverMac;
|
||||
bool isCloseUnderMac;
|
||||
bool isCloseCrossedOverMac;
|
||||
bool isCloseCrossedUnderMac;
|
||||
|
||||
//
|
||||
bool isMacBullishRejected;
|
||||
bool isMacBearishRejected;
|
||||
|
||||
//
|
||||
// PEAK ...
|
||||
|
||||
@@ -722,8 +785,6 @@ struct XCAEAConditions
|
||||
//
|
||||
// Specified Conditions ...
|
||||
|
||||
//
|
||||
|
||||
//
|
||||
// Constructor ...
|
||||
XCAEAConditions()
|
||||
@@ -844,6 +905,9 @@ struct XCAEAConditions
|
||||
Clean(hHHBuffer);
|
||||
Clean(hLLBuffer);
|
||||
Clean(sarBuffer);
|
||||
Clean(mahBuffer);
|
||||
Clean(malBuffer);
|
||||
Clean(macBuffer);
|
||||
Clean(peakBuffer);
|
||||
Clean(valeBuffer);
|
||||
Clean(vidyaBuffer);
|
||||
@@ -874,6 +938,9 @@ struct XCAEAConditions
|
||||
ArraySetAsSeries(hHHBuffer, true);
|
||||
ArraySetAsSeries(hLLBuffer, true);
|
||||
ArraySetAsSeries(sarBuffer, true);
|
||||
ArraySetAsSeries(mahBuffer, true);
|
||||
ArraySetAsSeries(malBuffer, true);
|
||||
ArraySetAsSeries(macBuffer, true);
|
||||
ArraySetAsSeries(peakBuffer, true);
|
||||
ArraySetAsSeries(valeBuffer, true);
|
||||
ArraySetAsSeries(vidyaBuffer, true);
|
||||
@@ -967,6 +1034,66 @@ struct XCAEAConditions
|
||||
isSarFinishedFromBullish = false;
|
||||
isSarFinishedFromBearish = false;
|
||||
|
||||
//
|
||||
// MANALYSER ...
|
||||
|
||||
//
|
||||
// MAH ...
|
||||
|
||||
//
|
||||
isOverMah = false;
|
||||
isUnderMah = false;
|
||||
isCrossedOverMah = false;
|
||||
isCrossedUnderMah = false;
|
||||
|
||||
//
|
||||
isCloseOverMah = false;
|
||||
isCloseUnderMah = false;
|
||||
isCloseCrossedOverMah = false;
|
||||
isCloseCrossedUnderMah = false;
|
||||
|
||||
//
|
||||
isMahBullishRejected = false;
|
||||
isMahBearishRejected = false;
|
||||
|
||||
//
|
||||
// MAL ...
|
||||
|
||||
//
|
||||
isOverMal = false;
|
||||
isUnderMal = false;
|
||||
isCrossedOverMal = false;
|
||||
isCrossedUnderMal = false;
|
||||
|
||||
//
|
||||
isCloseOverMal = false;
|
||||
isCloseUnderMal = false;
|
||||
isCloseCrossedOverMal = false;
|
||||
isCloseCrossedUnderMal = false;
|
||||
|
||||
//
|
||||
isMalBullishRejected = false;
|
||||
isMalBearishRejected = false;
|
||||
|
||||
//
|
||||
// MAC ...
|
||||
|
||||
//
|
||||
isOverMac = false;
|
||||
isUnderMac = false;
|
||||
isCrossedOverMac = false;
|
||||
isCrossedUnderMac = false;
|
||||
|
||||
//
|
||||
isCloseOverMac = false;
|
||||
isCloseUnderMac = false;
|
||||
isCloseCrossedOverMac = false;
|
||||
isCloseCrossedUnderMac = false;
|
||||
|
||||
//
|
||||
isMacBullishRejected = false;
|
||||
isMacBearishRejected = false;
|
||||
|
||||
//
|
||||
// PEAK ...
|
||||
|
||||
@@ -1544,6 +1671,152 @@ struct XCAEAConditions
|
||||
bearishScore += minScore;
|
||||
}
|
||||
|
||||
//
|
||||
// MANALYSER ...
|
||||
|
||||
//
|
||||
// MAH ...
|
||||
|
||||
//
|
||||
if (isUnderMah)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isCloseUnderMah)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isCrossedUnderMah)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isMahBullishRejected)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isCloseCrossedUnderMah)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
|
||||
//
|
||||
if (isOverMah)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isCloseOverMah)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isCrossedOverMah)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isMahBearishRejected)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isCloseCrossedOverMah)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
//
|
||||
// MAL ...
|
||||
|
||||
//
|
||||
if (isOverMal)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isCloseOverMal)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isCrossedOverMal)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isMalBullishRejected)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isCloseCrossedOverMal)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
|
||||
//
|
||||
if (isUnderMal)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isCloseUnderMal)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isCrossedUnderMal)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isMalBearishRejected)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isCloseCrossedUnderMal)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
|
||||
//
|
||||
// MAC ...
|
||||
|
||||
//
|
||||
if (isOverMac)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isCloseOverMac)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isCrossedOverMac)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isMacBullishRejected)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
if (isCloseCrossedOverMac)
|
||||
{
|
||||
bullishScore += minScore;
|
||||
}
|
||||
|
||||
//
|
||||
if (isUnderMac)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isCloseUnderMac)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isCrossedUnderMac)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isMacBearishRejected)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
if (isCloseCrossedUnderMac)
|
||||
{
|
||||
bearishScore += minScore;
|
||||
}
|
||||
|
||||
//
|
||||
// TREND ...
|
||||
|
||||
@@ -2261,6 +2534,36 @@ struct XCAEAConditions
|
||||
ToString("isSarFinishedFromBullish", isSarFinishedFromBullish, ignoreFalseConditions, separator) +
|
||||
ToString("isSarSwitchedToBearish", isSarSwitchedToBearish, ignoreFalseConditions, separator) +
|
||||
ToString("isSarFinishedFromBearish", isSarFinishedFromBearish, ignoreFalseConditions, separator) +
|
||||
ToString("isOverMah", isOverMah, ignoreFalseConditions, separator) +
|
||||
ToString("isUnderMah", isUnderMah, ignoreFalseConditions, separator) +
|
||||
ToString("isCrossedOverMah", isCrossedOverMah, ignoreFalseConditions, separator) +
|
||||
ToString("isCrossedUnderMah", isCrossedUnderMah, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseOverMah", isCloseOverMah, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseUnderMah", isCloseUnderMah, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedOverMah", isCloseCrossedOverMah, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedUnderMah", isCloseCrossedUnderMah, ignoreFalseConditions, separator) +
|
||||
ToString("isMahBullishRejected", isMahBullishRejected, ignoreFalseConditions, separator) +
|
||||
ToString("isMahBearishRejected", isMahBearishRejected, ignoreFalseConditions, separator) +
|
||||
ToString("isOverMal", isOverMal, ignoreFalseConditions, separator) +
|
||||
ToString("isUnderMal", isUnderMal, ignoreFalseConditions, separator) +
|
||||
ToString("isCrossedOverMal", isCrossedOverMal, ignoreFalseConditions, separator) +
|
||||
ToString("isCrossedUnderMal", isCrossedUnderMal, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseOverMal", isCloseOverMal, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseUnderMal", isCloseUnderMal, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedOverMal", isCloseCrossedOverMal, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedUnderMal", isCloseCrossedUnderMal, ignoreFalseConditions, separator) +
|
||||
ToString("isMalBullishRejected", isMalBullishRejected, ignoreFalseConditions, separator) +
|
||||
ToString("isMalBearishRejected", isMalBearishRejected, ignoreFalseConditions, separator) +
|
||||
ToString("isOverMac", isOverMac, ignoreFalseConditions, separator) +
|
||||
ToString("isUnderMac", isUnderMac, ignoreFalseConditions, separator) +
|
||||
ToString("isCrossedOverMac", isCrossedOverMac, ignoreFalseConditions, separator) +
|
||||
ToString("isCrossedUnderMac", isCrossedUnderMac, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseOverMac", isCloseOverMac, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseUnderMac", isCloseUnderMac, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedOverMac", isCloseCrossedOverMac, ignoreFalseConditions, separator) +
|
||||
ToString("isCloseCrossedUnderMac", isCloseCrossedUnderMac, ignoreFalseConditions, separator) +
|
||||
ToString("isMacBullishRejected", isMacBullishRejected, ignoreFalseConditions, separator) +
|
||||
ToString("isMacBearishRejected", isMacBearishRejected, ignoreFalseConditions, separator) +
|
||||
ToString("isPeakSameLast", isPeakSameLast, ignoreFalseConditions, separator) +
|
||||
ToString("isPeakOverLast", isPeakOverLast, ignoreFalseConditions, separator) +
|
||||
ToString("isPeakUnderLast", isPeakUnderLast, ignoreFalseConditions, separator) +
|
||||
@@ -3250,6 +3553,24 @@ class XCXCAEAHelper : XCBase
|
||||
conditions.sarBuffer //
|
||||
);
|
||||
|
||||
//
|
||||
Copy(
|
||||
xcaConditions.mahBuffer,
|
||||
conditions.mahBuffer //
|
||||
);
|
||||
|
||||
//
|
||||
Copy(
|
||||
xcaConditions.malBuffer,
|
||||
conditions.malBuffer //
|
||||
);
|
||||
|
||||
//
|
||||
Copy(
|
||||
xcaConditions.macBuffer,
|
||||
conditions.macBuffer //
|
||||
);
|
||||
|
||||
//
|
||||
Copy(
|
||||
xcaConditions.peakBuffer,
|
||||
@@ -3350,80 +3671,110 @@ class XCXCAEAHelper : XCBase
|
||||
// Conditions ...
|
||||
|
||||
//
|
||||
conditions.isKIBullish = xcaConditions.isKIBullish;
|
||||
conditions.isKIBearish = xcaConditions.isKIBearish;
|
||||
conditions.isKIRejectUp = xcaConditions.isKIRejectUp;
|
||||
conditions.isTKIBullish = xcaConditions.isTKIBullish;
|
||||
conditions.isTKIBearish = xcaConditions.isTKIBearish;
|
||||
conditions.isSarBullish = xcaConditions.isSarBullish;
|
||||
conditions.isSarBearish = xcaConditions.isSarBearish;
|
||||
conditions.isTKIRejectUp = xcaConditions.isTKIRejectUp;
|
||||
conditions.isPeakIsPivot = xcaConditions.isPeakIsPivot;
|
||||
conditions.isValeIsPivot = xcaConditions.isValeIsPivot;
|
||||
conditions.isVidyaBullish = xcaConditions.isVidyaBullish;
|
||||
conditions.isVidyaBearish = xcaConditions.isVidyaBearish;
|
||||
conditions.isKIRejectDown = xcaConditions.isKIRejectDown;
|
||||
conditions.isPeakSameLast = xcaConditions.isPeakSameLast;
|
||||
conditions.isPeakOverLast = xcaConditions.isPeakOverLast;
|
||||
conditions.isValeSameLast = xcaConditions.isValeSameLast;
|
||||
conditions.isValeOverLast = xcaConditions.isValeOverLast;
|
||||
conditions.isTrendBullish = xcaConditions.isTrendBullish;
|
||||
conditions.isTrendBearish = xcaConditions.isTrendBearish;
|
||||
conditions.isTKIRejectDown = xcaConditions.isTKIRejectDown;
|
||||
conditions.isPeakUnderLast = xcaConditions.isPeakUnderLast;
|
||||
conditions.isValeUnderLast = xcaConditions.isValeUnderLast;
|
||||
conditions.isTrendRejectUp = xcaConditions.isTrendRejectUp;
|
||||
conditions.isTrendRejectDown = xcaConditions.isTrendRejectDown;
|
||||
conditions.isSupportSameLast = xcaConditions.isSupportSameLast;
|
||||
conditions.isSupportOverLast = xcaConditions.isSupportOverLast;
|
||||
conditions.isSupportUnderLast = xcaConditions.isSupportUnderLast;
|
||||
conditions.isSwingLowSameLast = xcaConditions.isSwingLowSameLast;
|
||||
conditions.isSwingLowOverLast = xcaConditions.isSwingLowOverLast;
|
||||
conditions.isSwingLowUnderLast = xcaConditions.isSwingLowUnderLast;
|
||||
conditions.isSwingHighSameLast = xcaConditions.isSwingHighSameLast;
|
||||
conditions.isSwingHighOverLast = xcaConditions.isSwingHighOverLast;
|
||||
conditions.isSupportSameAsVale = xcaConditions.isSupportSameAsVale;
|
||||
conditions.isLastSupportBreaked = xcaConditions.isLastSupportBreaked;
|
||||
conditions.isResistanceSameLast = xcaConditions.isResistanceSameLast;
|
||||
conditions.isResistanceOverLast = xcaConditions.isResistanceOverLast;
|
||||
conditions.isSwingHighUnderLast = xcaConditions.isSwingHighUnderLast;
|
||||
conditions.isSwingLowSameAsVale = xcaConditions.isSwingLowSameAsVale;
|
||||
conditions.isLastSupportRejected = xcaConditions.isLastSupportRejected;
|
||||
conditions.isResistanceUnderLast = xcaConditions.isResistanceUnderLast;
|
||||
conditions.isKISwitchedToBullish = xcaConditions.isKISwitchedToBullish;
|
||||
conditions.isKISwitchedToBearish = xcaConditions.isKISwitchedToBearish;
|
||||
conditions.isLastSwingLowBreaked = xcaConditions.isLastSwingLowBreaked;
|
||||
conditions.isSwingHighSameAsPeak = xcaConditions.isSwingHighSameAsPeak;
|
||||
conditions.isPeakSwitchedToPivot = xcaConditions.isPeakSwitchedToPivot;
|
||||
conditions.isValeSwitchedToPivot = xcaConditions.isValeSwitchedToPivot;
|
||||
conditions.isTKISwitchedToBullish = xcaConditions.isTKISwitchedToBullish;
|
||||
conditions.isTKISwitchedToBearish = xcaConditions.isTKISwitchedToBearish;
|
||||
conditions.isLastSwingLowRejected = xcaConditions.isLastSwingLowRejected;
|
||||
conditions.isSarSwitchedToBullish = xcaConditions.isSarSwitchedToBullish;
|
||||
conditions.isSarSwitchedToBearish = xcaConditions.isSarSwitchedToBearish;
|
||||
conditions.isLastSwingHighBreaked = xcaConditions.isLastSwingHighBreaked;
|
||||
conditions.isResistanceSameAsPeak = xcaConditions.isResistanceSameAsPeak;
|
||||
conditions.isPeakFinishedFromPivot = xcaConditions.isPeakFinishedFromPivot;
|
||||
conditions.isValeFinishedFromPivot = xcaConditions.isValeFinishedFromPivot;
|
||||
conditions.isLastSwingHighRejected = xcaConditions.isLastSwingHighRejected;
|
||||
conditions.isLastResistanceBreaked = xcaConditions.isLastResistanceBreaked;
|
||||
conditions.isSupportSameAsSwingLow = xcaConditions.isSupportSameAsSwingLow;
|
||||
conditions.isKIFinishedFromBullish = xcaConditions.isKIFinishedFromBullish;
|
||||
conditions.isKIFinishedFromBearish = xcaConditions.isKIFinishedFromBearish;
|
||||
conditions.isTKIFinishedFromBullish = xcaConditions.isTKIFinishedFromBullish;
|
||||
conditions.isTKIFinishedFromBearish = xcaConditions.isTKIFinishedFromBearish;
|
||||
conditions.isSarFinishedFromBullish = xcaConditions.isSarFinishedFromBullish;
|
||||
conditions.isSarFinishedFromBearish = xcaConditions.isSarFinishedFromBearish;
|
||||
conditions.isVidyaSwitchedToBullish = xcaConditions.isVidyaSwitchedToBullish;
|
||||
conditions.isVidyaSwitchedToBearish = xcaConditions.isVidyaSwitchedToBearish;
|
||||
conditions.isLastResistanceRejected = xcaConditions.isLastResistanceRejected;
|
||||
conditions.isTrendSwitchedToBullish = xcaConditions.isTrendSwitchedToBullish;
|
||||
conditions.isTrendSwitchedToBearish = xcaConditions.isTrendSwitchedToBearish;
|
||||
conditions.isVidyaFinishedFromBullish = xcaConditions.isVidyaFinishedFromBullish;
|
||||
conditions.isVidyaFinishedFromBearish = xcaConditions.isVidyaFinishedFromBearish;
|
||||
conditions.isTrendFinishedFromBullish = xcaConditions.isTrendFinishedFromBullish;
|
||||
conditions.isTrendFinishedFromBearish = xcaConditions.isTrendFinishedFromBearish;
|
||||
conditions.isResistanceSameAsSwingHigh = xcaConditions.isResistanceSameAsSwingHigh;
|
||||
conditions.isOverMah = isOverMah;
|
||||
conditions.isOverMal = isOverMal;
|
||||
conditions.isOverMac = isOverMac;
|
||||
conditions.isUnderMah = isUnderMah;
|
||||
conditions.isUnderMal = isUnderMal;
|
||||
conditions.isUnderMac = isUnderMac;
|
||||
conditions.isKIBullish = isKIBullish;
|
||||
conditions.isKIBearish = isKIBearish;
|
||||
conditions.isKIRejectUp = isKIRejectUp;
|
||||
conditions.isTKIBullish = isTKIBullish;
|
||||
conditions.isTKIBearish = isTKIBearish;
|
||||
conditions.isSarBullish = isSarBullish;
|
||||
conditions.isSarBearish = isSarBearish;
|
||||
conditions.isTKIRejectUp = isTKIRejectUp;
|
||||
conditions.isPeakIsPivot = isPeakIsPivot;
|
||||
conditions.isValeIsPivot = isValeIsPivot;
|
||||
conditions.isCloseOverMah = isCloseOverMah;
|
||||
conditions.isCloseOverMal = isCloseOverMal;
|
||||
conditions.isCloseOverMac = isCloseOverMac;
|
||||
conditions.isVidyaBullish = isVidyaBullish;
|
||||
conditions.isVidyaBearish = isVidyaBearish;
|
||||
conditions.isKIRejectDown = isKIRejectDown;
|
||||
conditions.isPeakSameLast = isPeakSameLast;
|
||||
conditions.isPeakOverLast = isPeakOverLast;
|
||||
conditions.isValeSameLast = isValeSameLast;
|
||||
conditions.isValeOverLast = isValeOverLast;
|
||||
conditions.isTrendBullish = isTrendBullish;
|
||||
conditions.isTrendBearish = isTrendBearish;
|
||||
conditions.isCloseUnderMah = isCloseUnderMah;
|
||||
conditions.isCloseUnderMal = isCloseUnderMal;
|
||||
conditions.isCloseUnderMac = isCloseUnderMac;
|
||||
conditions.isTKIRejectDown = isTKIRejectDown;
|
||||
conditions.isPeakUnderLast = isPeakUnderLast;
|
||||
conditions.isValeUnderLast = isValeUnderLast;
|
||||
conditions.isTrendRejectUp = isTrendRejectUp;
|
||||
conditions.isCrossedOverMah = isCrossedOverMah;
|
||||
conditions.isCrossedOverMal = isCrossedOverMal;
|
||||
conditions.isCrossedOverMac = isCrossedOverMac;
|
||||
conditions.isCrossedUnderMah = isCrossedUnderMah;
|
||||
conditions.isCrossedUnderMal = isCrossedUnderMal;
|
||||
conditions.isCrossedUnderMac = isCrossedUnderMac;
|
||||
conditions.isTrendRejectDown = isTrendRejectDown;
|
||||
conditions.isSupportSameLast = isSupportSameLast;
|
||||
conditions.isSupportOverLast = isSupportOverLast;
|
||||
conditions.isSupportUnderLast = isSupportUnderLast;
|
||||
conditions.isSwingLowSameLast = isSwingLowSameLast;
|
||||
conditions.isSwingLowOverLast = isSwingLowOverLast;
|
||||
conditions.isSwingLowUnderLast = isSwingLowUnderLast;
|
||||
conditions.isSwingHighSameLast = isSwingHighSameLast;
|
||||
conditions.isSwingHighOverLast = isSwingHighOverLast;
|
||||
conditions.isSupportSameAsVale = isSupportSameAsVale;
|
||||
conditions.isMahBullishRejected = isMahBullishRejected;
|
||||
conditions.isMahBearishRejected = isMahBearishRejected;
|
||||
conditions.isMalBullishRejected = isMalBullishRejected;
|
||||
conditions.isMalBearishRejected = isMalBearishRejected;
|
||||
conditions.isMacBullishRejected = isMacBullishRejected;
|
||||
conditions.isMacBearishRejected = isMacBearishRejected;
|
||||
conditions.isLastSupportBreaked = isLastSupportBreaked;
|
||||
conditions.isResistanceSameLast = isResistanceSameLast;
|
||||
conditions.isResistanceOverLast = isResistanceOverLast;
|
||||
conditions.isSwingHighUnderLast = isSwingHighUnderLast;
|
||||
conditions.isSwingLowSameAsVale = isSwingLowSameAsVale;
|
||||
conditions.isCloseCrossedOverMah = isCloseCrossedOverMah;
|
||||
conditions.isCloseCrossedOverMal = isCloseCrossedOverMal;
|
||||
conditions.isCloseCrossedOverMac = isCloseCrossedOverMac;
|
||||
conditions.isLastSupportRejected = isLastSupportRejected;
|
||||
conditions.isResistanceUnderLast = isResistanceUnderLast;
|
||||
conditions.isKISwitchedToBullish = isKISwitchedToBullish;
|
||||
conditions.isKISwitchedToBearish = isKISwitchedToBearish;
|
||||
conditions.isLastSwingLowBreaked = isLastSwingLowBreaked;
|
||||
conditions.isSwingHighSameAsPeak = isSwingHighSameAsPeak;
|
||||
conditions.isPeakSwitchedToPivot = isPeakSwitchedToPivot;
|
||||
conditions.isValeSwitchedToPivot = isValeSwitchedToPivot;
|
||||
conditions.isCloseCrossedUnderMah = isCloseCrossedUnderMah;
|
||||
conditions.isCloseCrossedUnderMal = isCloseCrossedUnderMal;
|
||||
conditions.isCloseCrossedUnderMac = isCloseCrossedUnderMac;
|
||||
conditions.isTKISwitchedToBullish = isTKISwitchedToBullish;
|
||||
conditions.isTKISwitchedToBearish = isTKISwitchedToBearish;
|
||||
conditions.isLastSwingLowRejected = isLastSwingLowRejected;
|
||||
conditions.isSarSwitchedToBullish = isSarSwitchedToBullish;
|
||||
conditions.isSarSwitchedToBearish = isSarSwitchedToBearish;
|
||||
conditions.isLastSwingHighBreaked = isLastSwingHighBreaked;
|
||||
conditions.isResistanceSameAsPeak = isResistanceSameAsPeak;
|
||||
conditions.isPeakFinishedFromPivot = isPeakFinishedFromPivot;
|
||||
conditions.isValeFinishedFromPivot = isValeFinishedFromPivot;
|
||||
conditions.isLastSwingHighRejected = isLastSwingHighRejected;
|
||||
conditions.isLastResistanceBreaked = isLastResistanceBreaked;
|
||||
conditions.isSupportSameAsSwingLow = isSupportSameAsSwingLow;
|
||||
conditions.isKIFinishedFromBullish = isKIFinishedFromBullish;
|
||||
conditions.isKIFinishedFromBearish = isKIFinishedFromBearish;
|
||||
conditions.isTKIFinishedFromBullish = isTKIFinishedFromBullish;
|
||||
conditions.isTKIFinishedFromBearish = isTKIFinishedFromBearish;
|
||||
conditions.isSarFinishedFromBullish = isSarFinishedFromBullish;
|
||||
conditions.isSarFinishedFromBearish = isSarFinishedFromBearish;
|
||||
conditions.isVidyaSwitchedToBullish = isVidyaSwitchedToBullish;
|
||||
conditions.isVidyaSwitchedToBearish = isVidyaSwitchedToBearish;
|
||||
conditions.isLastResistanceRejected = isLastResistanceRejected;
|
||||
conditions.isTrendSwitchedToBullish = isTrendSwitchedToBullish;
|
||||
conditions.isTrendSwitchedToBearish = isTrendSwitchedToBearish;
|
||||
conditions.isVidyaFinishedFromBullish = isVidyaFinishedFromBullish;
|
||||
conditions.isVidyaFinishedFromBearish = isVidyaFinishedFromBearish;
|
||||
conditions.isTrendFinishedFromBullish = isTrendFinishedFromBullish;
|
||||
conditions.isTrendFinishedFromBearish = isTrendFinishedFromBearish;
|
||||
conditions.isResistanceSameAsSwingHigh = isResistanceSameAsSwingHigh;
|
||||
|
||||
//
|
||||
// XOSCS ...
|
||||
|
||||
Reference in New Issue
Block a user