Помогите

 
int start()
{
int cnt, ticket, total;
if (OrdersTotal()<0)
{
OrderClose(OrderTicket(), OrderLots(), Ask, 10, Red);
}
}

Смысл в следующем: должны закрываться все открытые позиции. НО НЕЗАКРЫВАЮТСЯ!
в чем я ошибся?
 
Пример функции закрывающей все открытые позиции
int _OrderCloseAll(int _type = EMPTY, int Slippage = 5)
{
   int count = 1;
   int limit = 5;

   while(count > 0 && limit > 0)
   {
      int n = OrdersTotal();

      count = 0;
      limit--;

      for(int i = 0; i < n; i++)
      {
         if (OrderSelect(i, SELECT_BY_POS) == false) continue;
         if (OrderSymbol() != Symbol()) continue;
         
         if (OrderType() == OP_BUY && (_type == EMPTY || _type == OP_BUY)) 
         {
            if (IsTradeAllowed())  OrderClose(OrderTicket(), OrderLots(), Bid, Slippage);
            count++;
         } else
         if (OrderType() == OP_SELL && (_type == EMPTY || _type == OP_SELL)) 
         {
            if (IsTradeAllowed())  OrderClose(OrderTicket(), OrderLots(), Ask, Slippage);
            count++;
         }
      }
   }
   return (count);
}


Делается максимум 5 попыток закрыть все ордера (int limit = 5;)

Примеры использования

      _OrderCloseAll(OP_SELL);  // закрыть все SELL ордера
       .....................
      _OrderCloseAll(OP_BUY);  // закрыть все BUY ордера
       .....................
      _OrderCloseAll();  // закрыть все ордера
 
А есть возможность выключить комп после этого или закрыть программу?
 
А есть возможность выключить комп после этого или закрыть программу?

В смысле?
Вы это всегда сделать можете.
 
А есть возможность выключить комп после этого или закрыть программу?

В смысле?
Вы это всегда сделать можете.

спасибо за продление жизни :)
 
спасибо за продление жизни :)

??? :)
Я чего-то не понял?
 
Я наверное некоректно выразился.
Например оставляю советника на ночь, он закрывает все позиции и затем закрывает прогу или полностью гасит комп.
 
А зачем закрывать прогу?
Если для того, чтобы не торговала, то это проще сделать можно.
Например завести глобальную переменную разрешающую торговли.
Для блокирования торговли можно установить ее в False.

Закрыть прогу и выключить комп думаю тоже можно через вызов dll из виндусового API. Только не могу подсказать какую конкретно функцию использовать.
Причина обращения: