Скрипты: ReConnecter - скрипт для периодического перелогина. - страница 2

 

Из того что я слышал про проблему "замирания графиков":
 - связь есть (статусбар зеленый);
 - котировки идут (в "Обзоре рынка" меняется время и цены Бид/Аск всех инструментов);
 - на графике одного или нескольких инструментов перестают появляться новые бары (например, текущее время 16:00 а последний бар на М1 датирован 15:20).

Из этого делаем вывод, что сравнение TimeCurrent() с последним запомненным не поможет (они будут равны только если сделать паузу меньше секунды).
А что сравнивать? Думаю, корректнее всего - TimeCurrent() с временем открытия последнего бара - оно не должно "отставать" больше чем на Period()*60 секунд.

Но тут встает вопрос - "время открытия бара" с какого ТФ проверять?
С того, на котором запущен РеКоннектер? А если "замрет" другой график?
Или со всех доступных? Но, может, они и не нужны?

Думаю, можно сделать список символов/ТФ, которые необходимо проверять и отслеживать только их "замирание".
Что думаете по этому поводу?

 
komposter:

Из того что я слышал про проблему "замирания графиков":
 - связь есть (статусбар зеленый);
 - котировки идут (в "Обзоре рынка" меняется время и цены Бид/Аск всех инструментов);
 - на графике одного или нескольких инструментов перестают появляться новые бары (например, текущее время 16:00 а последний бар на М1 датирован 15:20).

Из этого делаем вывод, что сравнение TimeCurrent() с последним запомненным не поможет (они будут равны только если сделать паузу меньше секунды).
А что сравнивать? Думаю, корректнее всего - TimeCurrent() с временем открытия последнего бара - оно не должно "отставать" больше чем на Period()*60 секунд.

Но тут встает вопрос - "время открытия бара" с какого ТФ проверять?
С того, на котором запущен РеКоннектер? А если "замрет" другой график?
Или со всех доступных? Но, может, они и не нужны?

Думаю, можно сделать список символов/ТФ, которые необходимо проверять и отслеживать только их "замирание".
Что думаете по этому поводу?

Если в меню программы отключить опицию Авто прокрутка  (Меню>Графики>Авто прокрутка), тогда графики действительно сдвигаться не будут .... :)) и программа тут ни виновата....

Вывод: Пользователь не умеет правильно работать с программой. В большинстве случаев такое получается после графического анализа с рисованием различных объектов на графике.... Будьте внимательны и всё будет ОК!!!

PS: И реконнкт в этом случае тоже не поможет.

 
gummybear:

Если в меню программы отключить опицию Авто прокрутка  (Меню>Графики>Авто прокрутка), тогда графики действительно сдвигаться не будут .... :)) и программа тут ни виновата....
Вывод: Пользователь не умеет правильно работать с программой. В большинстве случаев такое получается после графического анализа с рисованием различных объектов на графике.... Будьте внимательны и всё будет ОК!!!

Если бы здесь было ток-шоу "Самый умный", вы бы несомненно победили ;)
gummybear, то что вы не натыкались на проблему, не значит что ее не существует.

У меня, например, тоже такого не было, но из достоверных источников (не от тупых ламеров) было несколько докладов именно об замирании графиков (автопрокрутка включена).

 
getch:
kav:
ктонибудь знает как научить его работать со счетами не в списке Избранное, а в основном окне навигатора?

Попробуйте вместо вызова 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;
}

спасиба Getch

попробую ещё сам сделать ввод нужного счёта и пароля.

 
komposter:
gummybear:

Если в меню программы отключить опицию Авто прокрутка  (Меню>Графики>Авто прокрутка), тогда графики действительно сдвигаться не будут .... :)) и программа тут ни виновата....
Вывод: Пользователь не умеет правильно работать с программой. В большинстве случаев такое получается после графического анализа с рисованием различных объектов на графике.... Будьте внимательны и всё будет ОК!!!

