Ещё раз о UTC (GMT) - страница 2

 
Aleksey Mavrin:

Если требуется привязка работы советников к универсальному времени UTC, сейчас вижу 2 пути:

1. Полностью автоматизированный. Полагаться на правильные настройки компьютера на котором запущен терминал и TimeGMT()

2. Полу-автоматизированный. Вручную задавать смещение времени сервера относительно UTC (а также даты смены лето-зима)

При этом для тестирования подходит только путь 2. У обоих путей есть минусы.

Кто-нибудь знает способ полностью автоматизированный и чтобы не зависеть от настроек локального компьютера? или другими словами

Можно ли получить время GMT по настройкам сервера, на котором установлена серверная часть МТ, а не локального компьютера?

Не знаю пути, чтобы не зависеть от текущего системного времени на компьютере. Больше десяти лет использую путь, основанный на синхронизации этого времени с астрономическим по нескольким десяткам публичных (бесплатных) серверов NTP. Не знаю, подойдет ли для его реализации Webrequest, который к тому же синхронен, то есть параллельно отослать десять запросов а затем проверять, пришли ли ответы в буфер сетевой карты, в нем нельзя. Полагаться на бесплатные источники можно, но не на один. Они иногда не отвечают (NTP реализован на UDP, а не TCP, соединение как таковое не устанавливается вообще). Первая версия такой синхронизации имела список лишь 50 серверов, и проработала 6 месяцев - стали отвечать лишь 6 из нужных мне 13. Вторая содержит 79 серверов в списке вида

'a.ntp.alphazed.net', '88.96.233.89'
'a.ntp.madduck.net', '213.203.238.86'
'asynchronos.iiss.at', '83.64.124.251'
...

'www.millnet.se', '85.8.21.133'
'zeit.fu-berlin.de', '160.45.10.8'

Если кто пойдет по этому пути, весь список серверов, отобранных из 600 претендентов по постоянству наличия и времени реакции, прилагаю. Поведение серверов с тех пор (2010 год), конечно, уже изменилось. Но некоторые имеют и соблюдают традиции. Не ужасайтесь числу серверов в списке, реально из них берутся для каждой синхронизации лишь 13, ответы ранжируются по качеству и усредняются, системное время компьютера подправляется только в случае отклонения от астрономического на 12 мс или больше.

Имея уверенное системное время на локальном компьютере, дальше просто - разность TimeCurrent и TimeLocal.

Файлы:
11.zip  2 kb
 
Vladimir:

Не ужасайтесь числу серверов в списке, реально из них берутся для каждой синхронизации лишь 13, ответы ранжируются по качеству и усредняются, системное время компьютера подправляется только в случае отклонения от астрономического на 12 мс или больше.

Зачем 13 запросов, зачем точное время? На компе и так точное время, разница только в часах. Достаточно одного удачного запроса и вычислите разницу в часах.

Если у Вас есть опыт работы с NTP, дайте код или ссылку на него для реализации в MQL5, кто-то захочет сделать.

PS. Сервера NTP, прописанные в Windows и Linux не перестают работать со временем.

 
Edgar Akhmadeev:

Зачем 13 запросов, зачем точное время? На компе и так точное время, разница только в часах. Достаточно одного удачного запроса и вычислите разницу в часах.

Если у Вас есть опыт работы с NTP, дайте код или ссылку на него для реализации в MQL5, кто-то захочет сделать.

PS. Сервера NTP, прописанные в Windows и Linux не перестают работать со временем.

Если

- не предъявлять претензии к ДЦ, где основанием для разбора являются лог-файлы сервера с временем в миллисекундах;

- не работать с партнерами по сети с ведением протоколов прихода тиков от каждого ДЦ по миллисекундам;

то я тоже не знаю, зачем. Для выяснения часового пояса ДЦ хватит и обычной точности таймера, накапливающего по моему опыту не больше 2 минут погрешности за неделю вообще без синхронизации.

MQL, хоть 4, хоть 5, здесь ни при чем. Ссылка на источник - компоненты VCL библиотеки Borland Delphi 7, Indy. Ну, конечно, еще и протокол UDP. Я лишь переделал нужные функции в асинхронную работу и конкретизировал, у кого спрашивать время, как часто, и что делать с результатами.

