ORDER_TIME_DONE - всегда 0 - посдкажите как вытащить время исполнения ордера?

 

привет

отслеживаю OnTradeTransaction

никак не могу вытащить время исполнения ордера

постановку вытаскиваю (datetime)OrderGetInteger(ORDER_TIME_SETUP);   - все ок

а (datetime)OrderGetInteger(ORDER_TIME_DONE);   всегда 0

Кто сталкивался ?

 
Nemoys:

привет

отслеживаю OnTradeTransaction

никак не могу вытащить время исполнения ордера

постановку вытаскиваю (datetime)OrderGetInteger(ORDER_TIME_SETUP);   - все ок

а (datetime)OrderGetInteger(ORDER_TIME_DONE);   всегда 0

Кто сталкивался ?

В истории надо смотреть;

HistoryOrderSelect(ticket);
datetime timedone=(datetime)HistoryOrderGetInteger(ticket,ORDER_TIME_DONE);
 
Sergey Chalyshev:

В истории надо смотреть;

странно что вы считываете в datetime функцию которая возвращает bool = видимо опечатка - и местами операнды попутаны вроде

но дело в другом - функция мне возвращает True - но в ответе long =0

прошу если возможно проверить на практике - уже мозг вскипел от этого.

 
Nemoys:

странно что вы считываете в datetime функцию которая возвращает bool = видимо опечатка - и местами операнды попутаны вроде

но дело в другом - функция мне возвращает True - но в ответе long =0

прошу если возможно проверить на практике - уже мозг вскипел от этого.

Опечатка, исправил. HistoryOrderGetInteger.

Проверял на практике, все работает.  

Вот так проверял, скрипт:

//+------------------------------------------------------------------+
#property script_show_inputs
input long ticket = 31690946;
void OnStart()
  {
   HistoryOrderSelect(ticket);
   datetime timedone=(datetime)HistoryOrderGetInteger(ticket,ORDER_TIME_DONE);  
   Print("ORDER_TIME_DONE = ",timedone);
  }
//+------------------------------------------------------------------+

результат: 

2016.03.30 21:40:32.779 TimeDone (GAZR-6.16,H1) ORDER_TIME_DONE = 2016.03.30 18:43:01
 
Вот здесь, есть готовая функция, и вообще в этой ветке много полезных функций для биржевой торговли.
Причина обращения: