Как узнать номер и magic открытого ордера?

 

Например купил как узнать номер и маджик этого ордера? Чтобы потом ordermodify делать.

for(i=OrdersTotal()-1;i>=0;i--) {
   if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==false){
        Alert("ticket",OrderTicket());
         Alert("MagicNumber",OrderMagicNumber());
   }

   }


Так не работает

 

Конечно так не будет работать.

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==false) - если выбрать ордер не получилось...

Просто удали ==false и будет работать.

 
AlexeyVik:

Конечно так не будет работать.

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==false) - если выбрать ордер не получилось...

Просто удали ==false и будет работать.

Спасибо, просмотрел
 
Alexey Viktorov:

Конечно так не будет работать.

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==false) - если выбрать ордер не получилось...

Просто удали ==false и будет работать.

Не подскажете, если OrdersTotal() всего один, как найти  i ? 
 
BOTANON:
Не подскажете, если OrdersTotal() всего один, как найти  i ? 

нумерация с нуля начинается, не с единицы! Т.е. первый ордер (имеет индекс 0)

 
Igor Zakharov:

нумерация с нуля начинается, не с единицы! Т.е. первый ордер (имеет индекс 0)

Т. е. (int i=0;i<=OrdersTotal();i++) - Тоже верно, я правильно понял?
 
BOTANON:
Т. е. (int i=0;i<=OrdersTotal();i++) - Тоже верно, я правильно понял?

Нет. Вот так тогда:

for (int i = 0; i < OrdersTotal(); i++)

Но лучше пользоваться обратным перебором, т. к. позволяет избежать множества неявных ошибок:

for (int i = OrdersTotal() - 1; i >= 0; i--)
 
BOTANON:
Т. е. (int i=0;i<=OrdersTotal();i++) - Тоже верно, я правильно понял?
Ihor Herasko:

Нет. Вот так тогда:

Но лучше пользоваться обратным перебором, т. к. позволяет избежать множества неявных ошибок:

Ясно, спасибо за подсказку

Причина обращения: