Бэктестинг в MT4 и MT5: данные, режимы и проверяемые допущения

Прибыльный исторический тест может заметно отличаться от реальной торговли из-за данных, допущений об исполнении и выбора параметров. Здесь разбираются режимы MT4/MT5, затраты и проверка на данных, исключенных из соответствующего подбора. Учебные числа не являются результатами реальной стратегии.

Что действительно различается в тестерах MT4 и MT5

Обе платформы запускают советник Expert Advisor на истории. MT5 поддерживает несколько инструментов в одном тесте и распределяет прогоны оптимизации между агентами. Это не означает, что один прогон советника автоматически использует все ядра. У MT4 также есть генетическая оптимизация, однако стандартный тестер не исполняет торговые операции по символам, отличным от выбранного. Сумма отдельных отчетов не воспроизводит общий капитал портфеля.

Зафиксируйте версию терминала, скомпилированный советник, входные параметры, спецификацию символа и условия счета. Данные Download из History Center MT4 могут отличаться от истории торгового сервера брокера. Сам срок истории или название таймфрейма не устанавливает пригодность данных. Контекст: основы MT4 (на английском) и возможности MT5 (на английском).

Много тиков не означает много минут с тиками

До сравнения процентов выясните знаменатель: интервалы времени или отдельные записи. В нашем вымышленном наборе три одинаковые по длительности минуты, для каждой есть минутный бар. Первые две содержат по 10 реальных тиков, третья не содержит реальных тиков, но для нее заданы 80 сгенерированных записей.

Записей 10,10 и 80; реальными тиками покрыты 2 из 3 минут, реальные записи составляют 20 из 100.
Прокрутка: Tab переводит фокус в область, стрелки двигают изображение. Вымышленные полные данные; это не оценка реального поставщика.

Всего 100 записей. Авторское покрытие минут реальными тиками равно 2/3 ≈ 66.67%, доля реальных записей — 20/100 = 20%. Новые записи в уже учтенной минуте меняют второй знаменатель, но не добавляют минуту истории. Проценты не взаимозаменяемы и не устанавливают преимущество стратегии.

Документация MetaQuotes о реальных и сгенерированных тиках описывает генерацию для минуты с баром без доступных тиков. Число 80 вымышлено, не взято из отчета. Обе наши меры отличаются от поля Modelling Quality.

Режим моделирования и полнота истории

В MT4 есть «Только цены открытия», «Контрольные точки» и «Все тики»: они используют барную историю и сгенерированные пути. «Контрольные точки» — грубая предварительная оценка. MT5 дополнительно предлагает реальные тики брокера и режим «1 minute OHLC». Стоп внутри бара может иметь значение даже при дневном сигнале. Упрощение допустимо лишь после проверки совместимости правил с конкретным режимом, а не автоматически начиная с некоторого таймфрейма.

В MT5 для минутного бара без реальных тиков возможна генерация. Спред реальных тиков может меняться внутри минуты; при генерации используется спред соответствующего минутного бара. Проверьте режим, наличие истории младших периодов и журнал. Поле качества MT4 относится к моделированным данным, а не к вероятности будущей прибыли.

Для внешних тиков в MT4 нужен совместимый процесс подготовки: возможны дополнительные программы и файлы тестирования. Импорт HST-баров сам по себе не означает моделирование по реальным тикам. Высокий процент качества не проверяет отбор стратегии, исторические платежи или реальные исполнения. В MT5 отдельно исследуйте покрытие реальными тиками и сгенерированные замены.

Спред, комиссия, финансирование и задержка

Проверьте спред, комиссию, финансирование и доступные настройки задержки для нужного продукта и счета. Стандартный MT4 строит Ask добавлением выбранного спреда к истории Bid. По умолчанию берется текущий спред при начале тестирования, а не полный путь исторического спреда. Для условной пятизначной EUR/USD 12 пунктов по 0.00001 равны 1.2 пипса по 0.0001.

MT5 позволяет использовать комиссии счета или собственные настройки: проверьте вход, выход либо обе стороны и сверьте одну закрытую сделку. Режим прибыли в пипсах исключает комиссию, своп и контроль маржи. Эмуляция задержки задает сценарий между отправкой и исполнением; она не восстанавливает всю живую ликвидность и все цены исполнения. Не применяйте универсальный штраф к каждому выигрышу или убытку вместо условий конкретного теста.

