![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Нет, не правильное решение!
Всё ДРУГОЕ время, кроме времени сервера МТ5 - НЕ ПРАВИЛЬНОЕ, так как мы торгуем серез СЕРВЕР МТ5!!!!
Добавлено
Хочется ОЧЕНЬ надеется, что само время сервера МТ5 СИНХРОНИЗИРОВАНО правильно со временем БИРЖИ!
На первых двух страницах http://forum.moex.com/viewtopic.asp?t=15432&topicdays=0&postorder=asc&start=0 много интересного о синхронизации времени на бирже ФОРТС, а также указан адрес ntp.rtsnet.ru NTP сервера биржи РТС, по которому все брокеры могут синхронизировать свое время. Клиентам он был недоступен. Правда, это 2009-2010 год. Техподдержка вашего брокера, вероятно, ответит, как сейчас у данного брокера.
Кроме собственно синхронизации, еще хотелось бы, чтобы применялся алгоритм "плавного" сдвига времени, чтобы последующие события не получили от брокера предыдущее время. В синхронизацию по NTP этот механизм не входит.
На первых двух страницах http://forum.moex.com/viewtopic.asp?t=15432&topicdays=0&postorder=asc&start=0 много интересного о синхронизации времени на бирже ФОРТС, а также указан адрес ntp.rtsnet.ru NTP сервера биржи РТС, по которому все брокеры могут синхронизировать свое время. Клиентам он был недоступен. Правда, это 2009-2010 год. Техподдержка вашего брокера, вероятно, ответит, как сейчас у данного брокера.
Кроме собственно синхронизации, еще хотелось бы, чтобы применялся алгоритм "плавного" сдвига времени, чтобы последующие события не получили от брокера предыдущее время. В синхронизацию по NTP этот механизм не входит.
С уважением,
Глеб Кочнев
Техническая поддержка ПАО Московская Биржа
+7 (495) 733-95-07 | help@moex.com
Кто-нибудь может пояснить, почему этот код не точно синхронизиоует время?
Ведь в премаркет приходит "свежая" котировка, с новым временем сервера(биржи).
{
loc_time.wYear=0;
GetLocalTime(loc_time);
if(loc_time.wYear>0)
{
if((loc_time.wHour==9) && (loc_time.wMinute>=50) && (loc_time.wMinute<=59))
{
MqlTick curr_tick[1];
if(CopyTicks(symbol,curr_tick,COPY_TICKS_INFO,0,1)==1)
{
MqlDateTime sv_time;
TimeToStruct(curr_tick[0].time,sv_time);
if(!is_sync)
{
if((loc_time.wDayOfWeek==ushort(sv_time.day_of_week)) &&
(loc_time.wHour==ushort(sv_time.hour)))
{
long last_ping=long(NormalizeDouble((double(TerminalInfoInteger(TERMINAL_PING_LAST))/1000)/2,0));
long mls_time=long(curr_tick[0].time_msc%1000);
if((mls_time+last_ping)>999)
{
mls_time=long(curr_tick[0].time_msc)+last_ping;
if(!ConvertToTime(mls_time, loc_time)) return;
}
else
{
loc_time.wMinute = ushort(sv_time.min);
loc_time.wSecond = ushort(sv_time.sec);
loc_time.wMilliseconds=ushort(mls_time);
}
if(SetLocalTime(loc_time))
{
is_sync=true;
Print("Local time sync is done. Symbol = ", symbol, " Sync min = ", loc_time.wMinute,
" Sync sec = ", loc_time.wSecond, " Sync ms = ", loc_time.wMilliseconds);
}
}
}
}
}
else is_sync=false;
}
}
Поясню, на чём был основан приведённый выше код.
Функция CopyTicks() с флагом COPY_TICKS_INFO
возврашает последнюю котировку (Bid, Ask) с временем сервера, а так как изменения BID и/или ASK вывывают
событие OnBookEvent(), то мы можем получить время последней котировки.
Проверяя
(loc_time.wHour==ushort(sv_time.hour)))
мы убежлается, что это "свежая" котировка.
Почему же, после 10-00 веремя сервера на несколько секунд не совпадает
с синхронизированным локальным временем?
С уважением,
Глеб Кочнев
Техническая поддержка ПАО Московская Биржа
+7 (495) 733-95-07 | help@moex.com
А как решился Ваш ключевой вопрос: "Хочется ОЧЕНЬ надеется, что само время сервера МТ5 СИНХРОНИЗИРОВАНО правильно со временем БИРЖИ!"?
А как решился Ваш ключевой вопрос: "Хочется ОЧЕНЬ надеется, что само время сервера МТ5 СИНХРОНИЗИРОВАНО правильно со временем БИРЖИ!"?
Никак не решился, откуда я знаю как разработчики синхронизируют время сервера МТ5 с временем биржи?
Брокер (Откоытие) написал, что автоматически, но как конкретно, знают только разработчики,
но они не участвуют в обсуждении.
Добавлено
И это не ключевой мой вопрос!
Мой вопрос:
Как, максимально точно, синхронизировать МОЁ локальнок время с временем сервера МТ5 ФОРТС?
Как, максимально точно, синхронизировать МОЁ локальнок время с временем сервера МТ5 ФОРТС?
OnTick.
OnTick не приходит в премаркет и в клиринги, а время
нужно синхронизировать ДО торгов!
OnTick не приходит в премаркет и в клиринги, а время
нужно синхронизировать ДО торгов!
Не вижу причин синхронизации времени ДО торгов. Открыл терминал в 11:32, и он на первом тике синхронизировал.
2017.01.13 10:00:03.969 Trades 'xxxxx': sell limit 1.00 ED-6.17 at 1.0813
2017.01.13 10:00:03.975 Trades 'xxxxx': accepted buy limit 2.00 ED-6.17 at 1.0642
2017.01.13 10:00:03.975 Trades 'xxxxx': accepted sell limit 1.00 ED-6.17 at 1.0813
2017.01.13 10:00:03.978 Trades 'xxxxx': failed buy limit 2.00 ED-6.17 at 1.0642 [Market closed]
2017.01.13 10:00:03.979 Trades 'xxxxx': failed sell limit 1.00 ED-6.17 at 1.0813 [Market closed]
Ответ брокера
2017.01.13 09:59:58.098 * request transfered to dealers * (buy limit 2.00 ED-6.17 at 1.0642)
2017.01.13 09:59:58.099 * request transfered to dealers * (sell limit 1.00 ED-6.17 at 1.0813)
2017.01.13 09:59:58.099 * request from '*' (buy limit 2.00 ED-6.17 at 1.0642)
2017.01.13 09:59:58.099 * request from '*' (sell limit 1.00 ED-6.17 at 1.0813)
2017.01.13 09:59:58.100 * reject (Market closed) for '*' (buy limit 2.00 ED-6.17 at 1.0642)(1.0641 / 1.0814 / 1.0695)
2017.01.13 09:59:58.100 * reject (Market closed) for '*' (sell limit 1.00 ED-6.17 at 1.0813)(1.0641 / 1.0814 / 1.0695)
А я ВИЖУ
Добавлено
И у меня терминал постоянно работает 90 дней (до смены фьючерсов)
Добавлено
Мои роботы не требуют моего участия, бывает, что неделю не подхожу
к копьютеру. Если случается что-то экстрординарное, я получаю СМС