Скачать MetaTrader 5

Как уменьшить тормоза MT4 под VPS?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Авторизуйся на MQL5.community с помощью OpenID. Это удобно!
hrenfx
3672
hrenfx 2013.05.20 11:37 

Ребята, столкнулся (давно уже) с проблемой жутких GUI-тормозов MT4 под VPS. Например, логи отображаются иногда с задержкой в минуту-другую. Вызов и изменение настроек запущенного советника - десятки секунд.

В итоге все сводится к тому, что запускаю и практически ничего не трогаю. Оперативно вмешаться нереально (вспоминается тупой вариант удаленного управления советником через технические отложки).

Валить на производительность VPS не могу, т.к. любые вычислительные бенчи летают также, как и на локальной. Захожу на VPS через RDP.

Чем меньше советников запущено, тем быстрее GUI отзывается. Тормозит только MT4, остальные параллельно-запущенные приложения работают штатно.

Если советники убираю полностью, GUI перестает лагать.

Интересно, что даже при жутких тормозах, часики в MarketWatch идут исправно.

Сами советники исключительно зацикленные. На каждой итерации много обращений к истории. Частота торговых приказов ~ 2-3Гц.

Тормоза наблюдаются даже с одним запущенным советником. Но когда их несколько - ступор почти полный.

Количество баров в окне и в истории < 5000. Самих чартов < 10. Объекты не используются совсем. Comment используется очень активно. Print - средне.

Количество ордеров в истории > 1000 (ограничиваю днем-неделей).  Но к истории ордеров через MQL4 не обращаюсь. Текущих ордеров иногда > 100 (постоянно опрашиваю).

Понять бы, что в какой мере влияет на тормоза. Если это постоянное обращение к массивам истории - одно. Если много торговых приказов - другое.

Возможно, имеет смысл какие-то расчеты перенести в DLL. Но сам MQL4 справляется с вычислениями на ура - больше десятка итераций в секунду. Да и на работу других приложений не влияет. Процессоры разные многоядерные, памяти 1-4Gb.

Сам терминал в памяти сжирает ~ 30Mb. 

А главное, на локальной машине все очень быстро работет. На ней заставить GUI хоть немного притормаживать не получается.

Раньше тормозов на VPS, вроде, не было. Точно не припомню, когда это стало происходить. Может, дело в новых build. Все описал для MT4 build 482. 

Прошу, дайте дельные рекомендации. Отказаться пока полностью от MT4 нет возможности.

Heroix
1257
Heroix 2013.05.20 11:52  
Закгрузка ЦП при этом, в среднем, >90%?
hrenfx
3672
hrenfx 2013.05.20 11:55  
CPU < 30%.
Heroix
1257
Heroix 2013.05.20 12:10  

Хм, в этом случае х3.

Можно предположить, что влияет Comment, обычно эта функция грузит у меня МТ в цикле, попробуйте для начала закомментить участок кода с ней и посмотреть на результат.

Документация по MQL5: Общие функции / Comment
Документация по MQL5: Общие функции / Comment
  • www.mql5.com
Общие функции / Comment - Документация по MQL5
Alexander Laur
7692
Alexander Laur 2013.05.20 12:35  

На чем сказываются задержки? На отправке торговых приказов или исполнении заявок?

Если на испонении  заявок, то я тоже с этим сталкиваюсь. Бывает, что одиночная заявка исполняется секунд 10 - 15. И это на счете ЕСН. Да и на форуме Альпов подымали вопросы с задержками исполнения ордеров. Они приводили логи своего сервера, где исполнение было быстрое.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
Heroix
1257
Heroix 2013.05.20 12:46  
papaklass:

На чем сказываются задержки? На отправке торговых приказов или исполнении заявок?

Если на испонении  заявок, то я тоже с этим сталкиваюсь. Бывает, что одиночная заявка исполняется секунд 10 - 15. И это на счете ЕСН. Да и на форуме Альпов подымали вопросы с задержками исполнения ордеров. Они приводили логи своего сервера, где исполнение было быстрое.

У человека тормозит GUI, что не понятного? Читайте первое предложение.
Andrei
2388
Andrei 2013.05.20 12:48  
Можно попробовать всё распечатки буферизовать в стринговый массив и периодически вываливать в файл с минимумом использования GUI.
Rustamzhan Salidzhanov
7685
Rustamzhan Salidzhanov 2013.05.20 13:05  

Убрать Commеnt() - это самая тяжелая функция он заставляет полностью перерисовать окно. Перейти на 451 билд пока. Поставить анвир и посмотреть количество GDI и USER объектов, ошибок страницы. 

Heroix
1257
Heroix 2013.05.20 13:18  

hrenfx если выявите, что это действительно Comment, поставьте перед ней условие на Comment не чаще, чем раз в 40 мс. Ваш глаз все-равно быстрее не увидит, но это высвободит ресурсы - проверено.

Хотя, в вашем случае, можно и 500 мс поставить - 2 Гц это позволяют, если я правильно понимаю о влиянии скорости ваших алгоритмов.

Alexander Bereznyak
21477
Alexander Bereznyak 2013.05.20 13:25  

Если используете внутренний учет ордеров через динамические массивы, то очень сильно тормозит функция ArrayResize().

Вместо комментов попробуйте использовать графический объект типа OBJ_TEXT.

Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Основы языка / Типы данных / Объект динамического массива - Документация по MQL5
o_o
Модератор
23695
o_o 2013.05.20 13:27  
sandex:

Вместо комментов попробуйте использовать графический объект типа OBJ_TEXT.

плохой совет.
1234
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий