Новая версия платформы MetaTrader 4 build 1170 - страница 18

 
Taras Slobodyanik:

Как только приходит тик - запоминаем время тика (сервера), запоминаем время компьютера и запоминаем текущий GetTickCount.
Всё, теперь мы знаем текущее значение времени брокера, текущее значение времени компьютера, и текущее значение таймера.

Дальше просто вычисляем 1000 мс = 1 сек

пс. ну и желательно, на каждом тике, проверять синхронность времён, если далеко разошлись - значит кто-то перевёл время или был разрыв связи, или еще чего - значит нужно синхронизировать заново.

Да не уже-ли я выгляжу таким тупым что вы меня учите прописным истинам?

Какой смысл запоминать время компьютера, если оно не содержит миллисекунд??? Время тика в mql4 тоже не содержит миллисекунд. Учитывая что бар не может открыться ровно... ну запомнили 10:10:00 а микросекунды отсутствуют. На самом деле GetTickCount будет запущен в 10:10:00 123. И какой смысл считать время от 10:10:00 123 получить разницу GetTickCount 321 но 123 мс которые были перед стартом отсчёта не учтены. В итоге текущее время 10:10:00 444 а получили 10:10:00 321

Или я изъясняюсь так непонятно? Или вам без разницы какой вопрос был задан, главное высказать своё мнение? Ну честно, никого не хочу обидеть.

 
Alexey Viktorov:

Тогда где можно взять миллисекунды?

fxsaber:

Их нет в MT4 напрямую.

Alexey Viktorov:

Ну, хоть накривую.

...

 

например, брокер А*****и, в своих тиковых котировках, пишет время своего компьютера (миллисекундного таймера)

2019-05-31 23:54:55.124587884   0.693350        0.693550
2019-05-31 23:54:55.124587900   0.693310        0.693510
2019-05-31 23:54:55.124587920   0.693350        0.693540
2019-05-31 23:54:55.124587937   0.693340        0.693540
2019-05-31 23:54:56.124588082   0.693330        0.693540
2019-05-31 23:54:56.124588093   0.693340        0.693550
2019-05-31 23:54:57.124588124   0.693330        0.693540
2019-05-31 23:54:59.124588309   0.693340        0.693530
 
Taras Slobodyanik:

...

Вот fxsaber по умному поступил, просто не стал отвечать на этот вопрос. А я и не ждал...

 
Alexey Viktorov:

Что-то с миллисекундами непонятное творится. Вроде в документации, в структуре MqlTick поле time_msc в отличии от mql5 отсутствует. Но при наборе кода оно предлагается и компилируется. Ну ладно, думаю, не поправили документацию. Пишу такой код


и получаю такой комментарий графика

Выходит, что время открытия бара time[0] в миллисекундах, время time в структуре тоже в миллисекундах (содержат миллисекунды), а время time_msc в структуре MqlTick ровно в секундах.

Это ошибка? Попутали в какое поле какое время писать? Или по причине отсутствия в документации и соответственно не рекомендуется использовать?

В четвёрке миллисекунды для тиков не поддерживаются. И поле миллисекунд в структуре тика не обнуляется при запросе, чтобы давно скомпилированные программы (когда в структуре тика не было миллисекунд) работали без эксепшенов по записи

Поэтому, чтобы как-то обрабатывать такую ситуацию, самостоятельно обнуляйте структуру тика, которую отдаёте в запрос. После запроса в поле миллисекунд должны остаться нули

 
Slava:

В четвёрке миллисекунды для тиков не поддерживаются. И поле миллисекунд в структуре тика не обнуляется при запросе, чтобы давно скомпилированные программы (когда в структуре тика не было миллисекунд) работали без эксепшенов по записи

Поэтому, чтобы как-то обрабатывать такую ситуацию, самостоятельно обнуляйте структуру тика, которую отдаёте в запрос. После запроса в поле миллисекунд должны остаться нули

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

 
Добрый день! Чтобы приходили пуш уведомления на приложение в смартфон, метатрадер 4 на windows постоянно должен работать?
 
Doszhan:
Добрый день! Чтобы приходили пуш уведомления на приложение в смартфон, метатрадер 4 на windows постоянно должен работать?

Постоянно должно работать то приложение которое отправляет эти уведомления.

 
Alexey Viktorov:

Постоянно должно работать то приложение которое отправляет эти уведомления.

Если хочу постоянно получать уведомления, нужен VPS? Имеется ввиду срабатывания отложных ордеров, тейк профитов и стопов
 

Ошибка компилятора:

void f(int &[][]) { }
void f(int &[])   { }

void OnStart()
{
  int a[2];
  f(a); // 'f' - ambiguous call to overloaded function with the same parameters
        // could be one of 2 function(s)
        // void f(int&[][0])
        // void f(int&[])
}

Массива int[][0] не может существовать в принципе, поэтому откуда компилятор его взял - непонятно.  Тут всё однозначно должно быть.

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