Насчет Linux не интересовался, а прописанные в Windows сервера не NTP, а NTPS (simple, упрощенный протокол, с собственной погрешностью около 1000 мс).

 
Vladimir:

Если

- не предъявлять претензии к ДЦ, где основанием для разбора являются лог-файлы сервера с временем в миллисекундах;

- не работать с партнерами по сети с ведением протоколов прихода тиков от каждого ДЦ по миллисекундам;

то я тоже не знаю, зачем. Для выяснения часового пояса ДЦ хватит и обычной точности таймера, накапливающего по моему опыту не больше 2 минут погрешности за неделю вообще без синхронизации.

MQL, хоть 4, хоть 5, здесь ни при чем. Ссылка на источник - компоненты VCL библиотеки Borland Delphi 7, Indy. Ну, конечно, еще и протокол UDP. Я лишь переделал нужные функции в асинхронную работу и конкретизировал, у кого спрашивать время, как часто, и что делать с результатами.

Насчет Linux не интересовался, а прописанные в Windows сервера не NTP, а NTPS (simple, упрощенный протокол, с собственной погрешностью около 1000 мс).

нету такого протокола NTPs

вы что-то не там слышали и сбивчиво пересказываете

есть незначительные расширения NTP касаемые шифрований и защиты, но они ничуть не снижают прочих характеристик NTP

 
Vladimir:

Если

- не предъявлять претензии к ДЦ, где основанием для разбора являются лог-файлы сервера с временем в миллисекундах;

- не работать с партнерами по сети с ведением протоколов прихода тиков от каждого ДЦ по миллисекундам;

то я тоже не знаю, зачем. Для выяснения часового пояса ДЦ хватит и обычной точности таймера, накапливающего по моему опыту не больше 2 минут погрешности за неделю вообще без синхронизации.

MQL, хоть 4, хоть 5, здесь ни при чем. Ссылка на источник - компоненты VCL библиотеки Borland Delphi 7, Indy. Ну, конечно, еще и протокол UDP. Я лишь переделал нужные функции в асинхронную работу и конкретизировал, у кого спрашивать время, как часто, и что делать с результатами.

Насчет Linux не интересовался, а прописанные в Windows сервера не NTP, а NTPS (simple, упрощенный протокол, с собственной погрешностью около 1000 мс).

Я наивно думал что в цифровой век 2 минуты в неделю должно считаться огромной неточностью. Дедовские часы механические и те точнее. Как такая погрешность-откуда возникает?

 

Я вот тему эту не увидел, я спрашивал про историю и GMT сдвиг https://www.mql5.com/ru/forum/331194

Заметил непонятную для меня вещь ещё:

1) У брокеров с одинаковым GMT на истории сдвиг есть

2) А у брокеров с разным GMT на истории нет сдвига

Это в ступор заводит...

   это с одинаковым GMT   


   это с разным GMT   

А текущее время на 0 свечке показывает правильно. Вот что это?

Вопрос про GMT сдвиг у разных брокеров
Вопрос про GMT сдвиг у разных брокеров
  • 2020.01.23
  • www.mql5.com
Вопрос у меня, подскажите: 1) Почему TimeGMTOffset() возвращает TimeGMT-Time - отрицательное число, тогда как GMT должен быть ну скажем +3 2) У мен...
 
Aliaksandr Kryvanos:

Я вот тему эту не увидел, я спрашивал про историю и GMT сдвиг https://www.mql5.com/ru/forum/331194

Заметил непонятную для меня вещь ещё:

1) У брокеров с одинаковым GMT на истории сдвиг есть

2) А у брокеров с разным GMT на истории нет сдвига

Это в ступор заводит...

   это с одинаковым GMT   


   это с разным GMT   

А текущее время на 0 свечке показывает правильно. Вот что это?

Интересно что за непонятка, чувствую что ответ на поверхности и просто затуп, но не понимаю в чём именно.

з.ы. прикольно у вас секунды на скринах сложились в ряд - 33,44,33,44

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