а вы не переставайте торговать и советником. тики ведь идут.
Да я то пока переделал слегка свой код на такой:
if(!IsConnected()) Print("Отсутствует связь с сервером!"); else Print("Связь с сервером установлена");
Чисто ради спортивного интереса...
Но все же хотелось бы услышать ответ от разработчиков по этому поводу. Ведь проблема существует давно и вроде говорилось, что она решена, а тут опять двадцать пять... Снова всплывают те же самые глюки.
а вы не переставайте торговать и советником. тики ведь идут.
Иначе зачем вообще такая функция в MQL4?
она правду не cкажет. сколько уже раз поднимался вопрос про её глюки, но видимо причина не просто в терминале или потоках, а где-то вне поля зрения отладчика.
Проблема лечится сменой типа соединения терминала.
Для смены типа соединения нужно вручную выбрать тот сервер, с которым соединение будет через дата-центр (индикатор: зеленый).
Если индикатор зелено-красный, то ждите ошибок.
Аналогично ведет себя функция IsTradeAllowed().
Написал заявку в сервисдеск. Ответа нет.
Вывод один: Если такие важные функции уже 6 лет работают некорректно и все молчат,
то это означает, что реально MT4 для автоматического трейдинга почти никто не использует
и основная часть пользователей MT4 торгует руками.
Заявка в сервисдеск: #163349
Открыта, Начата: 2011.07.09 21:46,
Описание проблемы
Тип соединения терминала: прямое соединение с севером (индикатор: зелено-красный)
Функция IsConnected() выдает ошибочное сообщение, о том что связи нет, хотя новые тики при этом поступают.
Если тип соединения терминала: через дата-центр (индикатор: зеленый), то ошибка не возникает.
Дополнительные сведения
Проблема лечится сменой типа соединения терминала.
Для смены типа соединения нужно вручную выбрать тот сервер, с которым соединение будет через дата-центр (индикатор: зеленый).
Если индикатор зелено-красный, то ждите ошибок.
Аналогично ведет себя функция IsTradeAllowed().
Написал заявку в сервисдеск. Ответа нет.
Вывод один: Если такие важные функции уже 6 лет работают некорректно и все молчат,
то это означает, что реально MT4 для автоматического трейдинга почти никто не использует
и основная часть пользователей MT4 торгует руками.
Не лечится таким образом. Или только на какое-то время, а потом снова вылазит. Перескан серверов тоже не помогает.
С другой стороны у меня на VPS стоят два терминала одного брокера на которых бегут по 9 экспертов.
Ни в одном не было замечено сброс IsConnected за год.
Но отчасти я знаю воспроизводимую причину, по которой можно вызвать глюк в IsConnected - это зациклить эксперт в функции start.
сам наблюдал на другом VPS и брокере, что при зацикливании происходит срабатывание/глюк IsConnected через 5-6 часов старта эксперта.
Странно такое здесь слышать. По-моему уже неоднократно отмечалось разработчиками, что тики и торговые операции - разные потоки. То есть тики идти могут, но торговать (ни вручную, ни советником) нельзя. Иначе зачем вообще такая функция в MQL4?
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
31.08 я наконец-то лично столкнулся с ситуацией, когда функция IsConnected() нарушила работу моего советника. До этого в течении длительного времени(где-то с начала года) я у себя за ней такого не замечал, хотя от пользователей моих советников периодически поступали сообщения, что в логе пишется об отсутствии связи с сервером, а по факту связь присутствует. Т.е. в момент, когда советнику функция IsConnected() возвращает False можно вполне нормально торговать в ручную. В советнике внутри торговых функций использую ее стандартно:
Манипуляции с переключением ТФ, а значит и реинициализация всего что есть на графике к нормальной работе функции не приводят. Уйти от данной ошибки можно только перезагрузкой терминала.
Может кто нибудь из разработчиков прокомментировать такое поведение этой функции. Если нужны будут логи готов предоставить их.