MT5 и скорость в боевом исполнении - страница 43

 
Renat Fatkhullin:

Скачал ваши скрипты бенчмарков + пример.

  1. На локальном компе - пустота за 10 минут

  2. На загруженном множеством терминалок виртуализированном VPS хосте за 8 минут

  3. На загруженном множеством терминалок физическом VPS хосте за 8 минут

Спасибо, выглядит круто!

Тесты проводились на полновесном терминале 2630, а рабочие впс терминалы в разы меньше ресурсов тратят и их задержки заведомо ниже.

Использовались рабочие хосты нашего VPS сервиса.

Да вот приходится через WinAPI извращаться, чтобы аппетит десктопного Терминала умерить.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

MT5 и скорость в боевом исполнении

fxsaber, 2020.09.30 21:42

Смотрю, что даже мои теперь вылизанные в производительности боты работают так, что CPU Терминала 15%. А теперь лайфхак!

  • Закрываем Обзор рынка (CTRL+M) - в нем только торгуемые символы.
  • Закрываем таблицу с текущими позами (CTRL+T).
  • Минимизируем все чарты.

Вуаля, CPU Терминала 2.5%! Разгружайте свои VPS. Если у кого-то еще какие действенные рекомендации, дайте знать.


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

 
Renat Fatkhullin:

Укажите имя сервера брокера, пожалуйста

Это не относится к конкретному серверу брокера.
Это относится к выбору замера пинга в вашем предложенном сервисе.
То есть карта иногда предлагает расстояние дальше, чем другого сервера брокера, хотя к примеру оба они находятся в LD4.
Конкретных серверов не назову для сравнения, просто когда перебирал эти сервера, заметил эту особенность.
Вообще лучше был бы список всех локаций, для самостоятельного выбора.
Но на данный момент интересует AMPGlobalEU-Live и его американский сервер.

 
fxsaber:

Спасибо, выглядит круто!

Да вот приходится через WinAPI извращаться, чтобы аппетит десктопного Терминала умерить.

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

Поэтому правильно делаете, что минимизируете и отключаете панели на виртуалках.

В своем сервисе мы вообще половину кода терминалов вырезали и полностью убрали визуализацию. Терминалы стали исполнительными придатками к впс-контроллеру и работают только с ним.

Поэтому ресурсные требования в разы ниже. Все это описано в статьях про VPS сервис.

 
Renat Fatkhullin:

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

Поэтому правильно делаете, что минимизируете и отключаете панели на виртуалках.

В своем сервисе мы вообще половину кода терминалов вырезали и полностью убрали визуализацию. Терминалы стали исполнительными придатками к впс-контроллеру и работают только с ним.

Поэтому ресурсные требования в разы ниже. Все это описано в статьях про VPS сервис.

Такой ещё вопрос возник, по вашим впс.
Есть ли ограничения по работе сокетов в mql программе на ваших впс?
То есть разрешено ли самостоятельно подключатся из mql программы, к OpenAPI брокера, не MQ API.
Или ваши впс поддерживают работу только привязанные к счёту брокера?

 
Roman:

Такой ещё вопрос возник, по вашим впс.
Есть ли ограничения по работе сокетов в mql программе на ваших впс?
То есть разрешено ли самостоятельно подключатся из mql программы, к OpenAPI брокера, не MQ API.
Или ваши впс поддерживают работу только привязанные к счёту брокера?

Ограничений на операции с сокетами нет, кроме обращений к localhost/127.0.0.1

Наследуются разрешения, заданные на вашем терминале.

 
Renat Fatkhullin:

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

Так почему не снепшотить обновление с частотой 20 Гц, тем самым снизив fps? Визуалка же все равно нужна только для человеческих глаз. Не заметит, если будет 200 fps или 20.

Поэтому правильно делаете, что минимизируете и отключаете панели на виртуалках.

К сожалению, чтобы это делать, необходим WinAPI. И до сих пор не научились закрывать окно Обзора рынка и окно Инструменты. Просьба подскаказть, как это сделать через WinAPI.

Маркет-продукты полностью в тормозах на сторонних VPS. Автоматизированную минимизацию не сделать. Определить скрытость от глаз чарта - аналогично. К тому же не заменить тормозной GetMicrosecondsCount на аналог с миллисекундным квантованием. Навязывается грубый GetTickCount  с 16 мс, что чересчур много для снепшот-механизмов торгового окружения.

Ну не для маркетинга своего VPS-сервиса же так ограничиваете? Наверное, пока это не было актуально. Однако, речь зашла уже с замерами и какими-то костыльными решениями.

В своем сервисе мы вообще половину кода терминалов вырезали и полностью убрали визуализацию. Терминалы стали исполнительными придатками к впс-контроллеру и работают только с ним.

