extern double InitialOrderLot = 0.10;
extern double AccProfitToCloseHalf = 300;

int start()
{

  int totalorders = OrdersTotal();
  for(int i=totalorders-1;i>=0;i--)
 {
    OrderSelect(i, SELECT_BY_POS);
    if((OrderLots() == InitialOrderLot) && (AccountProfit() > AccProfitToCloseHalf))
     {
           if (OrderType() == OP_BUY ) 
           OrderClose( OrderTicket(), NormalizeDouble((InitialOrderLot/2),2), MarketInfo(OrderSymbol(), MODE_BID), 50, Blue );
           
            if (OrderType() == OP_SELL ) 
           OrderClose( OrderTicket(), NormalizeDouble((InitialOrderLot/2),2), MarketInfo(OrderSymbol(), MODE_ASK), 50, Red );
      }
      
    if((OrderLots() == InitialOrderLot) && (AccProfitToCloseHalf < 0) && (AccountProfit() < AccProfitToCloseHalf))
     {
           if (OrderType() == OP_BUY ) 
           OrderClose( OrderTicket(), NormalizeDouble((InitialOrderLot/2),2), MarketInfo(OrderSymbol(), MODE_BID), 50, Blue );
           
            if (OrderType() == OP_SELL ) 
           OrderClose( OrderTicket(), NormalizeDouble((InitialOrderLot/2),2), MarketInfo(OrderSymbol(), MODE_ASK), 50, Red );
      }  
      
      
  }
  return;
}