Forex_Strategy_Builder.Indicator.IndicatorFallsLogic C# (CSharp) Method

IndicatorFallsLogic() protected method

Returns signals for the logic rule "Indicator falls"
protected IndicatorFallsLogic ( int firstBar, int prvs, double adIndValue, IndicatorComp &indCompLong, IndicatorComp &indCompShort ) : void
firstBar int
prvs int
adIndValue double
indCompLong IndicatorComp
indCompShort IndicatorComp
return void
        protected void IndicatorFallsLogic(int firstBar, int prvs, double[] adIndValue, ref IndicatorComp indCompLong, ref IndicatorComp indCompShort)
        {
            double sigma = Sigma();

            for (int bar = firstBar; bar < Bars; bar++)
            {
                int  currBar  = bar - prvs;
                int  baseBar  = currBar - 1;
                bool isNoChange = true;
                bool isLower  = adIndValue[currBar] < adIndValue[baseBar];

                while (Math.Abs(adIndValue[currBar] - adIndValue[baseBar]) < sigma && isNoChange && baseBar > firstBar)
                {
                    isNoChange = (isLower == (adIndValue[baseBar + 1] < adIndValue[baseBar]));
                    baseBar--;
                }

                indCompLong.Value[bar]  = adIndValue[currBar] < adIndValue[baseBar] - sigma ? 1 : 0;
                indCompShort.Value[bar] = adIndValue[currBar] > adIndValue[baseBar] + sigma ? 1 : 0;
            }

            return;
        }