Сравнение скорости тестирования в MetaTrader 4 и MetaTrader 5

 

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

Причем даже для режима "По ценам открытия баров" мы продолжали контролировать срабатывание ордеров при каждом тике, что в результате требовало гораздо больше времени при обработке миллионов промежуточных тиков. Нам справедливо указывали, что из-за такого подхода этот режим тестирования в MetaTrader 5 сильно отставал от аналогичного режима в MetaTrader 4. Это не давало возможности проводить в пятерке быстрые оценочные тесты по ценам открытия баров.

В результате мы приняли решение применить в MetaTrader 5 упрощенный режим тестирования с сохранением механизмов мутивалютного анализа.

Ниже я привожу результаты тестов MetaTrader 4 build 418 и MetaTrader 5 build 617. Это новые версии программ, которые выйдут в эту пятницу.

Условия тестирования:

  • компьютер: Windows 7 x64, RAM 8Gb, i7-2600 3.4Ghz, 8 ядер
  • одинаковые штатные советники Moving Average из поставки терминалов МТ5 и MT4
  • символ EURUSD, H1
  • период тестирования 2011.01.01 - 2011.10.01
  • история одинаковая (MetaQuotes-Demo MT5 и MetaQuotes-Demo MT4 + History Center), в History Center 100% совпадающая минутная история из МТ5
  • депозит 10 000 USD
  • настройки экспертов


Используется полностью идентичная история и полностью одинаковые настройки символов - для этого минутная история инструментов из МТ5(как наиболее точная) скопирована на History Center MT4. Эксперты абсолютно одинаковые и показывают одинаковые по сути результаты операций как в МТ4, так и в МТ5. Количество сделок совпадает, входы/выходы - тоже. Небольшая разница в итоговом профите проявляется из-за того, что в МТ5 происходит точное моделирование спреда, а в МТ4 - спред фиксированный.

Одиночный прогон в разных режимах детализации, время в секундах:

Терминал
Все тики
По ценам открытия
Баланс
MetaTrader 4 build 418
13 сек (12 520 048 тиков)
0.5 сек (10 323 тика)
8515.64
MetaTrader 5 build 617 x64
16 сек (15 515 315 тиков)
0.2 сек (17 971 тиков) 8972.70


Видно, что в режиме моделирования всех тиков время у MT4 и MT5 практически совпадает: 13 сек при 12 млн тиков у МТ4 и 16 сек при 15 млн тиков у MT5. С учетом того, что МТ5 смоделировал и просчитал на 3 млн тиков больше, скоростные характеристики одинаковые:

  • MetaTrader 4: 12 520 048 тиков / 13 секунд = 963 080 тиков в секунду
  • MetaTrader 5: 15 515 315 тиков / 16 секунд = 969 707 тиков в секунду (даже чуть быстрее)

Интересная ситуация с режимом тестирования по ценам открытия. MetaTrader 5 даже при бОльшем количестве сгенерированных тиков смог обогнать MetaTrader 4 в одиночном прогоне. Хотя время в пределах секунды очень малое и тут может играть роль погрешность измерения.


Проведем оптимизацию с указанными выше пределами в настройках. Для того, чтобы уложиться в разумное время, тесты велись на 1 254 прохода в режиме по ценам открытия. MetaTrader 4 использовал одно ядро, а MetaTrader 5 восемь локальных ядер.

Терминал
Время тестирования 1254 проходов по ценам открытия
MetaTrader 4 build 4188 сек
MetaTrader 5 build 617 x6413 сек


Видно, что время тестирования в MetaTrader 5 близкое ко времени MetaTrader 4. Отставание связано с накладными расходами на старт 8 независимых процессов тестерных агентов, перекачкой истории в них и восьмикратной подготовкой рыночного окружения к тестам (генерация тестовой последовательности и тд). У MetaTrader 4 нет внешних тестерных агентов и накладные расходы сведены к минимуму. Да и мультивалютного режима нет, что тоже требует ресурсов и архитектурно гораздо сложнее.

При выборе задач со временем прохода больше долей секунды MetaTrader 5 безусловно вырывается вперед даже в режиме по открытию баров. С применением MQL5 Cloud Network скорость еще больше возрастает.


Это небольшое доказательство скоростных характеристик MetaTrader 5. С субботы новый 617 билд MetaTrader 5 будет доступен через LiveUpdate.
 
Почему не сравнивали с серийным МТ4 416? Или 418 мало чем от 416 отличается по производительности?
 
evillive:
Почему не сравнивали с серийным МТ4 416? Или 418 мало чем от 416 отличается по производительности?

Ниже я привожу результаты тестов MetaTrader 4 build 418 и MetaTrader 5 build 617. Это новые версии программ, которые выйдут в эту пятницу.
 
evillive:
Почему не сравнивали с серийным МТ4 416? Или 418 мало чем от 416 отличается по производительности?
Разницы нет, сейчас уже готов 418, который будет публично доступен в субботу.
 
Очень надеюсь на исправления по крешлогам...