This is part of code. I can´t found any case IndicatorLogic_Is lower_than_the_zero_line.
case IndicatorLogic_The_indicator_falls:
for(int bar=firstBar; bar<Data.Bars; bar++)
{
int currentBar=bar-prvs;
int baseBar=currentBar-1;
bool isHigher=adIndValue[currentBar]>adIndValue[baseBar];
if(!IsDiscreteValues) // Aroon oscillator uses IsDiscreteValues = true
{
bool isNoChange=true;
while(MathAbs(adIndValue[currentBar]-adIndValue[baseBar])<sigma && isNoChange && baseBar>firstBar)
{
isNoChange=(isHigher==(adIndValue[baseBar+1]>adIndValue[baseBar]));
baseBar--;
}
}
indCompLong.Value[bar]=adIndValue[baseBar]>adIndValue[currentBar]+sigma ? 1 : 0;
indCompShort.Value[bar]=adIndValue[baseBar]<adIndValue[currentBar]-sigma ? 1 : 0;
}
break;
case IndicatorLogic_The_indicator_is_higher_than_the_level_line:
for(int bar=firstBar; bar<Data.Bars; bar++)
{
indCompLong.Value[bar]=adIndValue[bar-prvs]>levelLong+sigma ? 1 : 0;
indCompShort.Value[bar]=adIndValue[bar-prvs]<levelShort-sigma ? 1 : 0;
}
break;
case IndicatorLogic_The_indicator_is_lower_than_the_level_line:
for(int bar=firstBar; bar<Data.Bars; bar++)
{
indCompLong.Value[bar] = adIndValue[bar - prvs] < levelLong - sigma ? 1 : 0;
indCompShort.Value[bar] = adIndValue[bar - prvs] > levelShort + sigma ? 1 : 0;
}
break;
case IndicatorLogic_The_indicator_crosses_the_level_line_upward:
for(int bar=firstBar; bar<Data.Bars; bar++)
{
int baseBar=bar-prvs-1;
while(MathAbs(adIndValue[baseBar]-levelLong)<sigma && baseBar>firstBar)
baseBar--;