Бэктестинг в MT4 и MT5 — практическое руководство на 2026 год
Крис закончил свой первый советник в январе 2024 года. Он запустил Strategy Tester с настройками по умолчанию и наблюдал, как кривая капитала за три года поднимается с 10 000 до 47 000 евро при доле прибыльных сделок в 78 процентов. Через пять месяцев на его реальном счёте оставалось 7200 евро. Разрыв между бэктестом и реальностью возник из-за трёх ошибок мастерской: плохих данных, нереалистичных параметров и единственного прогона оптимизации вместо walk-forward.
Strategy Tester в MT4 и MT5 — в чём реальная разница
Strategy Tester прогоняет советник по истории на обеих платформах, но именно механика решает, можно ли доверять результату. MT4 однопоточный: пятилетний бэктест на M15 занимает от двух до десяти минут, а оптимизация по сотням комбинаций может растянуться более чем на двое суток. MT5 распределяет работу по ядрам и нативно справляется с мультивалютными тестами — портфель из трёх мажоров в MT4 считается последовательно, а в MT5 параллельно. Второе отличие — данные: MT4 берёт историю из History Center (обычно на два-три года назад), MT5 загружает тиковые данные брокера. Для M30 и выше это не драматично; для скальпера на M5 — пропасть. Базовый контекст — в материалах основы MT4 и почему MT5 выигрывает.
Режимы моделирования и качество исторических данных
Strategy Tester предлагает три уровня моделирования свечей. Только цены открытия использует лишь цену открытия — быстро, но бесполезно для внутридневной торговли. Контрольные точки восстанавливают High и Low путём интерполяции с меньшего таймфрейма, с потолком в 90 процентов качества моделирования в MT4. Все тики в MT4 строят путь внутри каждой свечи из оболочки OHLC; режим MT5 «Каждый тик на основе реальных тиков» читает историю тиков брокера — это единственный режим, дающий достоверный результат ниже H1.
Банк Dukascopy в Женеве бесплатно предоставляет историю тиков с 2003 года для большинства основных пар, индексов и сырьевых товаров. Вы получаете её через JForex Historical Data Downloader и конвертируете в формат HST для MT4 с помощью бесплатного FX Blue Quant Data Manager или платного Tickstory (от 30 до 50 USD). Качество моделирования тогда подскакивает до 99 процентов. В MT5 вы выбираете режим «Каждый тик на основе реальных тиков»; без тиковых данных брокера MT5 откатывается к синтетическому режиму, и бэктест становится таким же сомнительным, как MT4 на настройках по умолчанию.
Параметры симуляции — спред, комиссия, swap, проскальзывание
По умолчанию Strategy Tester исходит из текущего спреда и нулевой комиссии, а для скальпинга это разница между мнимым плюсом и реальным минусом. Установите спред так, чтобы он совпадал с вашим реальным счётом (от 0,8 до 1,5 pip на EUR/USD у ECN-брокера, пессимистично — умноженный на 1,5). Комиссия ECN обычно составляет 7 USD за лот; без неё стратегия, зарабатывающая пять pip, показывает профит-фактор 1,6 в бэктесте и 0,9 в реальной жизни. Swap (плата за перенос позиции) по позициям, удерживаемым от двух до семи дней, может съесть от 20 до 30 процентов годовой прибыли. Проскальзывание не симулируется, хотя пять-двадцать pip во время NFP — обычное дело; реалистичная поправка добавляет 1,5 pip к каждому убытку и вычитает 1 pip из каждой прибыли.
Три ловушки, которые губят бэктест
Look-ahead bias — это непреднамеренное использование информации, недоступной в момент принятия решения; в MQL4/MQL5 он чаще всего появляется при обращении к текущей свече с индексом ноль. Эта свеча ещё формируется, поэтому бэктест знает её итоговые High и Low, а живой трейдер нет. Правило: каждое чтение использует индекс 1 или выше. О стороне программирования — в нашем введении в советники.
Переобучение — это следствие чрезмерной оптимизации: трейдер прогоняет Strategy Tester по тысяче комбинаций, выбирает лучшую и любуется кривой, которая выглядит неправдоподобно гладкой, а на деле подогнана под шум. Тревожные признаки: просадка ниже 5 процентов, профит-фактор выше 3,5, доля прибыльных сделок больше 75 процентов на 200 сделках, кривая капитала без коррекций длиннее двух недель. Вместе взятые — это сигнал тревоги. Survivorship bias означает тестирование только тех пар, что дожили до сегодняшнего дня; портфель экзотических пар, проверенный лишь на тех, что «всё ещё котируются брокером», может приукрасить результат на 30–50 процентов (USD/TRY после 2018 года и EUR/CHF после января 2015 года — поучительные примеры).
Чтение отчёта и walk-forward как противоядие от подгонки
Обе платформы формируют отчёты из восьми-десяти метрик, и большинство трейдеров смотрят на три: чистую прибыль, долю прибыльных сделок и просадку. Этого мало. Профит-фактор выше 1,5 — приличный, выше 2 — отличный, выше 3,5 — подозрительный. Sharpe около 1,0 приемлем, от 1,5 до 2,5 очень хорош, выше 3 — проверьте на подгонку под кривую. Максимальная внутридневная просадка должна оставаться ниже 25 процентов. Количество сделок — минимум 100, в идеале 500. Качество моделирования — 99 процентов.
Walk-forward — это методология, которую Роберт Пардо изложил в своей классической книге 2008 года и которая по сей день остаётся стандартом в систематических фондах. Разделите историю на in-sample (четыре года) и out-of-sample (один год), оптимизируйте параметры только на in-sample, прогоните стратегию с замороженными параметрами по out-of-sample, сдвиньте окно вперёд на год и повторите. Агрегированный результат OOS лучше всего приближает реальный счёт. WFE (доходность OOS, делённая на доходность IS) выше 0,5 говорит о надёжной стратегии, от 0,3 до 0,5 — об умеренной подгонке под кривую, ниже 0,3 — о льстивом отражении эго трейдера. Механику по шагам смотрите в материале walk-forward анализ.
«Весь смысл walk-forward анализа в том, чтобы выявить поведение торговой стратегии в реальном времени и на реальные деньги, не торгуя при этом реальными деньгами в реальном времени». — Роберт Пардо, The Evaluation and Optimization of Trading Strategies, Wiley, 2008
Пределы MT4/MT5 и когда стоит браться за другие инструменты
У Strategy Tester есть встроенные ограничения: упрощённая модель исполнения, оптимизатор MT4, который буксует на нескольких сотнях комбинаций, отчёты без анализа устойчивости параметров и без Монте-Карло. Для дискреционных стратегий по price action Strategy Tester может быть бесполезен, потому что такие правила нельзя полностью выразить в виде кода. Когда MT4/MT5 не справляется, вы берётесь за Forex Tester 5 (около 300 USD) или Python с backtrader. Платформонезависимая методология описана в нашем материале о том, как правильно тестировать стратегию на истории; более широкий контекст — в мастерской трейдера на ForexMechanics.
Что сделать завтра
- Загрузите тиковые данные из Dukascopy по EUR/USD за последние пять лет и импортируйте их в MT4 через FX Blue Quant Data Manager или Tickstory; в MT5 выберите режим «Каждый тик на основе реальных тиков» и убедитесь, что брокер предоставляет историю тиков — без этого шага любой дальнейший внутридневной бэктест будет статистической фикцией.
- Откройте свой советник в Strategy Tester, введите спред, совпадающий с вашим реальным счётом (обычно 1,2 pip на EUR/USD у ECN-брокера), добавьте комиссию 7 USD за лот и штраф за проскальзывание в 1,5 pip на каждый убыток и 1 pip на каждую прибыль, затем запустите единичный бэктест за пять лет и сравните с предыдущим результатом.
- Разделите пять лет на четыре года in-sample плюс один год out-of-sample, оптимизируйте параметры только на окне in-sample, заморозьте лучший набор и запустите единичный бэктест на out-of-sample; если WFE опускается ниже 0,5, стратегия подогнана под кривую и требует более простой логики, а не ещё одного раунда оптимизации.
- Просмотрите исходный код советника на предмет каждого вызова iCustom, iHigh, iLow, CopyClose или CopyRates с индексом ноль, замените его на индекс 1 и снова запустите бэктест; любое расхождение больше 30 процентов означает, что стратегия жила на look-ahead bias и логику входа нужно переписать.
Источники и библиография
-
MetaQuotes MetaTrader 5 — Testing Trading Strategies · oficjalna pomoc MT5: tryby modelowania, parametry symulacji, optymalizacja www.metatrader5.com ↗
-
MetaQuotes MQL5 Reference — Testing Trading Strategies · dokumentacja MQL5: tryby ticków, ograniczenia funkcji testera www.mql5.com ↗
-
MetaQuotes MetaTrader 4 — Strategy Testing · oficjalna pomoc MT4: modeling quality, raporty Strategy Tester www.metatrader4.com ↗
-
Dukascopy Bank SA Historical Data Export · darmowe dane tickowe od 2003 r. dla 99 procent modeling quality www.dukascopy.com ↗
Часто спрашивают
Чем качество моделирования 99 процентов отличается от 90 процентов в MT4?
Качество моделирования — это процент, который показывается в правом верхнем углу отчёта Strategy Tester в MT4; он отражает, насколько точно симулятор воспроизвёл движение цены внутри каждой свечи. 90 процентов — это максимум, достижимый на данных по умолчанию, загруженных от брокера через History Center: MT4 интерполирует внутренность свечи по четырём точкам (Open-High-Low-Close), поэтому бэктест на M15 предполагает некий путь внутри свечи, который он никогда не проверяет. 99 процентов требуют настоящих тиковых данных, импортированных из внешнего источника — обычно это бесплатный API Dukascopy или платный Tickstory. Разница на практике колоссальна: скальпинговая стратегия с целью в пять pip (пунктов) может показать 70 процентов прибыльных сделок и 30 процентов годовой доходности на данных 90 процентов, но за тот же период при качестве 99 процентов доля прибыльных сделок падает до 52 процентов, а кривая выходит в горизонталь. Причина проста — отсутствие тикового движения внутри свечи скрывает тот момент, когда стоп-лосс сработал бы раньше, чем цена успела бы развернуться обратно к цели. Правило большого пальца: если ваша стратегия работает на M30 и выше с тейк-профитами больше 30 pip, разрыв между 90 и 99 не критичен. Если вы скальпите или торгуете ниже M15, всё, что меньше 99 процентов, — это фикция. MT5 полностью обходит эту проблему режимом «Каждый тик на основе реальных тиков», при условии что брокер предоставляет историю тиков, — а большинство солидных ECN-брокеров её предоставляют.
Как настроить Strategy Tester в MT5 по шагам?
Это последовательность, которой стоит следовать каждый раз, чтобы ни одна настройка не осталась незаметно пропущенной. Шаг первый: откройте Strategy Tester сочетанием Ctrl+R или через Вид → Тестер стратегий. Шаг второй: в поле «Эксперт» выберите советник, скомпилированный в файл .ex5. Шаг третий: выберите символ из списка — в идеале тот же, которым вы торгуете на демо- или реальном счёте. Шаг четвёртый: задайте таймфрейм, идентичный тому, на котором стратегия работает в боевом режиме. Шаг пятый: определите диапазон дат. Минимум пять лет, лучше десять — достаточно долгий, чтобы включить хотя бы одну бычью фазу, одну коррекцию и одно кризисное событие (март 2020, февраль 2022 и октябрь 2023 — полезные ориентиры). Шаг шестой: выберите модель симуляции — «Каждый тик на основе реальных тиков» для достоверного результата, «Каждый тик» для более быстрых итераций, «1 минута OHLC» только для первого перебора параметров. Шаг седьмой: начальный депозит и валюта, совпадающие с вашим реальным счётом. Шаг восьмой: кредитное плечо — крайне важно, чтобы оно совпадало с боевыми настройками (1:30 для розничного трейдера из ЕС, 1:500, если у вас статус опытного клиента). Шаг девятый: на вкладке «Настройки» установите «Оптимизация» в положение «Отключена» для единичного прогона, «Медленный полный перебор» для первой итерации walk-forward, «Быстрый генетический алгоритм» для больших пространств параметров. Шаг десятый: нажмите «Старт» и наблюдайте. Когда MT5 впервые загружает историю, это может занять от двух до двадцати минут в зависимости от длины периода и числа инструментов. По завершении вам доступны вкладка «Бэктест» (кривая капитала), вкладка «Сделки» (список ордеров) и вкладка «График» (динамика баланса). Экспортируйте отчёт в HTML через правый клик → «Сохранить как отчёт» и заархивируйте его в папке проекта стратегии.
Что такое look-ahead bias и как избежать его в MQL5?
Look-ahead bias (подглядывание в будущее) — это непреднамеренное использование в коде стратегии информации, которая не была бы доступна в момент принятия решения. В MQL5 он, как правило, всплывает в трёх местах. Первое: обращение к текущей, ещё не закрытой свече с индексом 0 вместо 1 в вызовах iCustom и аналогичных. Свеча с индексом 0 ещё формируется — её High, Low и Close меняются от тика к тику, поэтому условие входа, основанное на этих значениях, использует в бэктесте итоговые значения свечи, тогда как трейдер в реальной торговле увидит их лишь через пятнадцать или тридцать минут. Второе: использование iHigh(symbol, period, 0) или iLow(symbol, period, 0) при расчёте стоп-лосса — бэктест знает полный экстремум свечи, а живой трейдер нет. Третье: синхронизация данных с нескольких таймфреймов без проверки того, что свеча H4 закрылась раньше свечи M15, на которой стратегия входит. Обнаружение: если ваша кривая капитала подозрительно гладкая (просадка ниже 5 процентов, профит-фактор выше 3,5, доля прибыльных сделок больше 75 процентов на 200 сделках), поставьте тот же советник на демо-счёт на месяц. Разрыв в результатах в 50 процентов почти всегда указывает на look-ahead bias где-то в коде. Исправление: всегда читайте индикаторы и историю цен по индексу 1 или выше (закрытая свеча), проверяйте условия выхода через CopyClose или CopyRates с явными аргументами времени закрытия и контролируйте синхронизацию таймфреймов через SymbolInfoInteger(symbol, SYMBOL_TIME).
Ручной или автоматический бэктестинг — что имеет смысл?
У обоих есть своя роль, но на разных этапах работы. Ручной бэктестинг (пошаговое прохождение бар за баром в инструменте воспроизведения вроде TradingView Bar Replay или функции пошагового режима в MT5) — это правильный инструмент для дискреционных трейдеров, которые работают по price action и либо не могут, либо не хотят формализовать свои правила в виде кода. Он развивает чувство волатильности, ритма рынка и того момента, когда сетап начинает выглядеть привлекательно. Минусы — субъективность, нулевая воспроизводимость (повторный проход по тому же периоду даёт другой результат) и большие затраты времени: двести сделок на M15 занимают от тридцати до пятидесяти часов кропотливой работы. Автоматический бэктестинг через Strategy Tester требует, чтобы стратегия существовала в виде советника — каждое правило входа, выхода и управления риском должно быть выражено математически, без места для «чутья». Зато вы получаете воспроизводимость (одинаковые результаты каждый раз на одних и тех же данных), статистическую значимость (5000 сделок за один вечер) и объективные метрики. Минус в том, что он не способен уловить дискреционную оценку графических паттернов, поэтому интуитивные стратегии по price action проскальзывают сквозь эту сеть. Золотой путь — начать с ручного бэктеста на сто сделок, чтобы понять рынок и собственный подход. Если результат обнадёживает, формализуйте правила в советник и прогоните его через автоматический Strategy Tester с walk-forward — именно этот шаг отделяет настоящую интуицию от подогнанных под кривую воспоминаний. Чистая интуиция проигрывает механической системе примерно в девяноста процентах случаев на годовой реальной выборке.