Полученные номера тикетов не соответствуют историческим.

 

Всем привет. 


Переписываю робота для торговли с MQL4 на MQL5 и сразу столкнулся с проблемой. По какой то причине я получаю номера тикетов которых я не вижу в истории. В документации ответа на данный вопрос я не нашел. Прошу сообщество помочь мне в данном вопросе.

static void MainLoop::update_history(){
   string deal_rows;
   datetime tm = TimeCurrent();
   datetime begin_mounth = Tools::get_begin_mounth();
   HistorySelect(0, tm);
   int deals_total_int = HistoryDealsTotal();
   for (int i=0; i < deals_total_int; i++){
      const ulong ticket = HistoryDealGetTicket(i);
      int deal_type = HistoryDealGetInteger(ticket, DEAL_TYPE);
      int open_magicnum = HistoryDealGetInteger(ticket, DEAL_MAGIC);
      Print("open_magicnum : " + (string)open_magicnum + " ticket : " + (string)ticket + " i " + (string)i + "" );
      if (deal_type == 0 || deal_type == 1){
         deal_rows = MainLoop::build_update_row(ticket, deal_type);
      }
   }
}


Также получаю в ответ на int open_magicnum = HistoryDealGetInteger(ticket, DEAL_MAGIC); ноль, возможно это как то связанно с пред идущей проблемой. 

int open_magicnum = HistoryDealGetInteger(ticket, DEAL_MAGIC);

Принт который я получаю от полученного кода выглядит примерно так.

2020.08.20 12:43:38.499 windows_client (EURUSD,H1) open_magicnum : 0 ticket : 7004595832 i 35

2020.08.20 12:43:59.796 windows_client (EURUSD,H1) open_magicnum : 0 ticket : 7004564179 i 24

У меня порядка 40 сделок в истории, но ни одной сделки с тикетом похожим на эти нет, почему так происходит ? 

Прошу помощи у коллег.