Контроль наличия соединения с сервером брокера.

 

Столкнулся с проблемой.

При физическом обрыве сетевого соединения, функция IsConnected(), работающая в обработчике событий OnTimer(), продолжает возвращать true до тех пор, пока терминалом не будет выполнен неудачный запрос серверу брокера, а этого без действия пользователя не происходит.

Соответственно, не представляется возможным обеспечить надежный контроль сетевого соединения собственными средствами Mql4.

Уважаемые разработчики, просьба поправить это.

 
Vladimir Simakov:

Столкнулся с проблемой.

При физическом обрыве сетевого соединения, функция IsConnected(), работающая в обработчике событий OnTimer(), продолжает возвращать true до тех пор, пока терминалом не будет выполнен неудачный запрос серверу брокера, а этого без действия пользователя не происходит.

Соответственно, не представляется возможным обеспечить надежный контроль сетевого соединения собственными средствами Mql4.

Уважаемые разработчики, просьба поправить это.

Незачем пустяками тревожить создателей. Такая проблема есть. Причин может быть много, в том числе, лежащих не на стороне терминала.

Держите индикатор. Он начинает пищать, когда возникает проблема со связью. Обычное решение - перелогин терминала

Файлы:
 
Mislaid:

Незачем пустяками тревожить создателей. Такая проблема есть. Причин может быть много, в том числе, лежащих не на стороне терминала.

Держите индикатор. Он начинает пищать, когда возникает проблема со связью. Обычное решение - перелогин терминала

И что на выходе? Факт превышения времени ожидания тика?

А если мне надо здесь и сейчас уверенность в наличии связи с брокером, то что?

 
Vladimir Simakov:

И что на выходе? Факт превышения времени ожидания тика?

А если мне надо здесь и сейчас уверенность в наличии связи с брокером, то что?

Вам сказали - перелогин

Вообще-то мне приятно, что Вы за такой короткий срок смогли вникнуть в алгоритм. Удачи!

 
Vladimir Simakov:

Столкнулся с проблемой.

При физическом обрыве сетевого соединения, функция IsConnected(), работающая в обработчике событий OnTimer(), продолжает возвращать true до тех пор, пока терминалом не будет выполнен неудачный запрос серверу брокера, а этого без действия пользователя не происходит.

Соответственно, не представляется возможным обеспечить надежный контроль сетевого соединения собственными средствами Mql4.

Уважаемые разработчики, просьба поправить это.

Если вы столкнулись с проблемой, но при этом, ни у кого такой проблемы нет, то логично предположить, что проблема у вас в коде/железе.

Тут где-то был клуб телепатов)

 
Taras Slobodyanik:

Если вы столкнулись с проблемой, но при этом, ни у кого такой проблемы нет, то логично предположить, что проблема у вас в коде/железе.

Тут где-то был клуб телепатов)

Уважаемый Тарас. Нас с такой проблемой уже двое. Проблема не в коде, проблема в реакции платформы. Парадокс в том, что программными средствами приходится отлавливать баги: в данном случае - задержка прихода котировок. Ситуация нечастая, но, иногда возникает. Если Вы этого не замечали, то, скорее всего intraday это не Ваш случай

Код ваще рядом не стоял. В терминал тупо не приходят котировки.

 

Самое интересное, что проблема возникает, когда терминал установлен на машине, которая работает в локальной сети и в инет выходит через Proxy.

Посты на тему Proxy прошу не разводить, так как делался физический разрыв соединения, тупо выдергивалась витая пара. При этом терминал продолжает показывать, что связь есть.

Дома никаких проблем, через 1-1,5 с терминал показывает, что связь потеряна.

 

Возможно это проблема не терминала. Три дня назад я заменил роутер и начались проблемы со связью. Значок рядом с часами показывает что соединение с роутером есть, доступ в интернет есть, а рядом крутится значок скайпа в поисках соединения. Запускаю firefox и ни одна страница не открывается.

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

 
Alexey Viktorov:

Возможно это проблема не терминала. Три дня назад я заменил роутер и начались проблемы со связью. Значок рядом с часами показывает что соединение с роутером есть, доступ в интернет есть, а рядом крутится значок скайпа в поисках соединения. Запускаю firefox и ни одна страница не открывается.

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

Вот и я про это.
 
Vladimir Simakov:
Вот и я про это.

Судя по предыдущим сообщениям, не совсем про это. Я имел в виду, что не только MQ пользуется этим алгоритмом. Или принято проверять наличие соединения опрашивая сетевое оборудование, а оно выдаёт что соединение есть и пока не получишь ошибку соединения, не поймёшь что нет связи. Как-то так.

 
Mislaid:

Уважаемый Тарас. Нас с такой проблемой уже двое. Проблема не в коде, проблема в реакции платформы. Парадокс в том, что программными средствами приходится отлавливать баги: в данном случае - задержка прихода котировок. Ситуация нечастая, но, иногда возникает. Если Вы этого не замечали, то, скорее всего intraday это не Ваш случай

Код ваще рядом не стоял. В терминал тупо не приходят котировки.

Да, не замечал ни разу, у меня IsConnected() работает нормально, и в таймере и в онтике.
Поэтому и написал, что нужно начинать с проверки кода/железа/винды.

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

ппс. кстати, спящий режим отключен?

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