我是菜鸟,哪位老师能帮我优化一段代码?

 

double getLastDing(int i){
   double vd = iDing(i);
   for(int m=0;m<500 && i+m< Bars-1;m++){
      if( iDing(i+m)!=vd){
         return iDing(i+m);
      }  
   }
   return -1;
}  

double getLastDing2(int i){
   double vd = getLastDing(i);
   for(int m=0;m<500 && i+m< Bars-1;m++){
      if( getLastDing(i+m)!=vd){
         return getLastDing(i+m);
      }  
   }
   return -1;
}

double getLastDing3(int i){
   double vd = getLastDing2(i);
   for(int m=0;m<500 && i+m< Bars-1;m++){
      if( getLastDing2(i+m)!=vd){
         return getLastDing2(i+m);
      }  
   }
   return -1;

double getLastDing4(int i){
   double vd = getLastDing3(i);
   for(int m=0;m<500 && i+m< Bars-1;m++){
      if( getLastDing3(i+m)!=vd){
         return getLastDing3(i+m);
      }  
   }
   return -1;
}


 

bool isUpOn4(int i){
   if( Close[i]> iDing(i)){
      //printf("asdffffffffffffffffffffffffffffffffffffff");
     
   }

   //if(vVld(iDing(i+1))) printf("iDing(i)llllllllllllllllllll" + iDing(i));
   //if(vVld(iDing(i+1))) printf("iDing(i+1)" + iDing(i+1));
   return Close[i]> iDing(i)  && iDing(i)> getLastDing(i)   && iDing(i)> getLastDing2(i)  && iDing(i)> getLastDing3(i) && iDing(i)> getLastDing4(i);
}     
bool isUpDing(int i){
   return iDing(i) > getLastDing(i)  && iDing(i)> getLastDing2(i)  && iDing(i)> getLastDing3(i) && iDing(i)> getLastDing4(i);
}  


 


 


 

 
   for(int m=0;m<500 && i+m< Bars-1;m++) //。。。。。这个是什么来的 可以这样子的吗