order select trailing step

 
 Hi..this example closes orders...but the example below it...doesnt work.
...where i am trying to create a trailing step so eventually i can include other options..
any adjustments appreciated...

 double tstep;
 int ticket;
   int  total = OrdersTotal();
   for (int y=OrdersTotal()-1; y>=0; y--)  
   {
      if (OrderSelect(y, SELECT_BY_POS, MODE_TRADES))
    if (OrderType()==OP_BUY  && OrderMagicNumber()== 9000 && Bid-Entry>0.5*Point ) 
// if(OrderType()==OP_BUY && OrderMagicNumber()==9000 && Bid-Entry<0.5*Point)tstep=0;continue; 
// if(OrderType()==OP_BUY && OrderMagicNumber()== 9000&&Bid-Entry>0.5*Point){tstep=tstep+1;} 
// if(OrderType()==OP_BUY && OrderMagicNumber()== 9000&& tstep>2)

      {
   ticket=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,CLR_NONE);
  // tstep=0;
      }
   }

// Example 2.....
 double tstep;
 int ticket;
   int  total = OrdersTotal();
   for (int y=OrdersTotal()-1; y>=0; y--)  
   {
      if (OrderSelect(y, SELECT_BY_POS, MODE_TRADES))
    if (OrderType()==OP_BUY  && OrderMagicNumber()== 9000 && Bid-Entry>0.5*Point ) 
  if(OrderType()==OP_BUY && OrderMagicNumber()==9000 && Bid-Entry<0.5*Point)tstep=0;continue; 
  if(OrderType()==OP_BUY && OrderMagicNumber()== 9000&&Bid-Entry>0.5*Point){tstep=tstep+1;} 
  if(OrderType()==OP_BUY && OrderMagicNumber()== 9000&& tstep>2)

      {
   ticket=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,CLR_NONE);
   tstep=0;
      }
   }










Reason: