diff --git a/Indicators/x-saherelm.x121.xca.mq5 b/Indicators/x-saherelm.x121.xca.mq5 index ef775f50..3bafb894 100644 --- a/Indicators/x-saherelm.x121.xca.mq5 +++ b/Indicators/x-saherelm.x121.xca.mq5 @@ -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++) { diff --git a/XCAEA/Libraries/xcaea.signaller.lib.mq5 b/XCAEA/Libraries/xcaea.signaller.lib.mq5 index 4afc6017..d63bec25 100644 --- a/XCAEA/Libraries/xcaea.signaller.lib.mq5 +++ b/XCAEA/Libraries/xcaea.signaller.lib.mq5 @@ -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; } // diff --git a/XCAEA/Signals/xcaea.signaller.class.mq5 b/XCAEA/Signals/xcaea.signaller.class.mq5 index 88d3bb25..37f90530 100644 --- a/XCAEA/Signals/xcaea.signaller.class.mq5 +++ b/XCAEA/Signals/xcaea.signaller.class.mq5 @@ -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;