Время тика в миллисекундах (МТ4) - страница 3

 
Andrey Khatimlianskii:

Как в МТ4 получить время тика с точностью до миллисекунд?

А в тестере? Тики, хоть и смоделированные (а может и реальные, собранные в fxt), но приходят несколько раз в секунду. Как извлечь их распределение по секунде?

GetTickCount получится приткнуть только в реале, и то придется городить огород с определением начала секунды. А в тестере вообще не понятно, что делать, GetTickCount возвращает реальные мс работы компа, а не тестируемой истории.

Есть идеи, коллеги? 

А через эту структуру не получится?




void OnTick()
  {
   MqlTick last_tick; 
//--- 
   if(SymbolInfoTick(Symbol(),last_tick)) 
     { 
      Print(last_tick.time,": Bid = ",last_tick.bid, 
            " Ask = ",last_tick.ask,"  Volume = ",last_tick.volume); 
     } 
   else Print("SymbolInfoTick() failed, error = ",GetLastError()); 
//--- 
  
  }
  
 
Yuri Evseenkov:

А через эту структуру не получится?

Чего народ путаете, обводите время, которое выдал терминал )) Тут высказали верную мысль, берем тики с дукаса или еще откуда, где отдают с мс. Либо пишем свои с мс. А вот потом извращаться с этими данными в тестере, что-то считывать из файла, подставлять реальные тики вместо тестерных... а зачем? Загоните все это в Матлаб и будет счастье. Изучить Матлаб, если знаете MQL, нетрудно.

А то эта возня с тестером напоминает, как если бы вы по бедности начали готовить горбатый запор к участию в Формула 1 ) Тестер для работы на тиковых данных непригоден. Только чтобы найти ошибку в программе.

matlab 

И выходные данные по ордерам за 1 день, profit в пунктах = 0.018 * 1e4 = 180 п.

Тиков = 34201  обработано тиков = 34201

ticket= 1   cmd= 0   oProfit= 0.000430   mProfit= 0.000430   openCount= 0   closeCount=1   openTime= 04-12:42:39   closeTime= 04-12:57:19   
ticket= 2   cmd= 0   oProfit= 0.000220   mProfit= 0.000650   openCount= 1   closeCount=2   openTime= 04-12:56:53   closeTime= 04-12:58:10   
ticket= 3   cmd= 0   oProfit= 0.000410   mProfit= 0.001060   openCount= 1   closeCount=13   openTime= 04-12:57:46   closeTime= 04-15:11:06   
ticket= 4   cmd= 0   oProfit= 0.000320   mProfit= 0.001380   openCount= 2   closeCount=13   openTime= 04-12:57:53   closeTime= 04-15:11:06   
// данные вырезаны 
ticket= 240   cmd= 1   oProfit= -0.000820   mProfit= 0.017800   openCount= 26   closeCount=26   openTime= 04-21:53:38   closeTime= 04-22:00:00   
ticket= 241   cmd= 0   oProfit= 0.000200   mProfit= 0.018000   openCount= 27   closeCount=27   openTime= 04-21:55:40   closeTime= 04-21:58:03   

Всего ордеров= 241   Buy= 48   Sell= 193   stopCount= 0   profit= 0.018000
 
в структуре hst и fxt есть неиспользуемое поле "real_volume", вот туда и писать миллисекуды при формировании
 
Rustamzhan Salidzhanov:
в структуре hst и fxt есть неиспользуемое поле "real_volume", вот туда и писать миллисекуды при формировании
И что дальше?
 
Alexey Volchanskiy:
И что дальше?
   это не вам, это топикстартеру.
 
George Merts:

А какой смысл в милисекндных замерах тиков ?

А какой смысл в секундных замерах? А в минутных?
Анализируйте Д1, тогда тестер вообще не нужен. 
 
Dmitry Fedoseev:
Бинарный файл в массив почти моментально загружается.
Это смотря какого размера
 
George Merts:

У любых исследований есть гипотеза, которую они проверяют.

Вот мне и интересно, какая именно гипотеза может быть полезна в данном случае ?

Просто хочу повысить разрешение анализа
 
mmmoguschiy-new:
В журнале посмотреть - не?

Вариант два - идешь на Д...копи, качаешь тиковую историю -> смотришь... вникаешь...

Только правда - смысл? Ну узнаешь ты, что тики могут приходить до нескольких раз в секунду на сильных движениях... что это дает? Проторговать это ты врятли сумеешь!!!

З.Ы. Или мы снова возвращаемся к теме импульса? Так это боян 
Еще было бы не лишним вникнуть в тему перед тем как отвечать )
В журнале тестера нет миллисекунд, дукас и так используется
 

Миллисекунды - вчерашний день. Теперь есть 

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