Добрый день.
При переходе на реальный торговый счет при работе эксперта периодически при исполнении торговых операций стала появляться Error 6 - No connection
При попытке выполнить эту же операцию вручную - получаем туже ошибку
При этом верхняя половина квадратика в правом нижнем углу зеленая и тики идут нормально.
До этого эксперт несколько месяцев крутился на демо счете - такая ошибка не появлялась ни разу.
Если терминал перезапустить, то ошибка пропадает и торговые приказы нормально выполняются
Вопрос: как можно побороть эту ошибку из кода эксперта без ручного перезапуска терминала?
проблема известная - описанная ВАМИ с точностью до мелочей - возникает при ручной торговле в основном при сильных движениях
причина мне не понятна, догадки вряд ли интересны но они есть, лечилась именно выходом из программы и повторным ее пуском
предполагаю что еще от брокера это может зависеть.
т к выделенный канал в 256к работает отлично - т е не связь это
1-написать программу обрабатывающую ошибку 6 с автоматической выгрузкой терминала и последующей его загрузкой
2-сменить брокера
1-написать программу обрабатывающую ошибку 6 с автоматической выгрузкой терминала и последующей его загрузкой
2-сменить брокера
п.2 - не подходит
п.1 - это понятно. Вопрос в том что возможно ли переинициализировать связь с сервером брокера при возникновении этой ошибки из кода эксперта?
Можно конечно написать внешнюю программу которая проверяет наличие какого-нибудь файла в каталоге файлов. И как только его там обнаруживает - перезапускает полностью терминал и удаляет файл. А в эксперте при возникновении ошибки этот файл формировать. Но это все больно страшно и коряво.
Может быть все-таки существует красивый способ решения проблемы?
Можно конечно написать внешнюю программу которая проверяет наличие какого-нибудь файла в каталоге файлов. И как только его там обнаруживает - перезапускает полностью терминал и удаляет файл. А в эксперте при возникновении ошибки этот файл формировать. Но это все больно страшно и коряво.
Может быть все-таки существует красивый способ решения проблемы?Способ, единственно решающий проблему - это не страшно. А корявость - это уже зависит от многих факторов ;)
Вопрос только стоит в красоте реализации, ИМХО.
Ну вот опять ситуация повторилась. Вот кусок лога эксперта:
11:00:01 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
11:00:01 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
11:00:06 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
11:00:12 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
11:00:18 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
11:00:23 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
11:00:29 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
11:00:34 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
11:00:40 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
11:00:46 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
11:00:51 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
11:01:02 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
11:01:02 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
11:01:07 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
11:01:12 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
11:01:18 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
11:01:23 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
11:01:29 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
11:01:34 #_TradingSystem_V1-2-1 EURUSD,H1: CloseOneOrder - PROBE 1/10 !!!ORDER #2750218 HAVE NOT BEEN CLOSED. INCURABLE ERROR 6-no connection with trade server!!!
А это терминал в этот же момент:
11:00:06 '352654': cannot login [No connection]
11:00:12 '352654': cannot login [No connection]
11:00:18 '352654': cannot login [No connection]
11:00:23 '352654': cannot login [No connection]
11:00:29 '352654': cannot login [No connection]
11:00:34 '352654': cannot login [No connection]
11:00:40 '352654': cannot login [No connection]
11:00:46 '352654': cannot login [No connection]
11:00:51 '352654': cannot login [No connection]
11:00:56 '352654': cannot login [No connection]
11:01:02 '352654': cannot login [No connection]
11:01:07 '352654': cannot login [No connection]
11:01:12 '352654': cannot login [No connection]
11:01:18 '352654': cannot login [No connection]
11:01:23 '352654': cannot login [No connection]
11:01:29 '352654': cannot login [No connection]
11:01:34 '352654': cannot login [No connection]
При всем при этом тики приходят нормально. Windows команда netstat показывает наличие TCP сокета между терминалом и сервером. Индикатор связи - зеленый верх/красный низ
Может все таки это заковыка в терминале? Что по этому поводу думают разработчики ?
Вопрос: как можно побороть эту ошибку из кода эксперта без ручного перезапуска терминала?
https://www.mql5.com/ru/forum/51565
А какой ДЦ у вас. я тоже вот на алпари юкей получал такие же проблемы no connection. Но в последнее время проблема не появляется
getch писал (а):
Вопрос: как можно побороть эту ошибку из кода эксперта без ручного перезапуска терминала?
https://www.mql5.com/ru/forum/51565
Спасибо. Вставил реконнект в обработчик ошибок. Посмотрим что будет.
getch писал (а):
Вопрос: как можно побороть эту ошибку из кода эксперта без ручного перезапуска терминала?
https://www.mql5.com/ru/forum/51565
Спасибо. Вставил реконнект в обработчик ошибок. Посмотрим что будет.
позволю себе продублировать данный код!
//Ну вот и все - отлично работает процедруа программного реконнекта :)
//НЕ ЗАБУДЬТЕ ВКЛЮЧИТЬ ГАЛОЧКУ "Разрешить импорт ДЛЛ" в настройках МТ4.
//В начале советника подключаем необходимые ДЛЛ-ки и модули
#include <winuser32.mqh>
#import "user32.dll"
int GetParent(int hWnd);
#import
//Копируем процедуру в наш советник или библиотеку и вызываем ее там, где вам нравиться
//Лично я вызываю перед рассчетом данных - но можно перед установкой ордеров. Правда тогда
//возможно нужно будет делать задержку в пару секунд
//У меня все работает
int Reconnect()
{
int result;
int hwnd = WindowHandle(Symbol(), Period()); // получаем хендл окна графика
hwnd = GetParent(hwnd); // получаем хендл родительского окна
hwnd = GetParent(hwnd); // ...
hwnd = GetParent(hwnd); //добираемся до главного окна
result = SendMessageA(hwnd, WM_COMMAND, 37400, 0);
Print("SendMessageA = " + result); //посылаем сообщене
return;
}
-----
я бы вызывал ее именно при возникновении 6 ошибки
= OrderSend (...
err = GetLastError();
if ( err == 6 )
{
Reconnect();
}
я бы вызывал ее именно при возникновении 6 ошибки
= OrderSend (...
err = GetLastError();
if ( err == 6 )
{
Reconnect();
}
да, почти так я и сделал.
for (int i = 0; i < 10; i++) { int ticket = ordersend (... if (ticket > 0) break; err = GetLastError(); if (err==6) Reconnect(); sleep(5000); }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день.
При переходе на реальный торговый счет при работе эксперта периодически при исполнении торговых операций стала появляться Error 6 - No connection
При попытке выполнить эту же операцию вручную - получаем туже ошибку
При этом верхняя половина квадратика в правом нижнем углу зеленая и тики идут нормально.
До этого эксперт несколько месяцев крутился на демо счете - такая ошибка не появлялась ни разу.
Если терминал перезапустить, то ошибка пропадает и торговые приказы нормально выполняются
Вопрос: как можно побороть эту ошибку из кода эксперта без ручного перезапуска терминала?