Новая версия платформы MetaTrader 4 build 1170 - страница 17
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Тогда где можно взять миллисекунды?
Тогда где можно взять миллисекунды?
Их нет в MT4 напрямую.
Их нет в MT4 напрямую.
Ну, хоть накривую.
Ну, хоть накривую.
Постоянная синхронизация под TimeCurrent микросекундного таймера + расчет времени от "чистой секунды" к моменту получения тика.
Постоянная синхронизация под TimeCurrent микросекундного таймера + расчет времени от "чистой секунды" к моменту получения тика.
Об этом я думал перед экспериментами которые привели меня к таким ошибочным результатам. Но вот как синхронизировать микросекундный таймер под TimeCurrent... не хватило фантазии. И как вы себе представляете "расчет времени от "чистой секунды" к моменту получения тика."? Как запустить GetTickCount ровно в 00 секунд?
Об этом я думал перед экспериментами которые привели меня к таким ошибочным результатам. Но вот как синхронизировать микросекундный таймер под TimeCurrent... не хватило фантазии. И как вы себе представляете "расчет времени от "чистой секунды" к моменту получения тика."? Как запустить GetTickCount ровно в 00 секунд?
Здесь посмотрите идею.
Вы код @fxsaber смотрели? https://www.mql5.com/ru/forum/38456/page100#comment_6677928
там все есть, как я и писал, зачем нам 00, достаточно знать смещение GetTickCount() при вызове от запомненного
Смещение от чего? Кому-то надо смещение, а кому-то просто время с миллисекундами. Без какого либо смещения. Мы о разном говорим. Посмотрите время указанное слева.
Это локальное время с миллисекундами. Если в mql5 можно получить через SymbolInfoTick в структуру MqlTick, то в mql4 их никак не получить. Других целей нет и не было.
Если и говорить о смещении, то говорить о смещении от круглой секунды или от минуты:00 секунд. Другое смещение не интересует.
ps; Ну вот. Взял и удалил своё сообщение пока я отвечал. Зачем?...
ps; Ну вот. Взял и удалил своё сообщение пока я отвечал. Зачем?...
решил покинуть эту дискуссию, я просмотрел код @fxsaber - там все есть и синхронизация с текущим временем сервера и получение времени в микросекундах
Вся беда в том, что GetTickCount возвращает количество миллисекунд от запуска компьютера. А какое время было при запуске никому не известно. Ну, разве-что специально записывать. И даже в этом случае будет ошибка в несколько секунд, не говоря уже о миллисекундах.
Как только приходит тик - запоминаем время тика (сервера), запоминаем время компьютера и запоминаем текущий GetTickCount.
Всё, теперь мы знаем текущее значение времени брокера, текущее значение времени компьютера, и текущее значение таймера.
Дальше просто вычисляем 1000 мс = 1 сек
пс. ну и желательно, на каждом тике, проверять синхронность времён, если далеко разошлись - значит кто-то перевёл время или был разрыв связи, или еще чего - значит нужно синхронизировать заново.