Скрипты: s-ReConnect.mq4

 

s-ReConnect.mq4:

Скрипт следит за соединением с сервером ДЦ и если оно пропало, то пытается пересканировать серверы, если связь не восстановилась, то переподключает аккаунт.

Author: Александр

 
PostMessageA(hwindow,WM_COMMAND,37400,0);

Где можно узнать о 37400 и других командах?

 

MSDN

 

Да, но в MSDN ничего не сказано о метатрейдере :-)

 
r0mBY:
PostMessageA(hwindow,WM_COMMAND,37400,0);

Где можно узнать о 37400 и других командах?


Есть такая веточка. И еще пользуюсь утилиткой spy++ для отлова сообщений.

 

а разве это не происходит автоматически, без всяких скриптов?

 
Omm:

а разве это не происходит автоматически, без всяких скриптов?

В каких-то версиях терминала бывали глюки, что переподключения не происходило. Я писал для себя похожий скрипт, с отправкой по почте уведомлений, и по статистике все разрывы были вызваны проблемами связи от хостера до ДЦ (м.б. сам ДЦ бывал перегружен), так что никакие пляски с бубном не помогли бы восстановить связь. Но обычно такие провалы занимали в среднем 2 минуты (конечно, у конкретного ДЦ) и случались не больше 3 раз за сутки.

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

    PostMessageA(hwnd_parent, WM_COMMAND, 0x8A65, -0x30107D);
    hwnd = GetLastActivePopup(hwnd_parent);
    if(hwnd != 0)
    {
      Print("Attempt to re-login");
      Sleep(1000);
      PostMessageA(hwnd, WM_KEYDOWN, VK_ENTER, 0);
    }
 
marketeer:
Omm:

а разве это не происходит автоматически, без всяких скриптов?

В каких-то версиях терминала бывали глюки, что переподключения не происходило. Я писал для себя похожий скрипт, с отправкой по почте уведомлений, и по статистике все разрывы были вызваны проблемами связи от хостера до ДЦ (м.б. сам ДЦ бывал перегружен), так что никакие пляски с бубном не помогли бы восстановить связь. Но обычно такие провалы занимали в среднем 2 минуты (конечно, у конкретного ДЦ) и случались не больше 3 раз за сутки.

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

    PostMessageA(hwnd_parent, WM_COMMAND, 0x8A65, -0x30107D);
    hwnd = GetLastActivePopup(hwnd_parent);
    if(hwnd != 0)
    {
      Print("Attempt to re-login");
      Sleep(1000);
      PostMessageA(hwnd, WM_KEYDOWN, VK_ENTER, 0);
    }


А как грамотно прикрутить этот кусок к вышенаписаннному скрипту?

 

Отлично!

НО! если его толково дописать - будет шедевр!

Первоначальные тесты, показали, его максимальную эффективность! Особенно полезен в тех БК, где любят выводить в убыток, путём отключения от сервера.

Не будем показывать пальцем на БК, но многие и так знают, какие БК воруют и намеренно отключают от серверов.

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