This commit is contained in:
2025-04-17 01:46:46 +03:30
parent d912210e68
commit c6e3c78e06
9 changed files with 3038 additions and 37 deletions
+112
View File
@@ -163,6 +163,10 @@ struct XCAEAConditions
ENUM_TIMEFRAMES period;
datetime time;
//
datetime to;
datetime from;
//
// XCA ...
@@ -171,6 +175,7 @@ struct XCAEAConditions
//
double kiBuffer[];
double tkiBuffer[];
double sHHBuffer[];
double sLLBuffer[];
double mHHBuffer[];
@@ -185,6 +190,7 @@ struct XCAEAConditions
double trendBuffer[];
double kiStateBuffer[];
double supportBuffer[];
double tkiStateBuffer[];
double swingLowBuffer[];
double swingHighBuffer[];
double resistanceBuffer[];
@@ -213,6 +219,21 @@ struct XCAEAConditions
bool isKISwitchedToBullish;
bool isKISwitchedToBearish;
//
// TKI ...
//
bool isTKIRejectUp;
bool isTKIRejectDown;
//
bool isTKIBullish;
bool isTKIBearish;
//
bool isTKISwitchedToBullish;
bool isTKISwitchedToBearish;
//
// SAR ...
@@ -577,6 +598,10 @@ struct XCAEAConditions
// Commons ...
symbol = NULL;
period = NULL;
//
to = NULL;
from = NULL;
time = NULL;
//
@@ -587,6 +612,7 @@ struct XCAEAConditions
//
Clean(kiBuffer);
Clean(tkiBuffer);
Clean(sHHBuffer);
Clean(sLLBuffer);
Clean(mHHBuffer);
@@ -601,6 +627,7 @@ struct XCAEAConditions
Clean(trendBuffer);
Clean(kiStateBuffer);
Clean(supportBuffer);
Clean(tkiStateBuffer);
Clean(swingLowBuffer);
Clean(swingHighBuffer);
Clean(resistanceBuffer);
@@ -613,6 +640,7 @@ struct XCAEAConditions
//
ArraySetAsSeries(kiBuffer, true);
ArraySetAsSeries(tkiBuffer, true);
ArraySetAsSeries(sHHBuffer, true);
ArraySetAsSeries(sLLBuffer, true);
ArraySetAsSeries(mHHBuffer, true);
@@ -627,6 +655,7 @@ struct XCAEAConditions
ArraySetAsSeries(trendBuffer, true);
ArraySetAsSeries(kiStateBuffer, true);
ArraySetAsSeries(supportBuffer, true);
ArraySetAsSeries(tkiStateBuffer, true);
ArraySetAsSeries(swingLowBuffer, true);
ArraySetAsSeries(swingHighBuffer, true);
ArraySetAsSeries(resistanceBuffer, true);
@@ -655,6 +684,21 @@ struct XCAEAConditions
isKISwitchedToBullish = false;
isKISwitchedToBearish = false;
//
// TKI ...
//
isTKIRejectUp = false;
isTKIRejectDown = false;
//
isTKIBullish = false;
isTKIBearish = false;
//
isTKISwitchedToBullish = false;
isTKISwitchedToBearish = false;
//
// SAR ...
@@ -1008,6 +1052,37 @@ struct XCAEAConditions
bearishScore += minScore;
}
//
// TKI ...
//
if (isTKIBullish)
{
bullishScore += minScore;
}
if (isTKIRejectUp)
{
bullishScore += minScore;
}
if (isTKISwitchedToBullish)
{
bullishScore += minScore;
}
//
if (isTKIBearish)
{
bearishScore += minScore;
}
if (isTKIRejectDown)
{
bearishScore += minScore;
}
if (isTKISwitchedToBearish)
{
bearishScore += minScore;
}
//
// SAR ...
@@ -1695,6 +1770,12 @@ struct XCAEAConditions
ToString("isKIBearish", isKIBearish, ignoreFalseConditions, separator) +
ToString("isKISwitchedToBullish", isKISwitchedToBullish, ignoreFalseConditions, separator) +
ToString("isKISwitchedToBearish", isKISwitchedToBearish, ignoreFalseConditions, separator) +
ToString("isTKIRejectUp", isTKIRejectUp, ignoreFalseConditions, separator) +
ToString("isTKIRejectDown", isTKIRejectDown, ignoreFalseConditions, separator) +
ToString("isTKIBullish", isTKIBullish, ignoreFalseConditions, separator) +
ToString("isTKIBearish", isTKIBearish, ignoreFalseConditions, separator) +
ToString("isTKISwitchedToBullish", isTKISwitchedToBullish, ignoreFalseConditions, separator) +
ToString("isTKISwitchedToBearish", isTKISwitchedToBearish, ignoreFalseConditions, separator) +
ToString("isSarBullish", isSarBullish, ignoreFalseConditions, separator) +
ToString("isSarBearish", isSarBearish, ignoreFalseConditions, separator) +
ToString("isSarSwitchedToBullish", isSarSwitchedToBullish, ignoreFalseConditions, separator) +
@@ -2396,6 +2477,7 @@ class XCXCAEAHelper : XCBase
XOHCL zBar;
XOHCL cBar;
XOHCL pBar;
XOHCL fromBar;
//
X121XCAConditions xcaConditions;
@@ -2413,6 +2495,12 @@ class XCXCAEAHelper : XCBase
result =
result &&
cBar.GetPreviousBar(pBar);
result =
result &&
fromBar.Init(
zBar.symbol,
zBar.period,
zIndex + loopback);
//
// Conditions Retriever ...
@@ -2445,6 +2533,7 @@ class XCXCAEAHelper : XCBase
zBar.Clean();
cBar.Clean();
pBar.Clean();
fromBar.Clean();
//
xcaConditions.Clean();
@@ -2454,6 +2543,10 @@ class XCXCAEAHelper : XCBase
return result;
}
//
conditions.to = zBar.time;
conditions.from = fromBar.time;
//
// Fill X121 Conditions Reference by Using
// Retrieved Conditions ...
@@ -2474,6 +2567,12 @@ class XCXCAEAHelper : XCBase
conditions.kiBuffer //
);
//
Copy(
xcaConditions.tkiBuffer,
conditions.tkiBuffer //
);
//
Copy(
xcaConditions.sHHBuffer,
@@ -2552,6 +2651,12 @@ class XCXCAEAHelper : XCBase
conditions.kiStateBuffer //
);
//
Copy(
xcaConditions.tkiStateBuffer,
conditions.tkiStateBuffer //
);
//
Copy(
xcaConditions.supportBuffer,
@@ -2619,8 +2724,11 @@ class XCXCAEAHelper : XCBase
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.isKIRejectDown = xcaConditions.isKIRejectDown;
@@ -2630,6 +2738,7 @@ class XCXCAEAHelper : XCBase
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;
@@ -2654,6 +2763,8 @@ class XCXCAEAHelper : XCBase
conditions.isKISwitchedToBearish = xcaConditions.isKISwitchedToBearish;
conditions.isLastSwingLowBreaked = xcaConditions.isLastSwingLowBreaked;
conditions.isSwingHighSameAsPeak = xcaConditions.isSwingHighSameAsPeak;
conditions.isTKISwitchedToBullish = xcaConditions.isTKISwitchedToBullish;
conditions.isTKISwitchedToBearish = xcaConditions.isTKISwitchedToBearish;
conditions.isLastSwingLowRejected = xcaConditions.isLastSwingLowRejected;
conditions.isSarSwitchedToBullish = xcaConditions.isSarSwitchedToBullish;
conditions.isSarSwitchedToBearish = xcaConditions.isSarSwitchedToBearish;
@@ -2866,6 +2977,7 @@ class XCXCAEAHelper : XCBase
zBar.Clean();
cBar.Clean();
pBar.Clean();
fromBar.Clean();
//
xcaConditions.Clean();