//+------------------------------------------------------------------+
//|                                                          999.mq4 |
//|                      Copyright © 2010, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

bool Play=true;
int r,ret,Orders_B=0,Orders_S=0;
int init()
{
      for( r=0;r<OrdersTotal();r++) //  
      {
      if(OrderSelect(r,SELECT_BY_POS,MODE_TRADES)==false)    continue;
      if(OrderSymbol()==Symbol())
      {
      if (OrderType()==OP_BUY) Orders_B++;
      if (OrderType()==OP_SELL) Orders_S++;
      }}
}
int start()
{
if (Play==false) 
{
Comment("Ничего не ждём");
return(0);
}
Comment("Ждём закрытия");
int B=0,S=0;
//Проверим что имеем
      for( r=0;r<OrdersTotal();r++) //  
      {
      if(OrderSelect(r,SELECT_BY_POS,MODE_TRADES)==false)    continue;
      if(OrderSymbol()==Symbol())
      {
      if (OrderType()==OP_BUY) B++;
      if (OrderType()==OP_SELL) S++;
      }}
if (Orders_B>B) CloseALL();
if (Orders_S>S) CloseALL();
}

//----------------  Функция -----------------------------------------
int Ord_Tot_Sym()
{
int O_T=0;
      for(int rr=0;rr<OrdersTotal();rr++) //  
      {
      if(OrderSelect(rr,SELECT_BY_POS,MODE_TRADES)==false)    continue;
      if(OrderSymbol()==Symbol())
      {
   O_T++;    
      }}
      if (O_T>0) return(1);
      else return(0);
}

     

//-------------- CloseAll --------------------------   
int CloseALL()
{
int ic;
 while (Ord_Tot_Sym()>0) 
 {
 RefreshRates();
                  for(ic=OrdersTotal()-1;ic>=0;ic--)
                   {
                  if(OrderSelect(ic,SELECT_BY_POS,MODE_TRADES)==false) continue;
                  if (OrderSymbol()==Symbol())
                  {
                  if (OrderType()==OP_BUY)
                  {
                  //RefreshRates();
                  ret=OrderClose(OrderTicket(),OrderLots(),Bid,0,CLR_NONE);
                  if (IsTradeAllowed()) continue;
                  else Sleep(1000);
                  }
                                    
                  if (OrderType()==OP_SELL)
                  {
                  //RefreshRates();
                  ret=OrderClose(OrderTicket(),OrderLots(),Ask,0,CLR_NONE);
                  if (IsTradeAllowed()) continue;
                  else Sleep(1000);
                  }}}
//--------- Закрыли все позиции теперь закроем все ордера ------------------------                    
                  for(ic=OrdersTotal()-1;ic>=0;ic--)
                   {
                  if(OrderSelect(ic,SELECT_BY_POS,MODE_TRADES)==false) continue;
                  if (OrderSymbol()==Symbol())
                  {
                  if (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP ||
                     OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT)
                  ret=OrderDelete(OrderTicket());
                  }}
      PlaySound("MsgBell.wav" );
      Play=false;
      }
   return(0);
  }

