помогите пожалуйста подсчитать количество возрастающих и падающих фракталов

 

int start(){
int counted_bars=Bars-IndicatorCounted();
int StartBar = Bars;
int EndBar = 0;

int i,j,k=0,dt,Temp=0,c;
double n,dp,t;
bool LUp, RUp, LDown, RDown,znach;
int Zn, Znach[500];
//----
for(i=Bars-3; i>=3; i--){
LUp=false;
RUp=false;
LDown=false;
RDown=false;

if((High[i+2]<High[i] && High[i+1]<High[i]) ||
((High[i+3]<=High[i] && High[i+2]<=High[i]) && High[i+1]<High[i])) LUp=true;
if((High[i-2]<High[i] && High[i-1]<High[i]) ||
((High[i-3]<=High[i] && High[i-2]<=High[i]) && High[i-1]<High[i])) RUp=true;
if(LUp && RUp){
j=i+1;
UpFractals[i]=High[i];
while(DownFractals[j]==0 && j<=(Bars-3)){
if(UpFractals[j]>0){
if(UpFractals[j]<UpFractals[i])
UpFractals[j]=0;
else UpFractals[i]=0;
}
j+=1;
}
}


if((Low[i+2]>Low[i] && Low[i+1]>Low[i]) ||
((Low[i+2]>=Low[i] && Low[i+1]>=Low[i]) && Low[i+3]>Low[i])) LDown=true;
if((Low[i-2]>Low[i] && Low[i-1]>Low[i]) ||
((Low[i-2]>=Low[i] && Low[i-1]>=Low[i]) && Low[i-3]>Low[i])) RDown=true;
if(LDown && RDown){
j=i+1;
DownFractals[i]=Low[i];
while(UpFractals[j]==0 && j<=(Bars-3)){
if(DownFractals[j]>0){
if(DownFractals[j]>DownFractals[i])
DownFractals[j]=0;
else DownFractals[i]=0;
}
j+=1;
}
}
}


 
садитесь на стул, падаете с него и считаете фракталы, проблема то в чем?
Причина обращения: