Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1563

 
Vladimir Deryagin #:

Потому что 

Так в том то и вопрос, почему ноль?

 
Aleksey Vyazmikin #:

Так в том то и вопрос, почему ноль?

   ulong first_deal,last_deal,deals=HistoryOrdersTotal(); 
//--- если ордера есть, начинаем работать с ними 
   if(deals>0) 
     { 
      Print("Deals = ",deals); 
      first_deal=HistoryDealGetTicket(0); 
      PrintFormat("first_deal = %d",first_deal); 
      if(deals>1) 
        { 
         last_deal=HistoryDealGetTicket((int)deals-1); 
         PrintFormat("last_deal = %d",last_deal); 
         return last_deal; 
        } 
      return first_deal; 
     } 
//--- не нашли ни одной сделки, вернем -1 
   return -1; 
HistoryDealGetTicket

Не следует путать между собой ордера, сделки и позиции. Каждая сделка является результатом исполнения некоего ордера, каждая позиция является итоговым результатом одной или нескольких сделок.

 
Vladimir Deryagin #:
HistoryDealGetTicket

Не следует путать между собой ордера, сделки и позиции. Каждая сделка является результатом исполнения некоего ордера, каждая позиция является итоговым результатом одной или нескольких сделок.

Вы копируйте приведённый мной код с какой целью, что это объясняет?

 

Может в этом?

deals=HistoryOrdersTotal(); 
last_deal=HistoryDealGetTicket((int)deals-1);
 
Aleksei Stepanenko #:

Может в этом?

Да, верно, я уже понял, что это очередная ошибка в описании функции от MQ.

 
Aleksey Vyazmikin #:

Да, верно, я уже понял, что это очередная ошибка в описании функции от MQ.

Где это в справке? 
 
Artyom Trishkin #:
Где это в справке? 
Справочник MQL5 / Торговые функции / HistoryDealGetInteger
 
Aleksey Vyazmikin #:
Справочник MQL5 / Торговые функции / HistoryDealGetInteger
Понял, спасибо. 
 
Aleksey Vyazmikin #:

Вы копируйте приведённый мной код с какой целью, что это объясняет?

Я думал это очевидно. Буду старатся изъяснять мысли более конкренто, как написали выше вы делали проверку по ордерам, а рабоали с сделками. Хорошо что эту "очепятку" исправят), хотя "очепятка" ли?, можно интерпретировать и так, что количество ордеров не равно количеству сделок за выбранный период) 

 
Vladimir Deryagin #:
Я думал это очевидно.

Я не работаю с торговыми функциями обычно, использую написанные для меня классы - давно другими разработчиками, поэтому такая вещь сразу мне не была очевидна. Пробежался по функциям, скопировал код, модифицировал под себя и не допускал, что он не работает как ожидается изначально. Грешил в начале на другой класс с дефайнами, искал там, советовался с автором... В общем будь это код не от MQ, то стратегия поиска ошибки была бы выбрана иной.

Спасибо, что участвовали в помощи мне.