Для обсуждения: ФОРМАЛИЗОВАТЬ ВРЕМЕННУЮ ПРИВЯЗКУ.

 
Сегодня, пользуясь МТ4, мы имеем дело по крайней мере с тремя системами отсчета времени:
Системное время компьютера, четко привязанное к Гринвичу (GMT +/- ..);
Время терминала, привязанное неизвестно к чему;
Время графика, привязанное брокером/дилером к чему ему захочется.
Кроме того время совершения торговли формально также неизвестно к чему привязано.

Вопрос по моему очень важный как юридически, так и практически для программирования экспертов с учетом внутридневной активности.

Прошу высказаться кому интересно и разработчиков тоже.
 
функция CurTime возвращает последнее известное серверное время. в случае запуска эксперта потиково CurTime возвращает текущее серверное время. все графики строятся по серверному времени. время открытия и закрытия ордера также проставляется на сервере. время в заголовке Market Watch соответствует серверному времени прихода последней котировки (именно это значение возвращает функция CurTime)
так что, похоже, проблемы не существует
 
to Slawa

Вопрос на засыпку: А Вы, лично можете ли сказать, пользуясь имеющимися средствами (MT4+MQL4), каково серверное время на вашем сервере и на вашем терминале или у Альпари или у какого-нибудь китайского товарища и документально засвидетельствовать это в арбитраже?
Поверьте, вопрос кардинальнейший.
 
чисто технически клиентский терминал привязан к торговому серверу. клиентский терминал транслирует те котировки, которые пришли с сервера. каждая котировка имеет время, проставленное сервером. вся торговля ведётся по серверному времени. я это уже рассказал. добавлю совершенно очевидную вещь - в большинстве случаев время, пришедшее с сервера, будет отличаться от локального времени компьютера. во-первых, это может быть разница в часах, обусловленная разным поясным временем. во-вторых, это может быть разница в секундах, обусловленная пропускной способностью канала между клиентским терминалом и торговым сервером, в третьих, это может быть разница в минутах, обусловленная не вполне адекватной точностью ваших компьютерных часов.
а юридические вопросы необходимо решать не с нами, а с администрацией того или иного торгового сервера.
 
Я поясню. При логине получаю:
2005.01.20 12:02:17 '15067': login (4.00, #274CE2C7)
показанное здесь время 12:02:17 Это терминальное время. Оно по неизвестной причине на час отстает от серверного времени. Но какое оно серверное время - Москвское или Пекинское или, не дай бог, Нью-Йоркское или Тел-Авивское?
На мой взгляд должно быть так:
1. Введена функция примерно названия ServerRegionTime , возвращающая Region -число часов смещения сервера относительно Гринвича. Т.е сответствовать системе организации времени в Windows.
2. При логине сообщение в журнале должно быть:

2005.01.20 12:02:17 '15067': login (4.00, #274CE2C7) ServerTime=GMT+Region

3. Терминальное время безусловно не должно отличаться от серверного.

Приличное решение этой темы в www.quotetracker.com
Прошу обсудить тему с руководством проекта.
 
3. Терминальное время безусловно не должно отличаться от серверного

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

Журнал в терминале ведется только в локальном времени.
Разница с сервером брокера легко расчитывается - посмотрите на маркетвотч и локальное
время Windows, запомните разницу и учитывайте ее при возможных спорных вопросах.

документально засвидетельствовать это в арбитраже? Поверьте, вопрос кардинальнейший

И этот вопрос кардинально решен - брокер ориентируется _только_ на свои логи.
Логи клиента запрашиваются для получения дополнительной информации и сравнения.
 
to Renat

Журнальное время 17:25;
Серверное время 18:25;
Системное время 19:25;
Ну как в этом разобраться?
 
Журнальное время 17:25;
Серверное время 18:25;
Системное время 19:25;
Ну как в этом разобраться?

А вот тут с журнальным временем точно неувязочка вышла :(
Журнальное время должно было быть равно локальному. Исправим обязательно.
Спасибо что указали на эту глупейшую оплошность.
 
Окно Market Watch часто бывает закрыть во время предварительного технического анализа, и серверное время неизвестно. Может быть это мелочь, но во многих программах тех.анализа серверное время и/или GMT индицируются на Status Bar.
В районе Connection Status для такого индикатора - прекрасное место (системные часы рядом) - то есть наличие такого дополнительного индикатора просто убрало бы элемент суетливости трейдера - "А сколько сейчас и когда где и восколько что выходит...???"
Может быть такие дополнительные часы реально реализовать серверное + GMT?
 
В районе Connection Status для такого индикатора - прекрасное место (системные часы рядом) - то есть наличие такого дополнительного индикатора просто убрало бы элемент суетливости трейдера - "А сколько сейчас и когда где и восколько что выходит...???"

К сожалению, в статусной строки уже просто физически нет свободного места.
К тому же, стандартное время в Windows однозначно указывает это самое время.
Суетливость трейдера тут не мешает. Суетливость - это время секунд, но никак не часовых различий.

Если срочно надо узнать время, то достаточно нажать Ctrl+M чтобы показать на время окно Market Watch.
 
to Renat
Вы меня почти убедили. Давайте придем к такому соглашению:

2005.01.22 09:14:44 '15067': login (4.00, #274E27D9)
2005.01.22 09:14:42 MetaTrader 4.00 build 151 started

1. В строку login журнала добавляем ServerTime: ..........
2 В тот же самый момент терминал выполняет примерно
GlobalVariableSet("ServerTimeShift",shift); , где shift- разность часовых поясов сервера и терминала.
Вся информация для этого после логина имеется.

Что мы получаем: Все эксперты так или иначе использующие внутридневное время становятся независимыми от конкретного сервера (брокера). Кроме того запись в журнале рядом с журнальным серверного времени формально документирует временную привязку.
Я думаю, что это предложение никого не ущемляет, а кому-то поможет. Да и реализация не выглядит сложной. Так-что Ваш ход!