Большинство мультивалютных советников представляют из себя портфель независимых (по логике торговых сигналов) друг от друга ТС, где если связь и есть, то за счет ММ - все ТС оказывают влияние на общие показатели Balance/Equity.
Суммарное время на бэктест каждой ТС в отдельности заметно ниже, чем бэктест портфеля этих ТС. Поэтому для независимых ТС портфель можно создать через искусственное объединение одиночных прогонов каждой ТС в один проход. Но такое решение невозможно оптимизировать.
Apart-режим бэктеста.
При этом через мультивалютное виртуальное окружение такое возможно сделать - Apart-режим.
На картинке входные параметры советника, исходный код которого ниже.
#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006 #define VIRTUAL_TESTER_MULTI // Запуск в виртуальном торговом окружении OnTickMulti #define VIRTUAL_LIMITS_TP_SLIPPAGE // Лимитники и TP исполняются по первой цене акцепта - положительные проскальзывания #define VIRTUAL_CLOSEALL_BYEND // Закрывает принудительно все ордера в конце тестирования #define VIRTUAL_ALTERNATIVE // Альтернативная скорость расчетов #include <fxsaber\OnTickMulti\OnTickMulti.mqh> // https://www.mql5.com/ru/code/47647 #define REPORT_TESTER // В тестере будут автоматически записываться отчеты #define REPORT_BROWSER // Создание отчета с запуском браузера - требует разрешения DLL. #include <Report.mqh> // https://www.mql5.com/ru/code/18801 double OnTester() { return(TesterStatistics(STAT_PROFIT)); } // Сюда прописываем советник. #include "EA.mq4" // https://www.mql5.com/ru/blogs/post/756829
Производительность.
Сделал замеры для двух символов.
Конфигурация | Длительность |
---|---|
MT5-Tester only | 0:00:05.475 |
MT5-Tester + VirtualTester Classic | 0:00:03.508 |
MT5-Tester + VirtualTester Apart | 0:00:02.140 |
В такой конфигурации Apart-режим быстрее MT5-Tester в 2.5 раза.
Подопытный советник.
Исходник советника прикреплен. Это чужой советник, который подправлен с учетом обхода одной слабой стороны MQL. Иначе ускорение было бы еще более значительным.
Также прикреплен соответствующий EX5 (компиляция исходника выше) для MT5-Тестера.
Ссылка на блог автора.