Работа с историей ордеров и сделок. В чем смысл?

 

В справке смотрим пример по historydealgetinteger:

void OnTrade() 
  { 
//--- получим тикет последней сделки из истории торговли за неделю 
   ulong last_deal=GetLastDealTicket(); 
   if(HistoryDealSelect(last_deal)) 
     { 
      //--- время совершения сделки в миллисекундах от 01.01.1970 
      long deal_time_msc=HistoryDealGetInteger(last_deal,DEAL_TIME_MSC); 
      PrintFormat("Deal #%d DEAL_TIME_MSC=%i64 => %s", 
                  last_deal,deal_time_msc,TimeToString(deal_time_msc/1000)); 
     } 

В переменой last_deal имеем тикет последней сделки.

Затем выделяем сделку: HistoryDealSelect(last_deal).

Когда получаем значение какого-нибудь свойства сделки, в функцию HistoryDealGetInteger() передается тикет. Что интересно, когда работаем с позициями или ордерами (не с историей), тикет не надо указывать, сначала позиция или ордер выделяется, потом выполняется получения свойств, указывается только идентификатор свойства. А при работе с историей все функции имеют параметр для тикета. В чем смысл, если сделку или ордер все равно надо выделять?

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