Можно пересканировать серверы или перелогинится.
Перескан:
int hwindow=GetAncestor(WindowHandle(Symbol(),Period()),2);// получаем хендл главного окна if(hwindow!=0) { // нашли главное окно PostMessageA(hwindow,WM_COMMAND,37400,0); // посылаем сообщение "пересканировать серверы" }
Перелогин:
hwnd=GetAncestor(WindowHandle(Symbol(),Period()),2); // получаем хендл главного окна PostMessageA(hwnd,WM_COMMAND,35429,0); // открыли окно ввода Логина и Пароля. Sleep(PAUSE); hwnd=GetLastActivePopup(hwnd); // нашли хэндл окна ввода Логина и Пароля hwnd=GetDlgItem(hwnd,0x1); // нашли хэндл кнопки ЛОГИН Sleep(PAUSE); SendMessageA(hwnd,BM_CLICK,0,0); // нажали кнопку ЛОГИН
Спасибо, вставлю в код. Появится ситуация отпишу
Упс.. несколько проблем
В стандартном WinUser32.mqh нет описания констант PAUSE и BM_CLICK. А так же отсутствуют заголовки функций GetAncestor, GetLastActivePopup, GetDlgItem
Не могли бы Вы их привести
И еще. При выполнении перелогина вручную отключаются советники. Как бы их включить из советника?
На всякий случай напоминаю:
здесь на форуме была тема, в которой человек жаловался, что ордер может не открываться по минуте.
Он заподозрил, что в проблеме виновато ДЦ. Но в ДЦ ему ухмыльнулись и сказали, что все дело в терминале-
де, под котировки, торговлю и новости у терминала различные подключения :-).
Потом эту же информацию подтверждал stringo, насколько я помню.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день.
В последнее время часто стала проявляться ситуация когда при попытке совершить торговую операцию эксперт получает отказ с кодом ошибки 6 (нет связи с торговым сервером)
При этом индикатор соединения с сервером светится благополучным зеленым светом и функция IsConnectet() возвращает True.
Эксперт, как ему и положено делает паузу 5-10 секунд и пытается повторить операцию. Результат тот же.
Таких попыток делается порядка 20. Эффекта никакого.
Если при получении такой ситуации попробовать выставить ордер вручную возвращается ошибка "НЕТ СВЯЗИ". Индикатор при этом зеленый и котировки исправно поступают
После перезапуска терминала торговая операция совершается благополучно как экспертом, так и вручную с первой попытки.
С чем это связано, и как вылечить без перезагрузки терминала?