//+----------------------------------------------------------+
//|                     CloseTrades.mq4                      |
//|               Copyright © 2015, David Currey             |
//+----------------------------------------------------------+
extern int StartingEquity = 10000;
extern int ProfitTarget = 0;
extern int LossTarget = 5000;
int StopTrading = 0;
int res;
int step;
int PrevEquity;
int i;
//+--------------------------------------- ------------------+
//| start function                                           |
//+----------------------------------------------------------+
void init()
  {
  step = StartingEquity / 20;
  PrevEquity = StartingEquity;  
  }
void start()
  {
  //if (Hour() == 0 && Minute() == 0)
  //   {
  //   StopTrading = 0;
  //   StartingEquity = AccountEquity();
  //   for (int i = OrdersTotal()-1; i >= 0; i--) 
  //       {
  //       if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
  //       if ( OrderType() == OP_BUYLIMIT) res = OrderDelete(OrderTicket());
  //       }
  //   }    

  //if (StartingEquity > 0 && StopTrading == 0 &&
  //(((AccountEquity() - StartingEquity) >= ProfitTarget) || 
  //(StartingEquity - AccountEquity())>= LossTarget))
  if (AccountEquity() > (PrevEquity + step))
      {
      LossTarget = LossTarget - step;
      PrevEquity = AccountEquity();
      }
  if (StartingEquity > 0 && StopTrading == 0 &&
  (StartingEquity - AccountEquity())>= LossTarget)
     {
     res=OrderSend(Symbol(),OP_BUYLIMIT,1,0.1,1,0,0,"",99999,0,Green);
     for(i = OrdersTotal()-1; i >= 0; i--) 
         {
         if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
         if(OrderType() == OP_BUYLIMIT) StopTrading = 1;
         }
     }     

  if (StopTrading == 0) return;

  for (i = OrdersTotal()-1; i >= 0; i--) 
      {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP) res = OrderDelete(OrderTicket());
      if ( OrderType() == OP_BUY)  res = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );
      if ( OrderType() == OP_SELL)  res = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red );
      }
  }
//+----------------------------------------------------------+