Доступность информации, переобучение и состав выборки

Подглядывание в будущее означает использование информации, недоступной в момент решения. Индекс сдвига 0 обозначает текущий бар, который меняется в ходе моделирования. В 10:15 уже известен достигнутый к этому моменту максимум часового бара 10:00; окончательный максимум всего часа еще неизвестен. Правило по завершенному часу должно дождаться его окончания. Но механическая замена всех 0 на 1 изменит корректное обнаружение нового бара и правила по текущей цене.

Проверяйте временную метку, число скопированных записей и направление индексации. Условный успешный CopyRates вернул четыре закрытия от старого к текущему:100, 101, 102, 103. В динамическом массиве с as_series=false rates[1].close равно 101, а последнее завершенное закрытие rates[2].close равно 102. При as_series=true rates[1].close равно 102. Условие «последнее завершенное закрытие > 101.5» истинно, но ошибочное чтение rates[1] обычного массива его отвергает. Это ошибка определения старого бара, сама по себе не использование будущего. При меньшем числе возвращенных записей нельзя обращаться к массиву так, будто получены все четыре.

Повторный поиск параметров способен отобрать удачный шум — это переобучение. Высокая доля прибыльных сделок, профит-фактор или малая просадка по отдельности его не доказывают. Смещение выживших возникает, когда из исторической совокупности исключены тогда доступные инструменты или счета, исчезнувшие позже. Восстанавливайте состав на каждую дату; универсальной подтвержденной прибавки 30–50% к результатам нет.

Отчет и последовательная проверка на следующих периодах

Читайте чистый результат, количество сделок, просадку и затраты вместе. В отдельной условной модели счета в PLN начальные 10000 и закрытая прибыль 500 дают баланс 10500. Открытый убыток 700 оставляет средства 9800 до других платежей и изменений. Один баланс скрывает эту открытую экспозицию. Порог профит-фактора или Sharpe не сертифицирует стратегию. Сохраняйте отчеты и журналы, исследуйте чувствительность и действительно отдельные данные оценки.

При скользящем форвард-анализе параметры выбирают на предыдущем окне, фиксируют и проверяют на следующем. Сопоставляйте годовые доходности на единой основе и последовательность сделок вне обучающей выборки. Один WFE не доказывает устойчивость или подгонку; нулевая и отрицательная доходность подбора затрудняют отношение. Процедура: скользящий форвард-анализ (на английском). Данные проверки исключают из соответствующего поиска параметров, но результат остается симуляцией, не подтвержденной будущей торговлей.

Когда нужны другие инструменты

Тестер оценивает записанные в коде правила в заданной модели данных и исполнения. Для дискреционных решений сначала нужны фиксируемые критерии и протокол воспроизведения; такие решения не становятся автоматически непроверяемыми. Выбирайте другой инструмент, если нужные входы или механизм исполнения не представимы, и сверяйтесь с его текущей документацией и условиями данных. Сравнение Forex Tester (на английском) относится к другому процессу воспроизведения. Общая методология исторического теста и раздел практики дополняют настройку платформы.

Равные часы тестера проверяют UTC-фильтр?

В тестере MT5 TimeGMT равен моделируемому TimeTradeServer. Их сравнение в одном тесте не восстанавливает историческое смещение сервера относительно UTC. Укажите каждую шкалу времени и проверяйте преобразование на явных входах. Постоянное «минус два часа» не документирует изменения серверного времени.

12:00 UTC соответствует 14:00 при заданном UTC+2; фильтр 12:00–13:00 относится к UTC.
Условный фильтр допускает 12:00 включительно и исключает 13:00 UTC. Заданное смещение +2 относится только к этому примеру.

Решение в 12:00 UTC попадает в окно. Тот же момент при заданном UTC+2 читается как 14:00; ошибочное принятие 14:00 за UTC отвергнет его. Отдельно проверяйте точную конечную границу, смену даты и каждое изменение смещения в фактическом документированном расписании.

Упражнение: доказывают ли равные функции времени одинаковую работу фильтра в реальной торговле? Нет: это равенство внутри симуляции. Нужны явный UTC, документированное смещение на выбранную дату и проверки границ. Имя функции не устанавливает часовой пояс брокера.

