Парни - запутался со временем торговли на реале и в тестере

 

скачал историю с брокера за год. оттестировал стратегию, торгующую с 17 до 22 часов. время в стратегии задано жестко, без смещений летнее/зимнее время.  

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

теперь сомневаюсь, возможно в зимнее время надо на реальном сете ставить на час позже с 18, учитывая смещение.  

 

В MT4 есть:

Вы какое использовали?

В тестере все три времени будут совпадать. (правда, насчет GMT не уверен, не проверял)

 
Ilya Baranov:

В MT4 есть:

  • локальное время вашего компьютера,
  • время GMT,
  • время баров (тиков) - по сути время торгового сервера.

Вы какое использовали?

В тестере все три времени будут совпадать. (правда, насчет GMT не уверен, не проверял)

в тестере TimeGMT = TimeCurrent. 

Тоже столкнулся с проблемой времени. Необходимо эксперту привязаться к новости, которая выходит в определенное время. Если в боевом режиме TimeGMT действительно равен GMT и проблем с этим нет, то в тестере проблема. Если жестко задать разницу gmt от времени терминала, то натыкаемся на проблему перевода времени. У разных брокеров оно может быть, а может и не быть. TimeDaylightSavings() тоже не спасает, потому как сверятся с компьютером, на котором запущен терминал, но никак не сам перевод времени на сервере брокера. Не могу понять, как экспертом в тестере проверить был ли перевод времени на сервере брокера или нет.

 
Моделирование времени в тестере
При тестировании производится моделирование времени в соответствии с историческими данными. Локальное время TimeLocal() всегда равно серверному времени TimeCurrent(). В свою очередь, серверное время всегда равно времени, соответствующему времени GMT - TimeGMT(). Таким образом, все эти функции при тестировании выдают одно и то же время.

Отсутствие разницы между GMT, локальным и серверным временем в тестере сделано сознательно по той самой причине, что связь с сервером может быть не всегда. А результаты тестирования должны быть одинаковыми, независимо от наличия связи. Информация о серверном времени не хранится локально, а берётся с сервера.

То есть при использовании TimeCurrent() при тестировании мы имеем например заданное время торговли в 17-00,  летом оно будет 17-00, и 18-00 по летнему времени зимой (в случае перевода времени брокером на час назад)? 

При этом TimeCurrent() время всегда равно времени, соответствующему времени GMT, то есть на оно всегда приводиться к GMT, к примеру смещение +2 часа, то заданное время в торговле по TimeCurrent() в 17-00 будет - 19-00 летом с учетом приведения TimeCurrent() к GMT и зимой 18-00?

Что значит - Информация о серверном времени не хранится локально, а берётся с сервера. то есть если при тестировании связи нет с сервером то на каком времени я тестирую вообще не понятно? 

 
Yuri Tikhonov:
Что значит - Информация о серверном времени не хранится локально, а берётся с сервера. то есть если при тестировании связи нет с сервером то на каком времени я тестирую вообще не понятно? 

В тестере используется время, указанное в самих котировках, т. е. то, что имеется в FXT-файле. Связь с сервером нужна только для получения данных о рыночном окружении. Причем если связи в текущем сеансе не было, то будут использованы последние известные данные. Если же терминал вообще никогда не подключался к серверу, то все параметры рыночного окружения будут содержать нули. Тогда и тестирование вряд ли запустится (откуда взяться FXT-файлу? Разве что специально его генерировать)

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