//+------------------------------------------------------------------+
//|                                   0-3 Close open this symbol.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property show_inputs

input string com =  "when MagicNumber = -1 then close all magic numbers";
input int MagicNumber = -1;

// pips of slippage to allow
input int Slippage = 3; 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
    while(OrdersTotal() >0) 
    {
      CloseThis(Slippage, MagicNumber);
      break;
   }
  }
//+------------------------------------------------------------------+

// when MagicNumber = -1 then close all magic numbers
void CloseThis(int Slippage, int MagicNumber) 
{
   bool closed = false;
   for (int i = OrdersTotal(); i >=0; i--) 
   {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
        while(IsTradeContextBusy()) Sleep(100);
        RefreshRates();
        if (OrderType() == OP_BUY && Symbol() == OrderSymbol() && (MagicNumber == OrderMagicNumber() || MagicNumber == -1)) 
        {
          closed = OrderClose( OrderTicket(), OrderLots(), Bid, Slippage, White);
        }
        if (OrderType() == OP_SELL && Symbol() == OrderSymbol() && (MagicNumber == OrderMagicNumber() || MagicNumber == -1)) 
        {
          closed = OrderClose( OrderTicket(), OrderLots(), Ask, Slippage, White);
        }
     }
   }
}   