Проверьте экспорт перед следующим прогоном

Подготовьте пять столбцов timestamp,open,high,low,close с явными смещениями времени. В исходной локальной проверке покрытия CSV (на английском) задайте первое и последнее ожидаемое открытие бара и интервал. В синтетическом примере M1 от 08:00 до 08:11 двенадцать строк, но восемь различных допустимых временных меток: четыре пустые позиции, две повторные строки и одна группа конфликтующих OHLC. Сохраните отчет, затем исследуйте пробелы относительно торговых сессий продукта. Полнота OHLC не означает полноту реальных тиков; проверка не вставляет цены и не проверяет модель исполнения тестера.

Одинаковые OHLC не задают первый достигнутый уровень

Дополнительный полностью вымышленный случай показывает, почему одинаковые OHLC не задают порядок исполнения внутри бара. Одна единица условного инструмента куплена по 100 USD в начале бара; обычный стоп задан 95 USD, цель 105 USD. Для учебного счета заранее предполагаем точное исполнение по первому достигнутому уровню, без разрывов, комиссий и задержки. Оба пути имеют открытие 100, максимум 110, минимум 90 и закрытие 100. Путь A: 100 → 110 → 90 → 100 сначала пересекает 105 и дает результат от цены +5 USD. Путь B: 100 → 90 → 110 → 100 сначала пересекает 95 и дает −5 USD. После первого выхода позиция закрыта; второе пересечение не создает еще одну сделку. Разность результатов 10 USD возникает при одних OHLC. Эти два заданных пути не восстанавливают действительные тики и не утверждают, как конкретный тестер исполнит заявку. Если правило зависит от порядка внутри бара, одной OHLC-записи недостаточно, чтобы выбрать один из этих исходов.

Что подготовить к следующему тесту

  1. Выберите документированный набор для нужного продукта и дат. В MT4 проверьте барную историю, модель и внешнюю подготовку FXT, если она применяется. В MT5 исследуйте реальные тики и сгенерированные замены. Архивируйте поставщика, часовой пояс, пропуски и настройки; имя режима не подтверждает пригодность.
  2. Задайте документированные спред, комиссии, финансирование и доступную задержку вашей среды. Проверьте менее благоприятные условия; фиксированные 7 USD и штрафы в пипсах не универсальны.
  3. Если стратегии подходит такое деление, используйте четыре года подбора и следующий год для проверки неизменных параметров. Сопоставляйте годовые результаты на одной основе. WFE < 0.5 сам по себе не диагноз подгонки: важны размер выборки, режимы рынка, расходы и отдельная финальная оценка.
  4. Проверьте момент доступности каждого значения цены и индикатора. Переходите от 0 к завершенному бару только там, где это требуется правилом; сравните времена сигналов и сделки. Изменение результата на 30% само по себе не доказывает подглядывание в будущее.

Исходные данные и календарь публикаций

В отдельном исследовании разобраны 2560 публикаций EUR/USD, 49 будних дней без публикации и независимо проверенный календарь TARGET: календарь справочного курса ЕЦБ за 2016–2025 годы, данные, график и код. Отсутствие публикации не равнозначно пробелу котировок. Эта ссылка не означает повторного выполнения исследования в текущем руководстве.

Проверьте понимание

В третьей минуте нашего набора генератор добавил еще записи. Что осталось неизменным?

Ответ и объяснения без JavaScript

Правильный ответ: Покрытие минут реальными тиками осталось 2/3.

Доля реальных записей по-прежнему 20%.

Новые сгенерированные записи увеличивают знаменатель доли записей, а числитель реальных остается 20. Поэтому исходные 20% не сохраняются.

Покрытие минут реальными тиками осталось 2/3.

Ни одной новой минуты с реальными тиками не добавилось. Эта авторская мера считает минуты, а не записи.

Покрытие минут стало 100%, ведь у каждой записи есть цена.

Сгенерированная цена не меняет происхождение данных. В третьей минуте по-прежнему нет реальных тиков.

Вопросы и ответы

Чем качество моделирования 99% отличается от 90% в MT4?

