Игнорирует попытку открыть ордер.

 
if (CountTrades(Magic) == 0)
  {
      ticket = OrderSend(Symbol(),OP_BUY,lot,Ask,Slippage,0,0,NULL,Magic,0,Blue);
     
  }
if (CountTrades(Magic2) == 0)
  {
      ticket = OrderSend(Symbol(),OP_SELL,lot,Bid,Slippage,0,0,NULL,Magic2,0,Red);
 

  }


int CountTrades(int mn)
{
    int count = 0;
    for (int i=OrdersTotal()-1; i>=0; i--)
    {
        if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
           if (OrderSymbol() == Symbol() && OrderMagicNumber() == mn)
               count++;
        }
    }
   return(count);
}


Какого же хрена ему надо?
В таком виде открывает только первый ордер, если удалить первый - откроет второй.

 
Pecmop:

Какого же хрена ему надо?

В таком виде открывает только первый ордер, если удалить первый - откроет второй.

По всей видимости, значение Magic равно значению Magic2.

P. S. Для вставки кода пользуйтесь кнопкой SRC. 

 
не равен(
 
Pecmop:
не равен(

Весь код покажите. Проблема не в показанной части кода.
 
Как и не в другой части кода, после обновления мт4(инстафорексовской версии) перестали работать несколько советников.
В другом терминале все замечательно.
 
Возможно, среди рабочих ордеров уже есть ордер с таким магиком... Могу только гадать, т. к. весь код так и не представлен.
 
Pecmop:
if (CountTrades(Magic) == 0)
  {
      ticket = OrderSend(Symbol(),OP_BUY,lot,Ask,Slippage,0,0,NULL,Magic,0,Blue);
     
  }
if (CountTrades(Magic2) == 0)
  {
      ticket = OrderSend(Symbol(),OP_SELL,lot,Bid,Slippage,0,0,NULL,Magic2,0,Red);
 

  }


int CountTrades(int mn)
{
    int count = 0;
    for (int i=OrdersTotal()-1; i>=0; i--)
    {
        if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
           if (OrderSymbol() == Symbol() && OrderMagicNumber() == mn)
               count++;
        }
    }
   return(count);
}


Какого же хрена ему надо?
В таком виде открывает только первый ордер, если удалить первый - откроет второй.

Запусти в отладчике, и посмотри.   Чё гадать?