Тестирование и оптимизация советников в MT5 немного отличается от процесса тестирования и оптимизации экспертов в предыдущей торговой платформе МТ4.
Давайте разложим всё по полочкам.
Как тестировать советника в MT5?
Запускаем торговую платформу MetaTrader 5 и в самом верхнем меню нажимаем на «Вид», а затем «Тестер стратегий». Либо жмём комбинацию клавиш Ctrl+R.
Откроется тестер стратегий — в нём и будем производить тестирование наших роботов.
В самой левой верхней вкладке тестера стратегий выбираем «Советник».
Теперь во вкладке рядом справа можно выбрать советник для тестирования и оптимизации — давайте выберем стандартного советника MACD Sample, для примера.
Дальше указываем символ и период графика — пусть у нас символом будет валютная пара GBPUSD, а период графика будет M30.
Нам необходимо выбрать временной интервал. С помощью выпадающего списка выберем, например, «Последний год». Если выпадающий список не трогать и оставить «Выбрать период», то справа можно указать тот интервал какой захотите.
Далее идёт Форвард-период — оставим как есть «No».
Данная опция позволяет проверить результаты оптимизации для исключения подгонки на определённых периодах времени. При форвард-оптимизации период, указанный в поле «Установить дату», делится на две части, в соответствии с выбранным форвард периодом (половина, треть, четверть или собственный период, когда указывается дата начала форвард тестирования).
На первой части периода проводится оптимизация советника. После этого отбираются лучшие прогоны (10% при полном переборе параметров или 25% при генетическом алгоритме), и только они запускаются на форвард-периоде. Результаты лучших прогонов при оптимизации на обоих периодах затем можно сравнить на вкладках «Результаты оптимизации» и «Результаты форвард тестирования».
Следующим пунктом идёт настройка режима торговли. Предусмотрены два режим торговли:
— Обычный режим.
В данном режиме все ордера исполняются по запрошенным ценам, отсутствуют реквоты и т.д.
— Произвольная задержка.
Режим произвольных задержек предусмотрен для тестирования экспертов в условиях, приближенных к реальным. С момента отсылки приказа и до его исполнения цена может измениться. В зависимости от отклонения, установленного в ордере, может произойти его исполнение по текущей цене (если она в пределах отклонения) или реквотирование. Тестирование в данном режиме позволит экспертописателю правильно запрограммировать обработку подобных ситуаций.
Имитация задержки осуществляется для всех торговых запросов, отсылаемых из терминала (выставление ордеров, изменение стоп-уровней, и т.д.). Задержка исполнения осуществляется по следующему принципу: случайным образом выбирается число от 0 до 9, и на такое число секунд осуществляется задержка; если выбранное число равно 9, то случайным образом выбирается еще одно число из такого же диапазона и прибавляется к первому. Таким образом, вероятность задержки исполнения на 0-8 секунд составляет 90%, а вероятность задержки на 9-18 секунд составляет 10%.
Мы оставим тут всё как есть — оставим режим торговли «Обычный».
Справа есть ещё одна вкладка «Режим генерации тиков».
В данном поле можно выбрать один из режимов генерации тиков:
— Все тики: данный режим является наиболее точным, но и наиболее медленным. В нем моделируются все тики;
— OHLC на М1: в данном режиме моделируются лишь 4 цены каждого минутного бара — цены Open, High, Low и Close;
— Только цены открытия: в данном режиме моделируются также цены OHLC, однако для тестирования/оптимизации используется лишь цена открытия.
— Математические вычисления: в данном режиме тестер не будет подкачивать исторические данные, информацию о символах и не будет генерировать тики. Будут вызваны только функции OnInit(), OnTester() и OnDeinit(). Таким образом тестер можно использовать для различных математических вычислений, где требуется подбор параметров.
Мы выберем «Все тики».
Выбираем начальный депозит и кредитное плечо — установим начальный депозит в 10000 долларов, а кредитное плечо выставим равным 1:500.
Далее «Визуализация». Эта опция позволяет включать/выключать режим визуального тестирования. Данный режим не работает при оптимизации советников.
Кто хочет, тестирует с визуализацией — так можно увидеть весь процесс торговли воочию, но я галочку сниму, так как с отключенной визуализацией тестирование идёт гораздо быстрее.
Пункт «Оптимизация» пока не трогаем — рассмотрим его позже, когда будем оптимизировать советника, данный пункт не нужен для обычного тестирования.
Переходим в подвкладку «Параметры» — здесь находятся входные параметры советника. При обычном тестировании можно вручную менять любые его параметры в поле «Значение» — изменили настройки, прогнали в тестере, не понравился тест опять изменили настройки и снова прогнали и т.д.
Поля «Старт», «Шаг» и «Стоп» понадобятся нам тогда, когда мы начнём оптимизировать эксперта.
Ну что? Начинаем тестирование . Попробуем прогнать нашего советника MACD Sample в тестере стратегий со стандартными настройками — возвращаемся в главную вкладку тестера «Настройки» и нажимаем кнопку «Старт».
Вот, что получилось.
Весьма неплохо я скажу — просадка всего 4.59% и график симпотичный, но прибыль то маленькая вышла — 894,61 USD практически за 1 год при депозите в 10000 USD. Будем оптимизировать, попробуем найти вариант получше — лот не будет принимать участие в оптимизации — 0.1 лота оставим.
Можно сохранить на свой компьютер любой отчёт — заходим в подвкладку «Бэктест», где у нас все данные о пройденном тесте отображаются, и кликаем в этом окне правой кнопкой мышки, а затем «Отчет» и выбираем как сохранить отчёт — в HTML или в XML формате.
Как оптимизировать советник в торговом терминале MT5?
Итак, давайте начнём оптимизацию нашего советника.
Переходим в главное окно тестера стратегий и ищем там пункт «Оптимизация» — здесь можно включить/отключить оптимизацию, а также выбрать режим оптимизации. Для примера, сделаем выбор в пользу быстрой оптимизации (генетический алгоритм).
Тут также можно выбрать критерий оптимизации. Критерий оптимизации необходим только для генетического алгоритма.
Доступны следующие критерии оптимизации:
— Максимальный баланс: показателем оптимизированности является максимальное значение баланса;
— Баланс + максимальная прибыльность: показателем является максимальное значение произведения баланса на прибыльность;
— Баланс + максимальное матожидание выигрыша: показателем является произведение баланса на матожидание выигрыша;
— Баланс + минимальная просадка: в данном случае помимо значения баланса учитывается уровень просадки: (100% — Просадка)*Баланс;
— Баланс + максимальный фактор восстановления: показателем является произведение баланса на фактор восстановления;
— Баланс + максимальный коэффициент Шарпа: показателем является произведение баланса на коэффициент Шарпа;
— Пользовательский критерий оптимизации: при выборе данного параметра в качестве критерия оптимизации будет учитываться значение функции OnTester() в советнике. Данный параметр позволяет пользователю использовать любой собственный показатель для оптимизации.
Критерий оптимизации пусть останется Balance max — максимальный баланс.
Переходим в подвкладку тестера стратегий «Параметры» и ставим галочки напротив тех параметров советника, которые хотим включить в оптимизацию.
Далее нужно настроить для каждого оптимизируемого параметра с галочкой «Старт», «Шаг» и «Стоп» — проще говоря, лимит от и до с шагом.
Теперь снова переходим в главное окно тестера и нажимаем на кнопку «Старт» — включаем оптимизацию.
Начался процесс оптимизации.
Переходим в подвкладку «Оптимизация» и наблюдаем — оптимизация может занять довольно-таки продолжительное время, всё зависит от количества оптимизируемых параметров и их стартов, шагов и стопов.
Для удобства наблюдения выставьте Прибыль по убыванию вниз.
Прошло уже около 400 прогонов и есть несколько нормальных профитных вариантов — остановим оптимизатор и прогоним советник с новыми настройками.
Попробуем самый первый вариант в списке. Кликаем по нему правой кнопкой мышки, а затем нажимаем на «Запустить одиночное тестирование».
Получилось не очень , два последних месяца идёт некий спад, что может говорить о том, что скорее всего эти настройки становятся уже неактуальными.
А давайте попробуем, например, третий вариант сверху.
Ну вот — отличный получился график. По сравнению с самым первым тестом со стандартными настройками прибыль стала больше — 1275.02 USD, а максимальная просадка уменьшилась до 2.63%. Это и есть оптимизация.
Понравившиеся настройки можно сохранить в виде специального .set-файла. Переходим в «Параметры», кликаем в данном окне правую кнопку мышки, выбираем «Сохранить», присваиваем файлу название и сохраняем в удобное для Вас место на компьютере.
При желании данный файл можно загрузить в любой терминал МТ5 для искомого советника, когда захотите (для этого есть кнопка «Загрузить» — она видна на скриншоте ниже).
Задавайте свои вопросы, если это необходимо. Успехов!
Как продолжить прерванный тест советника в MT5 после выключения компьютера?
Как поменять лотность входа с 0.01 до 0.10 на советнике Precipice Martin?