Поле MT4 относится к моделированию тиков по доступной истории, а не к доле правильных прогнозов или будущей прибыли. Показатель 99% внешней программы требует проверки ее данных и подготовки. Смотрите внутрибарные допущения, стороны котировки и затраты; универсальной границы по таймфрейму нет. В MT5 режим реальных тиков также требует проверки покрытия: для минутных баров без тиков возможна генерация.

Как настроить тестер MT5 по шагам?

Откройте Strategy Tester, выберите скомпилированный советник и сохраните параметры и версию терминала. Задайте символ, период, даты, депозит, валюту, модель счета и маржу. Выберите подходящий правилам и истории режим тиков, проверьте комиссию, своп и задержку. Сначала выполните один прогон без оптимизации, сверьте отдельные операции и сохраните отчет и журнал. Универсального минимума в пять лет и фиксированной длительности загрузки нет.

Как избежать подглядывания в будущее в MQL5?

Проверяйте, доступно ли значение на момент моделируемого решения. Сдвиг 0 может законно содержать текущие значения формирующегося бара, а не его будущий итог. Правило по завершенному бару требует завершенного наблюдения и проверки времени. CopyRates start_pos и индекс целевого массива — разные понятия: проверьте as_series, фактически возвращенное число и временные метки. Разница демо и теста сама по себе не устанавливает утечку.

Когда нужен ручной, а когда автоматический тест?

Ручное воспроизведение позволяет записать дискреционные критерии и спорные случаи, но повторный просмотр может использовать знание последующих цен. Код воспроизводит заданные правила при контроле данных, версий, настроек и случайности. Тысячи сделок не создают статистической независимости и не доказывают значимость. Сравнивайте методы на одних записанных сигналах и допущениях исполнения; универсальной нормы 100 сделок, рабочих часов или успеха механических систем нет.

Источники и пределы применения

  1. MetaTrader5: историческое тестирование

    Свежий выборочный разбор 29 октября 2026: агенты и прогоны, настройки, комиссии и задержка; режим прибыли в пипсах исключает комиссию, своп и контроль маржи. Не подтверждение качества реальных исполнений.

  2. MQL5: ограничения и данные тестера

    Проверены ограничения внешних функций и разделы о спреде, реальных тиках и замене данных. Это описание платформы, не доказательство прибыльности стратегии.

  3. MetaTrader4: тестирование стратегий

    Официальная вводная страница. Ее блок о новом мультиактивном тестере относится к новой платформе; не переносим его на стандартный MT4.

  4. Dukascopy: экспорт исторических данных

    Проверено описание экспорта цен, форматов и периодов. Файлы не скачивались и не проверялись; источник не подтверждает универсальную дату начала или 99% качества любого теста.

  5. MetaTrader4: параметры тестера

    Проверены генетическая оптимизация, FXT/HST, режимы моделирования и выбранный спред для построения Ask. Название режима не удостоверяет историю.

  6. MQL4: работа программы в тестере

    Стандартный тестер не выполняет торговые операции по другим символам и перечисленные внешние коммуникационные функции. Это ограничение платформы.

  7. MQL5: CopyRates

    Сдвиг текущего бара, физический порядок копирования, возвращенное число и незавершенная загрузка. Примеры индексов в статье — логические модели, не запуск MQL5.

  8. MQL5: TimeGMT

    В тестере функция равна моделируемому TimeTradeServer. Равенство не предоставляет исторического расписания часового пояса брокера.

  9. MetaTrader5: реальные и сгенерированные тики

    Проверены изменяемый спред реальных тиков, спред минутного бара для генерации и заполнение минуты с баром без доступных тиков. Число 80 в статье придумано для расчета.

  10. MetaTrader4: History Center

    Дополнение к исходной библиографии: загруженная история может отличаться от истории сервера брокера; импорт баров не подтверждает подлинность тиков.

  11. MQL5: ArraySetAsSeries

    Дополнение: флаг меняет направление логической индексации динамического массива; статические и многомерные массивы имеют ограничения. Код платформы здесь не выполнялся.

Учебное руководство по документации MT4/MT5 без привязки русского языка к резидентству. Цены, количество записей, времена и результаты модельных сделок вымышлены. Терминалы, реальные стратегии и данные поставщика здесь не запускались и не измерялись.