Как определить смещение времени севера относительно UTC?

 

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

И, соответственно, адекватно реагировал на перевод времени в стране, где располагается сервер.

Как это программно реализовать?

И, надеюсь, само UTC не плавает из зимы в лето?

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

 

Следует помнить, что время по UTC не переводится ни зимой, ни летом

WinAPI в помощь.

 

UTC – УНИВЕРСАЛЬНОЕ КООРДИНИРОВАННОЕ ВРЕМЯ

В основу современной системы часовых поясов положено универсальное координированное время UTC (всемирное время), от которого зависит время всех часовых поясов.

Местное время во многих странах Северного полушария (но не во всех) летом увеличивается на 1 час (в Южном полушарии одновременно уменьшается на 1 час), а зимой возвращается к нормальному, поясному времени, которое нередко также изменяется. В связи с этими сезонными и несезонными изменениями местного времени в радиовещании, на международном транспорте, в радиосвязи, в электронной почте и других международных средствах общения происходит огромная путаница по стыковке во времени между разными странами.

Время по UTC не переводится зимой и летом, поэтому для тех мест, где есть перевод на летнее время, смещение относительно UTC меняется.

Начальный (нулевой) меридиан - Гринвичский меридиан с географической долготой равной 0°00'00", делит земной шар на западное и восточное полушария. Проходит через бывшую Гринвискую обсерваторию (в пригороде Лондона)

GMT (Greenwich Mean Time) - "время по Гринвичу" – на меридиане Гринвича. Определяется по астрономическим наблюдениям суточного движения звезд. Оно нестабильно (в пределах секунды в год) и зависит от постоянного изменения скорости вращения Земли, перемещения географических полюсов по её поверхности и нутации оси вращения планеты. Гринвичское (астрономическое) время близко по значению к UTC (атомному времени), и пока ещё будет употребляться в качестве его синонима. Ещё название - "ZULU time"

В русскоязычной метеорологии GMT обозначают как СГВ (Среднее Гринвичское /или Географическое/ Время)

В отличие от времени по Гринвичу, шкала UTC устанавливается по атомным часам.Шкала времени UTC введена с 1964 года для согласования значений UT1 (астрономические измерения) и TAI (атомные часы).

С 1900 г средний солнечный день увеличился на 0,002 атомные секунды, и, стало быть, Гринвичское среднее время расходится с международным атомным временем приблизительно на 1 сек за каждые 500 суток. Беря во внимание этот прогрессирующий фазовый сдвиг между двумя шкалами времени и не отказываясь от высокой точности, предлагаемой атомными часами, в 1972 г был найден компромисс, который привел к определению понятия Универсального Координированного Времени (UTC), которое сейчас используется как официальная мера времени в мире. По сути время UTC течет как международное атомное время, а когда разница с Гринвичским временем достигает 1 секунды, к шкале UTC добавляется 1 секунда, которая называется прыгающей (leap second). Таким образом, разница все время поддерживается меньшей, чем 0,9 сек. Про добавление прыгающей секунды сообщается Международной Службой Вращения Земли (IERS), которая непрерывно контролирует скорость вращения. Наилучшими датами для добавления прыгающей секунды являются 30 июня и 31 декабря. Кстати, термин UTC тоже является компромиссом между английским CUT (Coordinated Universal Time) и французским TUC (Temps Universel Coordlnaire).

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

Сигналы точного времени передаются по радио, телевидению, интернету – в системе UTC.

http://www.stocktime.ru/utc.htm

 
TheXpert:

WinAPI в помощь.




1) То есть, это значит, что в MQL4 не предусмотрена возможность узнать сдвиг времени сервера относительно UTC?

2) WinAPI - штука большая, и я им никогда не пользовался.

Подскажите, если возможно, конкретную функцию и библиотеку

 
Eugene1:

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

И, соответственно, адекватно реагировал на перевод времени в стране, где располагается сервер.

Как это программно реализовать?

И, надеюсь, само UTC не плавает из зимы в лето?

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

Можно рассчитать сдвиг между серверным временем и локальным временем компьютера,

а сдвиг UTC и локального времени пусть пользователь вводит через input переменную в виде часового пояса.

 
Urain:

Можно рассчитать сдвиг между серверным временем и локальным временем компьютера,

а сдвиг UTC и локального времени пусть пользователь вводит через input переменную в виде часового пояса.


Только пусть вводит зимой одно, а летом другое
 

Vinin:

Только пусть вводит зимой одно, а летом другое

Вот! Вот!

Словом, всё сводится к тому, чтобы найти в WinAPI

функцию возвращающую время в UTC

И найти расписание сессий в UTC

 
Eugene1:

Вот! Вот!

Словом, всё сводится к тому, чтобы найти в WinAPI

функцию возвращающую время в UTC

И найти расписание сессий в UTC

Да просто поставьте на компе часовой пояс 0, и отключите функцию перехода на зимнее время.

Разница между TimeLocal и TimeCurrent даст нужное смешение.

Затем пропишите это смещение в параметре.

ЗЫ Вообще убогость МТ4 налицо, в МТ5 есть стандартная функция TimeGMT.

 
Eugene1:

Вот! Вот!...

Как в старом анекдоте - "Не выделывайтесь, товарищ, слушайте вашу любимую Аллу Пугачеву!"

На мой вкус лучший индикатор сессий от Вадима Бакланова.
 
Urain:

Да просто поставьте на компе часовой пояс 0, и отключите функцию перехода на зимнее время.

Разница между TimeLocal и TimeCurrent даст нужное смешение.

Это уже реальное решение!

Ура!

И спасибо!

 

Накопительный пакет обновления часовых поясов для операционных систем Windows за август 2011 года

http://support.microsoft.com/?kbid=2570791

http://rghost.ru/19209491

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