Error 6 - No connection

 

Добрый день.

При переходе на реальный торговый счет при работе эксперта периодически при исполнении торговых операций стала появляться Error 6 - No connection

При попытке выполнить эту же операцию вручную - получаем туже ошибку

При этом верхняя половина квадратика в правом нижнем углу зеленая и тики идут нормально.

До этого эксперт несколько месяцев крутился на демо счете - такая ошибка не появлялась ни разу.

Если терминал перезапустить, то ошибка пропадает и торговые приказы нормально выполняются

Вопрос: как можно побороть эту ошибку из кода эксперта без ручного перезапуска терминала?

 
lusp:

Добрый день.

При переходе на реальный торговый счет при работе эксперта периодически при исполнении торговых операций стала появляться Error 6 - No connection

При попытке выполнить эту же операцию вручную - получаем туже ошибку

При этом верхняя половина квадратика в правом нижнем углу зеленая и тики идут нормально.

До этого эксперт несколько месяцев крутился на демо счете - такая ошибка не появлялась ни разу.

Если терминал перезапустить, то ошибка пропадает и торговые приказы нормально выполняются

Вопрос: как можно побороть эту ошибку из кода эксперта без ручного перезапуска терминала?


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

т к выделенный канал в 256к работает отлично - т е не связь это

1-написать программу обрабатывающую ошибку 6 с автоматической выгрузкой терминала и последующей его загрузкой
2-сменить брокера
 
YuraZ:
1-написать программу обрабатывающую ошибку 6 с автоматической выгрузкой терминала и последующей его загрузкой
2-сменить брокера

п.2 - не подходит
п.1 - это понятно. Вопрос в том что возможно ли переинициализировать связь с сервером брокера при возникновении этой ошибки из кода эксперта?

Можно конечно написать внешнюю программу которая проверяет наличие какого-нибудь файла в каталоге файлов. И как только его там обнаруживает - перезапускает полностью терминал и удаляет файл. А в эксперте при возникновении ошибки этот файл формировать. Но это все больно страшно и коряво.

Может быть все-таки существует красивый способ решения проблемы?

 
lusp:

Можно конечно написать внешнюю программу которая проверяет наличие какого-нибудь файла в каталоге файлов. И как только его там обнаруживает - перезапускает полностью терминал и удаляет файл. А в эксперте при возникновении ошибки этот файл формировать. Но это все больно страшно и коряво.

Может быть все-таки существует красивый способ решения проблемы?

Способ, единственно решающий проблему - это не страшно. А корявость - это уже зависит от многих факторов ;)
Вопрос только стоит в красоте реализации, ИМХО.
 

Ну вот опять ситуация повторилась. Вот кусок лога эксперта:

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 сокета между терминалом и сервером. Индикатор связи - зеленый верх/красный низ

Может все таки это заковыка в терминале? Что по этому поводу думают разработчики ?

 
Свяжитесь со службой поддержки брокера и попросите проверить корректность настроек точек доступа.
 
lusp:

Вопрос: как можно побороть эту ошибку из кода эксперта без ручного перезапуска терминала?


https://www.mql5.com/ru/forum/51565
 

А какой ДЦ у вас. я тоже вот на алпари юкей получал такие же проблемы no connection. Но в последнее время проблема не появляется

 

getch писал (а):
lusp:

Вопрос: как можно побороть эту ошибку из кода эксперта без ручного перезапуска терминала?


https://www.mql5.com/ru/forum/51565
Спасибо. Вставил реконнект в обработчик ошибок. Посмотрим что будет.
 
lusp:

getch писал (а):
lusp:

Вопрос: как можно побороть эту ошибку из кода эксперта без ручного перезапуска терминала?


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();
}

 
YuraZ:

я бы вызывал ее именно при возникновении 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); 
}