Поэтому ресурсные требования в разы ниже. Все это описано в статьях про VPS сервис.

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

Скажите, если запросить тиковую историю по всем символам в Обзоре рынка (скринер), то 128К тиков для каждого символа будет и VPS-сервис хранить в качестве кеша?


Нет же.

bool CopyTicksClearCache( const string Symbol );
чтобы можно было без огромных ресурсов запрашивать только последние тики, дабы забыть про пропуски в OnTick.
 
Roman:

Это не относится к конкретному серверу брокера.
Это относится к выбору замера пинга в вашем предложенном сервисе.
То есть карта иногда предлагает расстояние дальше, чем другого сервера брокера, хотя к примеру оба они находятся в LD4.
Конкретных серверов не назову для сравнения, просто когда перебирал эти сервера, заметил эту особенность.
Вообще лучше был бы список всех локаций, для самостоятельного выбора.
Но на данный момент интересует AMPGlobalEU-Live и его американский сервер.

У AMPGlobalEU-Live c MetaTrader 4 сервером в Лондоне на LD4 показывает пинг 1.73 мс:


А вот AMPGlobalEU-Live (на самом деле его лучше искать как AMPGlobalUSA-Live) для MetaTrader 5 с физическим ядром платформы в Чикаго на самом деле 19.53 мс, так как наши ближайшие серверы в Нью Йорке:

Специально просканил все их точки вручную - минималка 19 мс.

Мы постараемся в ближайшие дни поставить серверы в Чикаго. Руки не доходили.

 
Renat Fatkhullin:

У AMPGlobalEU-Live c MetaTrader 4 сервером в Лондоне на LD4 показывает пинг 1.73 мс:


А вот AMPGlobalEU-Live (на самом деле его лучше искать как AMPGlobalUSA-Live) для MetaTrader 5 с физическим ядром платформы в Чикаго на самом деле 19.53 мс, так как наши ближайшие серверы в Нью Йорке:

Специально просканил все их точки вручную - минималка 19 мс.

Мы постараемся в ближайшие дни поставить серверы в Чикаго. Руки не доходили.

Это я видел всё, и тоже проанализировал ))
Если ставить сервер в Чикаго, ставьте сразу в Авроре, где локация биржи и всех провайдеров.

 

Неоднократно видел ситуации, когда Терминал грузит CPU на 100% настолько, что ни на что не реагирует.

Потом по логам смотрел, что там дикие пропуски тиков в OnTick. Но если написать грамотно советник, то реально, что на результате торговли такое ужасное обстоятельство не скажется. Специально это анализировал, все четко.

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

 
fxsaber:

Так почему не снепшотить обновление с частотой 20 Гц, тем самым снизив fps? Визуалка же все равно нужна только для человеческих глаз. Не заметит, если будет 200 fps или 20.

Потому что набежит толпа пользователей с обвинениями.

Это прям однозначно.

Но при этом мы на самом деле используем небольшие пропуски.


К сожалению, чтобы это делать, необходим WinAPI. И до сих пор не научились закрывать окно Обзора рынка и окно Инструменты. Просьба подскаказть, как это сделать через WinAPI.

MQL5 функция минимизации всех окон и самого приложения - это отличная идея. Проработаем.

Но при этом, если человек пускает самостоятельно терминал на VPS, то тут он сильно будет против того, что у него все резко свернется. Он сам может и должен сворачивать окна, если уходит с RDP сессии.


Маркет-продукты полностью в тормозах на сторонних VPS. Автоматизированную минимизацию не сделать. Определить скрытость от глаз чарта - аналогично. К тому же не заменить тормозной GetMicrosecondsCount на аналог с миллисекундным квантованием. Навязывается грубый GetTickCount  с 16 мс, что чересчур много для снепшот-механизмов торгового окружения.

Похоже, вы ничего не поняли.

Это не GetMicrosecondsCount тормозит, а операционка квантует CPU ресурсы для любого потока вашей придушенной впски. Для любой функции, любого действия, любой программы внутри вашей ВПС.

Ну не может никакой CPU шедулер нарезать честно и распределить ресурсы, когда у него 20 (это еще по божески) операционок по 1500 потоков выполнения в каждой копии. Возьмите 8-16 ядер и распределите их на 20 * 1 500 = 30 000 (тридцать тысяч физических тредов).


А вот для сравнения наш хост VPS со 97 активными терминалами: всего 3 333 треда и всего 205 процессов - вообще системного оверхеда нет


Вот для сравнения мой рабочий компьютер сейчас - кроме броузеров, одной копии МТ5 и нескольких незатратных программ больше ничего нет: 3 876 потоков работают



Получается, что VPS хост с кучей терминалов работает экономнее десктопа. На VPS 8 ядер, а на десктопе 128.