Отработка функции OrderTicket( )

 
Ситуация:
допустим на счету уже открыто достаточно большое количество ордеров
необходимо в массив собрать тикеты этих открытых ордеров
         int a_ticket[OrdersTotal()];
         for (int cnt=0;cnt<=OrdersTotal();cnt++)
            {
               OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
               a_ticket[cnt]=OrderTicket();
               Print ("номер тикета",a_ticket[cnt]);
            }

в результате получается массив с позициями ордеров (0,1,2,3,4....), а не с их тикетами
Хотя в справке написано:

int OrderTicket()
Возвращает номер тикета для текущего выбранного ордера.
Ордер должен быть предварительно выбран с помощью функции OrderSelect().

Пример:
  if(OrderSelect(12, SELECT_BY_POS)==true)
    Print("Order #",OrderTicket()," profit: ", OrderTakeProfit());
  else
    Print("OrderSelect() вернул ошибку - ",GetLastError());


Билд 201









 
Ваш код не компилируется. Как вы его проверяли?
Вот как должно быть:
    int orders = OrdersTotal();
    int a_ticket[];
    ArrayResize( a_ticket, orders );
    for (int cnt=0;cnt<orders;cnt++)
    {
        if ( !OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES) ) continue;
        a_ticket[cnt]=OrderTicket();
        Print ("номер тикета",a_ticket[cnt]);
    }
 
прошу прощения неучел что в тестере номера тикетов начинаются с 0, а не как привычно видеть на реальном счете многозначное число
 
olyakish:
прошу прощения неучел что в тестере номера тикетов начинаются с 0, а не как привычно видеть на реальном счете многозначное число
Нет, в тестере тикеты считаются с единицы (1), а не с нуля (0).
Причина обращения: