please english
For your pleasure: 'perelogin' == reconnect with login
Штука полезная. Только я бы ее спользовал с оговоркой: если счет серьезный - таких проблем не должно быть. Если они все же возникают - их надо решить принципиально. Но, если вариантов решения нет ( ни прова, ни линию, ни ДЦ не сменить) - изящный паллиатив. И отличный пример (для меня, во всяком случае) использования надстроек над MQL.
Автору, как всегда, благодарность и респект.
Хмм, никогда не возникало таких проблем, впрочем это неважно, штука потенциально полезная.
Не нравится одна вещь -- релогин когда проблем нету.
Можно ведь отслеживать текущую цену по любой валюте. И делать релогин только тогда, когда цена не изменялась в течение допустим минуты.
ИМХО, такой вариант должен быть лучше.
Не нравится одна вещь -- релогин когда проблем нету.
Можно ведь отслеживать текущую цену по любой валюте. И делать релогин только тогда, когда цена не изменялась в течение допустим минуты.
ИМХО, такой вариант должен быть лучше.
Да, так будет правильнее. Добавлю в качестве опции.
Вообще, задумывалось что релогин будет ~ 1 раз в час.
Нужно чуть исправить функциию start() и ReLogin будет происходить: только при условии отсутствия связи с сервером более чем “Pause_sec” секунд (отсутствия новой информации о котировках)
void start() { if ( !IsDllsAllowed() ) { Alert( "DLLs not allowed!" ); return; } datetime LastCheck; while ( !IsStopped() ) { if(LastCheck==TimeCurrent()) { Login(1); while ( !IsStopped() ) { if ( OrdersHistoryTotal() > 0 ) break; Sleep(1000); } Print( "Успешное подключение к счету #", AccountNumber() ); //, "! Следующее будет через ", Pause_sec/60, " минут..." ); } LastCheck = TimeCurrent(); Sleep(Pause_sec*1000); } return; }
PS: Pause_sec более 3минут делать не смысла, если у вас в терминале есть все Major пары
extern int Pause_sec = 180;
ктонибудь знает как научить его работать со счетами не в списке Избранное, а в основном окне навигатора?
Попробуйте вместо вызова Login(1) делать Login2():
// Подключается к первому сверху счету окна Навигатор void Login2() { int hwnd = WindowHandle(Symbol(), Period()); int hwnd_parent = 0; while (!IsStopped()) { hwnd = GetParent(hwnd); if (hwnd == 0) break; hwnd_parent = hwnd; } if (hwnd_parent != 0) // нашли главное окно { PostMessageA(hwnd_parent, WM_COMMAND, 35429, 0); // Вызвали логин Sleep(PAUSE); // выждали hwnd = GetLastActivePopup(hwnd_parent); // нашли форму логина PostMessageA(hwnd, WM_KEYDOWN, VK_ENTER, 0); // залогинились } return; }

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
ReConnecter - скрипт для периодического перелогина.:
Author: Andrey Khatimlianskii