fix xca indicator to calculate all bars if necessary ...

This commit is contained in:
2025-04-29 09:19:52 +03:30
parent 7060ed012a
commit f7e8e1c5bf
3 changed files with 48 additions and 21 deletions
+25 -2
View File
@@ -529,6 +529,9 @@ double resBuffer[];
// this counts Available Bars ...
int limit;
//
int firstBarIndex;
//
int maxLength;
@@ -1404,10 +1407,16 @@ void CalculateBuffers(
int barsLimit = startCalculationForLastBars > 0
? startCalculationForLastBars
: 0;
if (barsLimit == 0)
{
//
barsLimit = ratesTotal;
firstBarIndex = barsLimit - 1;
}
//
// bool canCalculate = true;
bool canCalculate =
barsLimit == 0 ||
bar_index <= barsLimit;
if (canCalculate)
{
@@ -1778,7 +1787,7 @@ void CalculateValues(
bool isFirstBar =
startCalculationForLastBars > 0
? bar_index == startCalculationForLastBars
: bar_index == ratesTotal;
: bar_index == firstBarIndex;
XOHCL iBar;
bool isInited = iBar.Init(
@@ -2167,6 +2176,13 @@ bool IsSwingLow(
//
bool result = false;
//
result = index + 1 + length <= firstBarIndex;
if (!result)
{
return result;
}
//
for (int i = index + 1; i <= index + length; i++)
{
@@ -2193,6 +2209,13 @@ bool IsSwingHigh(
//
bool result = false;
//
result = index + 1 + length <= firstBarIndex;
if (!result)
{
return result;
}
//
for (int i = index + 1; i <= index + length; i++)
{
+18 -14
View File
@@ -1074,20 +1074,22 @@ bool DetectXCAEAConditions(
//
bool isCond2Bullish =
//
false &&
// false &&
//
isVolumeOverAvg &&
isVolumeBullish &&
isVolumeOverLast &&
c3MASlowState > 0 &&
c3MAMediumState > 0 &&
cBar.GetUp() > pSar &&
conditions.isFastOverSlow &&
conditions.isVidyaBullish &&
conditions.isFastOverMedium &&
isTrendRangeFinishedFromValid &&
conditions.isSwingHighOverLast &&
conditions.isSarSwitchedToBullish
conditions.isRSIOS
//
// isVolumeOverAvg &&
// isVolumeBullish &&
// isVolumeOverLast &&
// c3MASlowState > 0 &&
// c3MAMediumState > 0 &&
// cBar.GetUp() > pSar &&
// conditions.isFastOverSlow &&
// conditions.isVidyaBullish &&
// conditions.isFastOverMedium &&
// isTrendRangeFinishedFromValid &&
// conditions.isSwingHighOverLast &&
// conditions.isSarSwitchedToBullish
//
//
// isX3MaBearishState &&
@@ -1114,7 +1116,9 @@ bool DetectXCAEAConditions(
if (isCond2)
{
//
// Print("Cond2");
Print("Cond2");
isCond2Bullish = false;
isCond2Bearish = false;
}
//
+5 -5
View File
@@ -212,12 +212,12 @@ class XCXCAEASignaller : XCBase
// drawer.Draw(cTime);
//
// drawer.DrawPeakResSWHPivots(cTime);
// drawer.DrawValeSupSWLPivots(cTime);
drawer.DrawPeakResSWHPivots(cTime);
drawer.DrawValeSupSWLPivots(cTime);
// drawer.DrawFVGBullishPivots(cTime);
// drawer.DrawFVGBearishPivots(cTime);
// drawer.DrawRSICrossedOverOSPivots(cTime);
// drawer.DrawRSICrossedUnderOBPivots(cTime);
drawer.DrawRSICrossedOverOSPivots(cTime);
drawer.DrawRSICrossedUnderOBPivots(cTime);
//
// Retrieve Valid Pviots ...
@@ -849,7 +849,7 @@ class XCXCAEASignaller : XCBase
//
// Oscillators Views ...
inputs.showRSI = false;
inputs.showRSI = true;
inputs.showCCI = false;
inputs.showMFI = false;
inputs.showRVI = false;