Если бы здесь было ток-шоу "Самый умный", вы бы несомненно победили ;)
gummybear, то что вы не натыкались на проблему, не значит что ее не существует.

У меня, например, тоже такого не было, но из достоверных источников (не от тупых ламеров) было несколько докладов именно об замирании графиков (автопрокрутка включена).

Спасибо. только такие ток-шоу меня не радуют.

по поводу проблемы "замирающих графиков" ( 'Глюк в программе терминала МТ4, или...?' ), ответ уже был дан Renat-ом.

Renat писал(а):
Renat 07.05.2008 12:16 

Уважаемый Gals, Вы скрытые проблемы со скоростью связи пытаетесь перенести на торговый терминал. У Вас не рвется связь, пакеты идут страшно медленно, но Вы вините терминал.


А его винить не надо - он спроектирован специально с контролем связи, автоматическим ее восстановлением и докачкой данных. После реконнекта все данные докачиваются. Но если у Вас все та же связь, то и докачать Вы ничего не сможете.


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

Только стоит добавить: если у вас в терминале выбрано 50 различных инструментов вам будет хватать скорости 1-2 кб в сек (при условии что эти графики уже открыты, т.е. уже есть какая-то история по инструменту)

Да и если вы сами в живую желаете увидеть эту проблему c  "замирающих графиков", проделайте следующее:

1. Выберите все возможные символы

2. скачайте скрипт  ZZ_All Quotings 0-0080.mq4 - Скрипт для закачки истории по всем валютным парам и металлам.  (сейчас 7й сверху тут)

3. Создайте себе медленное соединение с интернетом (например GPRS) либо заполните канал чем-нибудь  (поставьте что-нибудь качать в несколько потоков, P2P)

4. запускайте скрипт.

Обратите внимание на Обзор рынка: 13:00:xx в программе, как секунды прыгать будут.

Результат: некоторые графики у вас зависнут только на некоторое время. Обратите внимание только на некоторое время, и самое правильное решение:

а) подождать

если у Вас такое постоянно повторяется есть еще три варианта

б) сменить провайдера

в) взять более скоростной тариф.

г) во время работы с MT4 не использовать всякие качалки, P2P

 

А от данного Реконнекта в данном случае нет никакого смысла. Сам скрипт интересен, я не спорю вы проделали работу.

 
gummybear:

по поводу проблемы "замирающих графиков" ( 'Глюк в программе терминала МТ4, или...?' ), ответ уже был дан Renat-ом.

Да, я его видел. Но почему-то подумал что реконнект может помочь.
И я бы все-таки попробовал им воспользоваться.

Ситуация, описанная вами, как по мне, отличается от полного замирания. Потому что она решается сама собой. А замирание лечится только перезапуском терминала.

 
// переконнект со сменой сервера брокера
// как известно серверов может быть несколько и порой при смене сервера проблемы по связи отпадают

void start()
{
     int hMetaTrader = GetAncestor(WindowHandle(Symbol(),Period()),2); //дескриптор основного окна терминала
     SendMessageA (hMetaTrader, WM_COMMAND, 37400, 0); // команда пересканировать все серверы
}

В данном примере пере логин получается чуточку проще

 

У кого-нибудь есть такой советник под Metatrader 5?

USD: Сам переписал под МТ5, хотел выложить в CodeBase, но система не пропускает, ругается на вызов dll. Интересно как тогда этот пропустили? Написал модератору.

 
Konstantin Efremov:

У кого-нибудь есть такой советник под Metatrader 5?

USD: Сам переписал под МТ5, хотел выложить в CodeBase, но система не пропускает, ругается на вызов dll. Интересно как тогда этот пропустили? Написал модератору.

Тогда не было автоматической проверки.

Попробуйте зип-архив.

 
Andrey Khatimlianskii:

Тогда не было автоматической проверки.

Попробуйте зип-архив.

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

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