Скачать MetaTrader 5

Как добраться до тиков [как добраться до миллисекунд] ?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Узнай, как установить MetaTrader на Linux
L_E_O
714
L_E_O 2012.04.09 12:42 

Следующий скрипт считает, что переменные равны, хотя на самом деле они отличаются одним тиком:

void start() {
      datetime t1 = D'01.01.12 00:12:01.123';
      datetime t2 = D'01.01.12 00:12:01.124';
      if (t1<t2) Print ("<"); else if (t1>t2) Print (">"); else Print ("=");
}
ilunga
744
ilunga 2012.04.09 12:51  
LEOK:

Следующий скрипт считает, что переменные равны, хотя на самом деле они отличаются одним тиком:

в datetime нету миллисекунд, потому и равны

https://docs.mql4.com/ru/basis/types/datetime

L_E_O
714
L_E_O 2012.04.09 12:55  
ilunga:

в datetime нету миллисекунд, потому и равны

https://docs.mql4.com/ru/basis/types/datetime


Да это всем известно !

Я имел ввиду, что компиляция прошла успешно, а тики не воспринимаются. Как сделать так, чтобы до них добраться или как ВЫ решаете эту проблему ?!

Yury Reshetov
13459
Yury Reshetov 2012.04.09 13:48  
LEOK:


Да это всем известно !

Я имел ввиду, что компиляция прошла успешно, а тики не воспринимаются.

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

Вам же ответили, что в переменной datetime миллисекунды не учитываются, а соответственно попытки выявить разницу в менее, чем 1 секунда = 1000 миллисекунд невозможно.

Название топика вводит в заблуждение. Нужно было написать: как добраться до миллисекунд?

L_E_O
714
L_E_O 2012.04.09 14:39  
Reshetov:

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

Вам же ответили, что в переменной datetime миллисекунды не учитываются, а соответственно попытки выявить разницу в менее, чем 1 секунда = 1000 миллисекунд невозможно.

Название топика вводит в заблуждение. Нужно было написать: как добраться до миллисекунд?


Понятно. Спасибо, что поправили ...
IgorM М
4801
IgorM М 2012.04.09 15:45  
LEOK:Следующий скрипт считает, что переменные равны, хотя на самом деле они отличаются одним тиком:

дык тик это и есть изменение цены - нет изменения нет тиков, миллисекунды ничего не решают, посмотрите сборщик тиков komposter

https://www.mql5.com/ru/code/7777,если не ошибаюсь, то там и реализована запись тика после изменения цены, средствами mql миллисекунды можно получить лишь GetTickCount( ), но и то лишь относительно старта системы

Vadim Zhunko
5226
Vadim Zhunko 2012.04.09 15:50  
Существуют тики без изменения цены. Такое часто случается.
Sceptic Philozoff
Модератор
17844
Sceptic Philozoff 2012.04.09 19:26  

Вопрос был о миллисекундах, к тикам он никакого отношения не имеет. Топикстартер был введен в заблуждение функцией GetTickCount().

IgorM: средствами mql миллисекунды можно получить лишь GetTickCount( ), но и то лишь относительно старта системы

Когда угодно можно. Я этим часто пользуюсь для измерения производительности.

IgorM М
4801
IgorM М 2012.04.09 19:39  
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start(){
   int start_ms = GetTickCount();
   while(!IsStopped())
      Comment((GetTickCount() - start_ms)%1000," ms");
return(0);
}
L_E_O
714
L_E_O 2012.04.09 19:49  
IgorM:


Sleep в цикле забыли !

А то такой скрипт терминал вешает ...

IgorM М
4801
IgorM М 2012.04.09 19:57  
LEOK:


Sleep в цикле забыли !

А то такой скрипт терминал вешает ...

у меня не вешает, давным давно, кажется на 225 билде или старше, было дело "вешался" терминал, на 409 билде - все ОК, ничего не повисло :)
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий