Демосчета, бэктестинг, форвардное тестирование и воспроизведение рынка

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

Учебная сцена об инструментах и зависимостях, не доходности или рекомендации сделки.
Главное за 60 секунд
  • Тест без описания среды невозможно проверить. Инструмент, период, источник и качество данных, модель тиков, модель издержек, разделение на обучающую и независимую выборки — без этого результат остаётся числом без единицы измерения
  • Бэктест без издержек описывает другую систему, чем та, по которой вы собираетесь торговать. В расчёте ниже одна и та же серия сделок даёт +12 000 USD без издержек и ровно 0 USD после учёта спреда, комиссии и проскальзывания
  • Оптимизация — это поиск, а не подтверждение. Лучший набор из тысячи попыток оказался лучшим на этой истории: число проверенных вариантов относится к результату так же, как сам результат
  • Скользящее тестирование (walk-forward) работает лишь до тех пор, пока независимая выборка остаётся нетронутой. Если после просмотра результата на независимой выборке вы меняете стратегию, для всех последующих итераций этот участок перестаёт быть независимым
  • Заглядывание в будущее проникает незаметно: через вход по цене закрытия свечи, сформировавшей сигнал, через индикатор с пересчётом прошлых значений или через макроданные в пересмотренной версии
  • Демо и бумажная торговля не проверяют исполнение. Они проверяют механику и соблюдение правил. Какие издержки исполнения воспроизводит демосервер, решает брокер; это нужно выяснять по документации конкретного счёта. Остальное измеряется только на счёте с реальным капиталом и только для того размера позиции, при котором проводилось измерение
  • Положительный форвардный тест ничего не гарантирует. Он подтверждает, что правила выдержали участок ранее неизвестных данных. Он не подтверждает, что они выдержат следующий рыночный режим

1. Демо, бумажная торговля, бэктест, форвардный тест, воспроизведение, реальная торговля — шесть разных вопросов

Большинство недоразумений вокруг тестирования возникает из-за одного мысленного сокращения: «Я проверил стратегию». Где и в каком отношении? Эти среды не являются последовательными ступенями единой шкалы точности. Они измеряют разные вещи.

Демосчёт — счёт на сервере брокера с виртуальными средствами. Котировки обычно поступают из того же потока, что и на реальном счёте, но исполнение имитируется демосервером по упрощённым правилам. Их определяет брокер, а не платформа; они могут различаться между типами счетов. Поэтому любое утверждение о том, чего «демо не воспроизводит», справедливо лишь после проверки документации конкретного счёта, а не как универсальное правило (пункт 16 библиографии показывает пример такого описания у одного поставщика). Модели исполнения и обработка потока заявок брокером рассмотрены в разделе о выборе брокера.

Бумажная торговля (paper trading) — запись решений без отправки заявок брокеру для реального исполнения. Исполнение назначает таблица, скрипт или эмулятор в графической среде. Это различие часто пропускают, хотя оно важно: если виртуальные заявки исполняет эмулятор, цену входа определяют его правила, а не рынок. Бумажная торговля проверяет логику решений. Она не проверяет качество исполнения, если правила эмулятора отдельно не описаны и не обоснованы.

Бэктест воспроизводит правила на исторических данных. Он отвечает на условный вопрос: что получилось бы, если бы данные, модель тиков и модель издержек соответствовали реальности. Качество ответа не превосходит качество допущений.

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

Воспроизведение рынка (market replay) проигрывает историю со скрытым будущим и позволяет принимать решения вручную. Это средство тренировки дискреционных стратегий, а не аналог счёта с реальным капиталом.

Реальный счёт — единственная среда, в которой измеряются фактические издержки исполнения: проскальзывание, расширение спреда, отклонённые заявки и частичное исполнение.

Шесть сред тестирования и вопросы, на которые они отвечают
СредаНа какой вопрос отвечаетЧего не определяетКто задаёт условия
ДемосчётУмеете ли вы пользоваться платформой и не зависает ли автоматическая система при обычной работеИздержки исполнения и поведение при низкой ликвидностиБрокер (демосервер)
Бумажная торговляМожете ли вы последовательно соблюдать собственные правилаЦену исполнения: её назначает эмулятор или принятое вами условиеВы или эмулятор инструмента
БэктестЧто получилось бы на данной истории при явно заданных допущенияхБудущее, издержки исполнения и достоверность допущенийАвтор теста (данные, модель тиков, издержки)
Форвардный тестВыдержали ли правила участок данных, которого не видел оптимизаторСледующий рыночный режим; малую выборку он не исправляетРазделение данных или течение времени
Воспроизведение рынкаРаспознаёте ли вы ситуации по порядку, не заглядывая вправоИздержки исполнения и давление реального убыткаАвтор сеанса воспроизведения
Реальный счёт (минимальная экспозиция)Сколько фактически стоит исполнение при таком размере позицииИздержки исполнения при существенно большем размереБрокер и состояние рынка
Модель EUR/USD демо 0.10 лота с защитными уровнями.
Виртуальная сделка проверяет работу, не реальное исполнение и затраты.
Одно предложение о границах темы. В этой статье описана процедура валидации: данные, издержки, разделение выборки и воспроизводимость. Имеет ли логика экономический смысл и как статистически измерить преимущество, объясняет раздел о стратегиях. Размер позиции и лимиты риска определяет раздел об управлении рисками. Здесь они принимаются как входные параметры теста.

2. Что не измеряют демо и бумажная торговля

Демосчёт иногда называют «реальной торговлей без денег». Это неверно по нескольким конкретным, проверяемым пунктам. В таблице перечислены элементы, которые могут отсутствовать на демосервере или моделироваться упрощённо; каждый из них напрямую влияет на результат при переходе к реальному капиталу. Столбец «На демо» описывает типичные упрощения, а не обязательное для всех брокеров правило: объём моделирования задаёт поставщик счёта, и он может различаться даже между типами счетов одного брокера.

Элементы исполнения: демосчёт и счёт с реальным капиталом
ЭлементНа демоНа реальном счёте
ПроскальзываниеУ многих брокеров отсутствует или моделируется фиксированной величиной; объём моделирования задаёт поставщик счётаПеременное, зависит от момента и ликвидности; сильнее всего при публикации данных и открытии сессий
Расширение спредаЧасто фиксированный или слабо меняющийся спредСпред расширяется при низкой ликвидности и событиях; на демо этот профиль обычно сглажен
Отклонение заявок и реквотыРедки или отсутствуютЗависят от модели исполнения и типа счёта: это свойство брокера, а не платформы
Частичное исполнениеОбычно полное исполнениеВозможно при большом объёме и недостаточной ликвидности; для микропозиций обычно несущественно
Доступная ликвидностьДемосервер обычно не отказывает; сама возможность отказа зависит от правил конкретного поставщикаОграниченна; в экзотических парах и вне сессий может исчезнуть на вашем ценовом уровне
Ценовые разрывы (гэп)Иногда воспроизводятся иначе, чем на реальном счётеСтоп-лосс внутри гэпа действует как рыночная заявка: исполнение по первой доступной цене, а не по уровню стопа
Психологическая значимостьНулевая: убыток не имеет последствийРеальная; влияет на то, выполните ли вы план вообще
Как проверить условия своего счёта вместо предположений. Правила демосервера иногда описаны в документации брокера, и тогда гадать не нужно. Пример одного поставщика, а не отраслевое правило: в справочной статье от 29 мая 2026 года IG пишет о своём демосчёте, что демосделки не подвержены проскальзыванию, процентным и дивидендным корректировкам или движению цен вне торговых часов, а заявки никогда не отклоняются из-за объёма или цены, хотя на реальном счёте такой отказ возможен (пункт 16 библиографии, дата обращения 22.08.2026). Это описание только демосчёта IG. У другого брокера моделирование может быть уже или шире: в документации своего счёта ищите слова slippage, requote, rejection и partial fill. Если документация молчит, правильная запись в описании теста — «неизвестно», а не «ноль».

Последняя строка способна превратить разумный план в импровизацию, но это не тема данной статьи. Механизм поведения под давлением описан в статье о процессе и результате. Здесь нас интересует измеримая часть — издержки исполнения.

Условная покупка EUR/USD: 1.1000 и исполнение 1.1003 дают 3 пипса против трейдера.
Один возможный пример: демо у поставщика, реальные заявки не всегда проскальзывают.

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

Минимальная экспозиция измеряет проскальзывание для минимальной экспозиции. Проскальзывание, измеренное на 0,01 лота, относится к 0,01 лота. Перенос на позицию в сто раз больше — допущение, а не измерение; это нужно явно указать в описании теста. Иначе вывод незаметно расширяется за пределы данных, на которых он основан.

Показательный случай: 3 января 2019 года, резкое движение иены. При низкой ликвидности азиатской сессии пары с иеной за считаные минуты совершили резкий скачок; эпизод описан в отдельной вставке отчёта центрального банка Австралии (пункт 12 библиографии, дата обращения 22.08.2026). По отчёту, в 9:36 утра AEDT примерно за 30 секунд и без существенных новостей иена укрепилась на 3 процента к доллару США, а разница между bid и ask выросла примерно с 2 пипсов до 100–300 пипсов. Для этой статьи важны ещё два утверждения той же вставки: рыночная ликвидность была сезонно низкой для этого времени суток и года, а розничные брокеры автоматически закрывают позиции стоп-заявками при превышении установленного убытка. Значит, в этом окне сработал именно механизм, издержки которого тестер воспроизводит лишь в пределах выбранного режима моделирования. В упрощённых режимах он не воспроизводит их вовсе, исполняя по записанной в заявке цене; см. подраздел об исполнении отложенных ордеров. Размах движения и цены исполнения различались у поставщиков данных и брокеров, поэтому единственного «истинного» числа пипсов здесь нет и оно не приводится. Для тестирования вывод ограничен и конкретен: модель с фиксированным спредом и нулевым проскальзыванием вообще не воспроизводит такие окна, а стратегии с тесным стопом наиболее к ним чувствительны. Сам ход события и рыночный фон рассматривает раздел о сессиях и часах торговли.

Пустые объёмы стакана с условными котировками.
Стакан не представляет весь децентрализованный FX.

3. Из чего состоит результат бэктеста: данные, модель тиков, модель издержек

Результат тестера зависит от трёх вещей, которые пользователь может выбрать неосознанно: загруженных данных, способа восстановления движения внутри свечи и того, что добавлено к каждой сделке.

Модель генерации тиков

Документация MetaTrader 5 перечисляет пять режимов тестера: Все тики (Every tick), Все тики на основе реальных тиков (Every tick based on real ticks), OHLC на 1 минуте, Только цены открытия (Open prices only) и Математические вычисления (Math calculations). Здесь важнее всего различие между первым и вторым. В режиме «Все тики» тики алгоритмически генерируются из минутных данных. В режиме «Все тики на основе реальных тиков» используются тики, собранные брокером, то есть запись одного конкретного потока, а не полная реконструкция рынка. OHLC на 1 минуте моделирует четыре цены за минуту, «Только цены открытия» запускает логику при открытии свечи, а режим «Математические вычисления» вообще не загружает историю и предназначен для оптимизации математических функций. Названия и порядок режимов подтверждает страница настроек тестера (пункт 2 библиографии, дата обращения 22.08.2026). Режимы иногда меняются вместе с версией терминала, поэтому перед использованием проверьте справку именно своей версии.

Выбор реальных тиков, однако, не означает, что в тесте не появится ни одного вычисленного тика. Документация явно описывает резервное поведение: если в истории есть минутная свеча без тиковых данных, тестер генерирует тики в режиме «Все тики». Если же минутной свечи нет, но соответствующие тики за минуту есть, эти тики игнорируются (пункт 1 библиографии, дата обращения 22.08.2026). То есть при пробелах или несогласованности архива брокера часть прогона воспроизводится модельными тиками, причём отчёт не отмечает эти участки отдельно. Та же страница указывает, что при реальных тиках спред может меняться внутри минутной свечи, а для сгенерированных используется спред, зафиксированный в этой свече. Поэтому режим данных меняет не только траекторию цены, но и модель спреда.

Практическое следствие простое и неудобное. Если правило зависит от порядка касания максимума и минимума внутри свечи, а от него зависит любая стратегия с одновременно действующими стопом и целью, тест на тиках из минутных данных угадывает этот порядок. Это свойство модели, а не ошибка программы. В MetaTrader 4 тестер отдельно показывает покрытие историческими данными, но и там движение внутри свечи вычисляется, а не считывается из реального потока. Документация описывает три режима моделирования: «Только цены открытия», «Контрольные точки» и «Все тики»; последний использует для генерации не только ближайший меньший таймфрейм, но и все доступные ближайшие таймфреймы. При отсутствии данных меньшего таймфрейма тестер применяет готовые волновые шаблоны (пункт 14 библиографии, дата обращения 22.08.2026). Полоса качества моделирования показывает фактически использованный таймфрейм: чем он меньше, тем меньше предположений о траектории цены. Доступность реальных тиков и глубина истории зависят от брокера и срока их хранения.

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

Как тестер исполняет отложенные ордера

Модель тиков определяет, какие цены тестер вообще увидит. Отдельный слой допущений — что он делает с этими ценами при наличии отложенного ордера. Эта настройка часто незаметна, и её приходится искать в документации инструмента. Здесь скрыты два отдельных вопроса; правильный расчёт получается только после их разделения: когда исполняется ордер и по какой цене. В тестере MetaTrader 5 ответ на второй вопрос зависит от двух независимых осей: вида инструмента и режима моделирования данных. Смешав их, легко применить верную цитату из документации там, где она не действует.

Задержка. Эмуляция задержки в тестере MetaTrader 5 относится к размещению ордера советником, а не к последующему исполнению на сервере: если советник использует отложенные ордера, задерживается только их размещение; в реальности исполнение происходит на сервере без сетевой задержки (пункт 2 библиографии, дата обращения 22.08.2026). Поэтому исполнение уже размещённого ордера в тесте не получает сетевую задержку — обоснованно, поскольку в реальности её тоже нет.

Первая ось: вид инструмента. Отсутствие задержки не означает исполнение по указанному уровню. Документация сначала разделяет инструменты: рассматриваемые здесь внебиржевые FX/CFD относятся к небиржевым; биржевые валютные контракты — другая категория. Для небиржевых инструментов все виды отложенных ордеров и SL/TP срабатывают по Bid и Ask, а исполнение происходит по текущим рыночным Bid и Ask в момент срабатывания (пункт 13 библиографии, раздел «Срабатывание и исполнение ордеров» (Order Triggering and Execution), первый абзац, дата обращения 22.08.2026). Значит, все отложенные ордера, включая лимитные, а также стоп-лосс и тейк-профит исполняются по текущему bid или ask в момент срабатывания, а не по записанному уровню. Для лимитного ордера благоприятное отклонение от заданной цены является улучшением цены, а не разрешением исполнять за лимитом в неблагоприятную сторону.

Утверждение об исполнении лимитного ордера без проскальзывания относится к биржевым инструментам. Следующий абзац того же раздела отдельно описывает акции и биржевые контракты с иными правилами: графики строятся и стоп-ордера срабатывают по цене последней сделки (Last), лимитные ордера срабатывают по Bid и Ask. Лимитные исполняются по указанной цене без проскальзывания, а другие типы — по текущим рыночным Bid и Ask с возможным проскальзыванием (пункт 13, второй абзац того же раздела, та же дата обращения). Эту фразу иногда выдают за общее правило тестера. Ошибка здесь в границах применимости, а не в цитате: «лимит без проскальзывания» относится к биржевому инструменту. Для небиржевого FX-символа действует предыдущий абзац; биржевой валютный контракт подчиняется биржевым правилам.

Вторая ось: режим моделирования. Вид инструмента определяет поведение точных режимов — «Все тики» и «Все тики на основе реальных тиков». Режим моделирования — отдельная ось; в упрощённых режимах он полностью отключает это правило. В режимах «Только цены открытия» и «OHLC на 1 минуте» отложенные ордера, SL и TP исполняются по указанным в них ценам: алгоритм рыночного исполнения точных режимов, всех и реальных тиков, не подходит для менее точных режимов (пункт 13, та же дата обращения). Поставщик объясняет причину и вывод: в некоторых режимах промежуточные тики не генерируются, поэтому разница между запрошенной ценой и текущей Open или OHLC может быть значительной; исполнение по запрошенной цене в режимах «Только цены открытия» и «OHLC на 1 минуте» даёт более точный результат. Логика обратна интуитивной: упрощённый режим не знает рыночной цены после срабатывания и исполняет по записанной цене, поскольку исполнение по открытию следующей свечи дало бы большую ошибку, чем по уровню.

Если совместить обе оси. Для небиржевого FX-символа в тестере MetaTrader 5 получаются две разные среды исполнения, которые легко перепутать: отчёт выглядит одинаково.

  • Точные режимы («Все тики», «Все тики на основе реальных тиков») — каждый отложенный ордер, SL и TP исполняются по текущему bid или ask в момент срабатывания. Проскальзывание моделируется только в пределах воспроизведённой траектории: сгенерированной из минутных данных или взятой из тикового архива брокера
  • Упрощённые режимы (OHLC на 1 минуте, «Только цены открытия») — каждый отложенный ордер, SL и TP исполняются точно по указанной в нём цене. Проскальзывание полностью исчезает из расчёта сразу для всех типов ордеров

Механизм упрощения различен для двух типов заявок, хотя результат направлен одинаково. После срабатывания стоп-ордер ведёт себя как рыночный: реальная цена исполнения — первая доступная после пересечения уровня, а не сам уровень. Исполнение по уровню в упрощённом режиме убирает из расчёта всю стоимость скачка и завышает результат. Лимитный ордер — покупка ниже рынка или продажа выше; исполнение по заданному уровню предполагает достаточную ликвидность для всей позиции именно там, хотя касание цены её не гарантирует. На бирже важна и очередь; для внебиржевых FX/CFD действуют правила поставщика. Тестер не моделирует ни очередь, ни доступный объём на уровне: ему известна лишь траектория цены. Оба упрощения работают в пользу результата, но попадают в расчёт лишь в соответствующем режиме.

Отдельное условие — сторона рынка: уровень касается ряд цен, соответствующий направлению заявки, то есть покупка реагирует на ask, продажа — на bid. Тест по одному ряду, обычно bid, восстанавливает вторую сторону добавлением спреда. Документация MQL5 отмечает, что при тестировании спред не моделируется, а берётся из исторических данных (пункт 3 библиографии, дата обращения 22.08.2026). Поэтому момент срабатывания зависит от записанного в данных спреда, а не от того, который был бы на вашем счёте. Важна и плотность траектории: страница о тиках предупреждает, что стоп-уровни и отложенные ордера могут срабатывать по отличной от заданной цене, особенно при тестировании на старших таймфреймах (пункт 1 библиографии).

Что это значит при чтении отчёта. Отчёт тестера не указывает, какая из этих сред его породила: нужно смотреть настройки прогона. Одни правила в точном и упрощённом режимах дадут разные расчёты из-за иного правила исполнения, а не вычислительной точности. Особенно чувствительны стратегии с малой средней сделкой и тесным стопом: убранная стоимость скачка составляет значительную долю результата. Поэтому правило исполнения отложенных ордеров относится к описанию среды наравне с моделью тиков и издержек. Если отчёт его не раскрывает, проверьте документацию инструмента. Контрольная проверка недорога: повторите прогон в точном режиме, затем ещё раз ухудшите исполнение примерно на среднее проскальзывание и оцените остаток результата.

Модель издержек

К каждой сделке добавляются четыре составляющие с разными единицами; смешивать их нельзя:

  • Спред — в пипсах или пунктах. Главный вопрос: используется фиксированный спред, исторический спред из данных или текущий на момент запуска теста? Три ответа дают три результата. Для тестера MetaTrader 5 ответ дан в приведённой документации, для других инструментов его нужно искать в описании конкретного тестера
  • Комиссия — в валюте счёта, обычно за лот и за сторону. Для сравнения со спредом переведите её в пипсы через стоимость пипса для данного инструмента и объёма
  • Своп-пункты — плата за перенос через смену расчётного дня с тройным начислением в выбранный день недели. Для внутридневной стратегии она несущественна, а для позиционной иногда превышает спред
  • Проскальзывание — в пипсах или пунктах, разница между запрошенной ценой и исполнением. В тестере оно возникает лишь там, где это допускает правило исполнения: в точных режимах MetaTrader 5 на валютной паре распространяется на все отложенные ордера, SL и TP, а в режимах OHLC на 1 минуте и «Только цены открытия» вообще не учитывается: исполнение идёт по ценам, записанным в ордерах (пункт 13 библиографии)

Задержки намеренно нет в списке, хотя её иногда добавляют пятым пунктом. Она измеряется в миллисекундах, а не в пипсах, и не прибавляется к сделке. Это параметр модели исполнения, влияющий на то, какая цена будет использована, а не на то, сколько будет вычтено. Тестер MetaTrader 5 позволяет эмулировать её в режимах «Без задержки» (No delay) и «Случайная задержка» (Random delay), а также с фиксированной задержкой. Как показано в подразделе об отложенных ордерах, эмуляция относится к размещению ордера советником, а не к исполнению уже размещённого ордера (пункт 2 библиографии). Смешение этих величин в одной строке расчёта — ошибка единиц измерения, а не округления.

Нужно разделять и две похожие ошибки. Сетевая задержка, измеренная командой ping до сервера, — не время исполнения заявки: между ними находятся проверка брокером, очередь и само исполнение. Инфраструктуру, виртуальные серверы и непрерывную работу автоматической системы разбирает статья об автоматизации, советниках и VPS; здесь важно явно задать задержку в тесте, а не молча считать её нулевой.

Качество самих данных

Прежде чем результат приобретёт смысл, нужно проверить данные: пробелы и разрывы ряда, дубликаты, выбросы, хронологию, часовой пояс и летнее время, метку свечи — открытие или закрытие, — а также основу ряда: bid, ask или среднюю цену. Последнее часто игнорируют, хотя от него зависит само касание уровня: короткая позиция закрывается по ask, а свеча на bid может вообще не показать цену, вызвавшую стоп.

4. Идеальный, но нереалистичный бэктест: анатомия красивой кривой

Красивый результат тестера чаще возникает не из одного большого обмана, а из четырёх небольших поблажек, по отдельности кажущихся безобидными. Ниже каждая из них и способ обнаружения.

Первая поблажка: вход по цене, которую нельзя было знать

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

Проверка чувствительности, а не вердикт: сдвиньте вход на одну свечу и повторите прогон. Если результат исчезнет, установлено только то, что система не выдерживает сдвиг входа на один период. Утечка из будущего — одно из объяснений, но сигнал также может быть краткосрочным или чувствительным к цене исполнения. Решает аудит доступности каждой переменной в момент решения. Полная процедура и границы её выводов приведены во вставке в конце раздела о заглядывании в будущее.

Вторая поблажка: отсутствие издержек

Тест без спреда, комиссии и проскальзывания — другая система с иными математическим ожиданием и порогом прибыльности, а не упрощённая версия исходной. Величину сдвига можно рассчитать; это показывает следующий раздел.

Третья поблажка: один набор из тысячи попыток

Оптимизатор выдаёт рейтинг. Если взять верхнюю строку и представить её как результат стратегии, будет скрыто число проверенных вариантов. При достаточно большом количестве попыток лучший результат оказывается высоким из-за одной статистики поиска, даже у бессмысленных правил. Формальное описание этого явления дано в пункте 8 библиографии. Число проверенных вариантов относится к описанию результата так же, как период и издержки.

Четвёртая поблажка: оценка на данных подбора

Если параметры выбирались на том же периоде, по которому затем показывается результат, валидации нет: есть описание подгонки. Эту ошибку проще всего обнаружить: достаточно спросить, какой участок использовался для настройки, а какой — исключительно для оценки.

Четыре поблажки в одном расчёте: что осталось от красивой кривой

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

Допущения расчёта (иллюстративные величины, а не результат проведённого теста).
Среда та же, что в расчёте раздела «Чувствительность к издержкам»: EUR/USD, позиция 1,00 стандартного лота, стоимость пипса 10,00 USD, валюта счёта USD.
Данные: 36 месяцев минутных котировок одного брокера; из них 24 месяца обучающей и 12 месяцев независимой выборки. Граница фиксируется до настройки.
Сделок на обучающей выборке: 1 000; на независимой около 500, поскольку при той же частоте торговли период проверки вдвое короче. Денежный столбец нормирует каждую строку до 1 000 сделок для сопоставимости: в четвёртой строке это нормированная величина, а не сумма, которая пришлась бы на саму независимую выборку. Проверено вариантов параметров: 1 200.
Стоимость полного оборота в принятом примере: спред 0,30 + комиссия 0,70 + проскальзывание 0,20 = 1,20 пипса. Это не измеренные и не типичные рыночные значения: они подобраны для проверки расчёта в уме.
Своп-пункты: ноль, поскольку пример явно предполагает внутридневную стратегию с закрытием всех позиций до смены расчётного дня. При переносе через ролловер эта строка перестаёт быть нулевой и добавляется отдельно.
Ни одна из этих величин не получена реальным прогоном тестера. Это конструкция, показывающая направление и порядок влияния каждой поблажки. Её можно проверить калькулятором, но она не заменяет собственный тест.
Одни правила после последовательного устранения поблажек (иллюстративные величины)
ШагЧто устраняетсяРезультат
(пипсов/сделку)
1 000 сделок
(USD, 1 лот)
0. Отчёт оптимизатораничего: вход на закрытии сигнальной свечи, нулевые издержки, вершина рейтинга, оценка на периоде настройки+2,60+26 000
1. Реально исполнимый входзаглядывание в будущее: вход перенесён на открытие следующей свечи+1,20+12 000
2. Добавлены издержкидопущение о нулевом спреде, комиссии и проскальзывании0,000
3. Без привилегии вершины рейтингамедиана 1 200 вариантов вместо лучшего, тот же период и издержки−0,45−4 500
4. Оценка вне периода настройкитот же зафиксированный набор параметров на независимых данных−0,30−3 000

Как проверить каждую строку. Денежный столбец — результат в пипсах, умноженный на 10,00 USD и на 1 000 сделок. Шаги 0, 1 и 2 относятся к одному набору параметров, из которого убирается по одному допущению; вычитание идёт по вертикали: 2,60 − 1,40 = 1,20 и 1,20 − 1,20 = 0,00. Шаги 3 и 4 — не дальнейшее вычитание, а ответы на два разных вопроса к тому же результату. Поэтому они рассчитываются отдельно, а не добавляются к шагу 2.

Шаг 1 убирает 1,40 пипса: часть движения сигнальной свечи, которую правило присвоило, входя по цене, известной лишь при её закрытии. Неслучайно остаётся ровно 1,20 пипса до издержек: чувствительность той же системы подробно разобрана в следующем разделе. Шаг 2 показывает итог этой чувствительности: после добавления 1,20 пипса полной стоимости оборота результат обнуляется до цента.

Шаг 3 показывает разрыв между выбранным результатом и медианой проверенных вариантов. Вершина рейтинга из 1 200 вариантов — максимум из 1 200 значений. Её преимущество над медианой, здесь 0,45 пипса на сделку, иллюстрирует отбор, но само по себе не измеряет переобучение. Отрицательная медиана всего рейтинга тоже не доказывает, что выбранная точка — узкий пик: проверяйте её окрестность и независимые данные. Шаг 4 оценивает тот же зафиксированный набор на 12 месяцах, которых оптимизатор не видел, и даёт −0,30 пипса на сделку.

В этом условном расчёте устранение трёх из четырёх поблажек превратило +26 000 USD в −3 000 USD в пересчёте на те же 1 000 сделок, без изменения единого правила стратегии. Четвёртая поблажка — привилегия показывать вершину рейтинга — в четвёртой строке сохранена: на независимых данных работает тот же зафиксированный набор. Его разрыв с медианой показан отдельно в третьей строке, отвечающей на другой вопрос. Изменились лишь допущения о моменте входа, стоимости сделки, допустимом к показу варианте и данных для оценки.

Модель IS и изменчивой OOS после фиксации правил.
Спад не неизбежен: важны независимость, устойчивость, реалистичные затраты.
Почему фраза «проверил на двадцати восьми парах, работает на четырёх» не аргумент. При достаточно большом числе параллельных попыток некоторые оказываются удачными случайно. Выбрать их задним числом и представить областью применения стратегии — отбор по результату, а не вывод теста. Этот механизм как смещение при поиске закономерностей в данных (data mining bias) описывает пункт 9 библиографии. Честная запись: проверено 28 инструментов, показаны все, четыре дали положительный результат. Кроме того, пары с одной валютой котировки не являются независимыми выборками. Учёт этой зависимости объясняет статья о корреляции и портфельном риске.
Условная корреляция EUR/USD, GBP/USD и AUD/USD.
В каждом лонге шорт USD; меняющаяся корреляция не гарантирует хедж.

5. Чувствительность к издержкам: пошаговый расчёт

Здесь большинство стратегий перестаёт существовать. Следующий расчёт — не результат проведённого теста, а конструкция с явными допущениями, проверяемая калькулятором. Именно поэтому она подходит для объяснения механизма: происхождение каждого числа прослеживается.

Допущения расчёта (иллюстративные величины, а не результат теста).
Инструмент: EUR/USD, 1 пипс = 0,0001 цены. Валюта счёта: USD.
Объём позиции: 1,00 стандартного лота, то есть номинал 100 000 EUR. Стоимость пипса = 100 000 × 0,0001 = 10,00 USD (для EUR/USD валюта котировки — USD, поэтому стоимость пипса фиксирована в валюте счёта).
Распределение результатов до издержек: 1 000 сделок, из них 600 прибыльных по +8,00 пипса и 400 убыточных по −9,00 пипса.
Общая прибыль до издержек: 600 × 8,00 − 400 × 9,00 = 4 800 − 3 600 = 1 200 пипсов, то есть 1,20 пипса на сделку.
Профит-фактор до издержек = 4 800 / 3 600 = 1,33 (сумма валовых прибылей, делённая на модуль суммы валовых убытков).
Издержки рассчитаны на полный оборот — вход и выход вместе — и прибавляются к каждой сделке.
Пересчёт комиссии в пипсы: 3,50 USD за лот за сторону даёт 7,00 USD за оборот, то есть 7,00 / 10,00 = 0,70 пипса. Ставка зависит от брокера и типа счёта; здесь это допущение, а не измерение.
Своп-пункты: ноль, и это допущение, а не измерение. Внутридневной пример не предполагает переноса через смену расчётного дня. Если бы перенос был, в столбец издержек понадобилась бы отдельная строка; с тройным начислением в выбранный день недели она может превышать спред.
Ни одно число таблицы не получено прогоном тестера или измерением на счёте. Все величины иллюстративные и показывают лишь то, как быстро издержки поглощают небольшое преимущество на сделку.
Влияние модели издержек на те же 1 000 сделок (иллюстративные величины)
Модель издержекСпред
(пипсов)
Комиссия
(пипсов)
Проскальзывание
(пипсов)
Общие издержки
(пипсов)
Чистый результат
(пипсов/сделку)
Чистый профит-
фактор
1 000 сделок
(USD, 1 лот)
Без издержек0,000,000,000,00+1,201,33+12 000
Только спред0,300,000,000,30+0,901,24+9 000
Спред и комиссия0,300,700,001,00+0,201,05+2 000
Спред, комиссия, проскальзывание0,300,700,201,200,001,000
Условия хуже принятых0,600,700,501,80−0,600,86−6 000

Как проверить каждую строку. Столбец «Общие издержки» — сумма трёх столбцов слева. «Чистый результат» — 1,20 пипса минус общие издержки. Денежный столбец — чистый результат, умноженный на 10,00 USD и на 1 000 сделок. Чистый профит-фактор рассчитывается из того же распределения с вычетом издержек из каждой сделки. Например, при издержках 1,20 пипса прибыль сделки падает с 8,00 до 6,80 пипса, а убыток растёт с 9,00 до 10,20 пипса: 600 × 6,80 = 4 080 пипсов прибыли и 400 × 10,20 = 4 080 пипсов убытка, то есть профит-фактор ровно 1,00. Общие издержки строки — 1 000 × 1,20 = 1 200 пипсов — равны всей валовой прибыли, поэтому итог обнуляется до цента.

Накопленный итог 1000 сделок по модели затрат (условно) +12000 +8000 +4000 0 −4000 −8000 0 250 500 750 1000 Число сделок Итог USD; EUR/USD 1.00 лота, пипс 10.00 USD затраты 0.00 → +12000 затраты 0.30 → +9000 затраты 1.00 → +2000 затраты 1.20 → 0 затраты 1.80 → −6000
Пять раз один набор из 1 000 сделок и пять моделей полной стоимости оборота в пипсах. При издержках 1,20 пипса линия совпадает с нулевой осью: вся валовая прибыль уходит на издержки. Иллюстративные значения рассчитаны по допущениям над таблицей.

Запомните две величины. Между третьей и четвёртой строками всего 0,20 пипса проскальзывания, но 2 000 USD итоговой разницы. Между тестом без издержек и тестом с принятой здесь стоимостью — переход от прибыльной системы к неприбыльной, а не малая поправка. Реалистичны ли 1,20 пипса для вашей стратегии, определяют только измерения на вашем счёте; здесь число подобрано для расчёта, а не взято с рынка. Чем меньше средний валовой результат сделки и выше частота торговли, тем резче переход. Для позиционной стратегии со средним результатом в несколько десятков пипсов такая смена стоимости несущественна. Поэтому чувствительность рассчитывают для своей стратегии, а не заимствуют из чужого примера.

6. Заглядывание в будущее и утечки данных

Смещение из-за заглядывания в будущее (look-ahead bias) — использование в решении информации, недоступной в тот момент. Утечка данных (data leakage) шире: это любой путь проникновения знаний о будущем в построение или оценку правил. Обе опасны тем, что выглядят хорошим результатом, а не ошибкой.

Места возникновения утечки:

  1. Вход по цене закрытия сигнальной свечи. Описан в четвёртом разделе. Исправление: вход не раньше открытия следующей свечи либо сигнал, рассчитанный исключительно по уже закрытым данным
  2. Индикатор с пересчётом прошлого. Документация Pine Script определяет перерисовку как различие вычислений или отображения скрипта на истории и в реальном времени (пункт 4 библиографии, дата обращения 22.08.2026). Не всякое такое поведение является обманом, но каждое нужно описать до признания результата достоверным. Механизм оповещений и различия истории и реального времени рассматривает статья о TradingView
  3. Центрированный индикатор. Любая конструкция, использующая наблюдения из момента t+k для значения в момент t непригодна для торговли, даже если прекрасно выглядит на историческом графике
  4. Макроданные после пересмотра. Значение показателя в версии, пересмотренной годы спустя, — не то, что было известно при публикации. Правило на макроданных должно использовать версию, доступную в момент решения, включая уже опубликованные тогда пересмотры, и фактическое время публикации. Интерпретацию самих публикаций разбирает статья о торговле при выходе данных
  5. Выбор инструментов со знанием будущего. Тестирование только сохранившихся до наших дней или заведомо выросших инструментов вводит отбор по будущему. В валютах это особенно касается экзотических пар и периодов изменения валютного режима
  6. Подготовка данных до разделения выборки. Нормализация, масштабирование или отбор признаков по всему набору переносят информацию из независимой части в обучающую. Разделение должно быть первой операцией, а не последней
Тест задержки сигнала: проверка чувствительности, а не окончательный ответ.
Допущения. Те же правила и параметры, инструмент, период, режим генерации тиков и модель издержек, что в исходном прогоне. Меняется ровно одно — момент входа. Запишите версии кода и платформы, идентификаторы обоих отчётов; иначе сравнение невоспроизводимо.
Процедура. Задержите весь сигнал на один полный период принятия решений и повторите тест, больше ничего не меняя. Повторите для задержки на два периода: одна точка не показывает форму зависимости.
Наблюдаемый результат. Сравниваются три величины: результат на сделку без задержки, через один период и через два. Конкретных значений здесь нет, поскольку для статьи прогон не выполнялся. Эти три поля вы заполняете числами из собственных отчётов.
Ограничение. Исчезновение результата после задержки не доказывает утечку из будущего. Такую же картину даёт короткоживущий сигнал с преимуществом, исчерпывающимся за минуты, или сигнал, чувствительный к исполнению, для которого разница в одну свечу — весь ожидаемый вход. Тест лишь отделяет системы, устойчивые к моменту входа, от неустойчивых.
Что действительно решает вопрос. Утечку исключает аудит доступности: для каждой переменной решения запишите момент, когда её значение стало известно, и сравните с моментом решения. Более поздняя метка времени — утечка независимо от результата теста задержки. И наоборот, аудит без замечаний закрывает вопрос, даже если после задержки результат упал.

7. Обучающая и независимая выборки, скользящее тестирование

Принцип короток и беспощаден: данные для настройки не могут одновременно служить независимой проверкой. Всё остальное следует из этого.

Обучающая выборка (IS) — участок истории, на котором можно подбирать параметры, проверять варианты и менять правила. Независимая выборка (OOS) — участок, на который вы при этой работе не смотрите. Их нужно разделять по времени: случайное перемешивание наблюдений всего периода не создаёт IS и OOS, поскольку временной ряд обладает памятью, а перемешивание переносит информацию в обе стороны.

Главное следствие разделения: независимая выборка теряет независимость, когда её результат влияет на последующие изменения. Если, увидев слабый OOS-результат, вы меняете стратегию, этот участок перестаёт быть OOS для всего, что делается дальше. Его можно использовать, но как обучающие данные, а не независимое доказательство. Нет данных о том, насколько часто этот механизм разрушает валидацию на практике, и притворяться иначе незачем. Достаточно однозначного следствия: OOS-период, использованный для изменения параметров, больше не является независимым доказательством для пересмотренной модели.

В тестер MetaTrader 5 это разделение встроено. Настройка «Форвард» (Forward) принимает значения «Нет» (No), 1/2, 1/3, 1/4 и «Произвольный» (Custom), а резервируется всегда вторая, более поздняя часть периода (пункт 2 библиографии). Это удобно и затрудняет случайное подсматривание в независимую выборку, но автоматически окно не сдвигает. Walk-forward из нескольких раундов собирается вручную или внешним инструментом. Документация проверена 22 августа 2026 года.

Скользящее тестирование: движущееся окно

Walk-forward повторяет процедуру на последовательных сдвигающихся участках истории. Вместо одного вердикта получается серия, а объединённые проверочные участки образуют прогон, которого оптимизатор целиком не видел.

  1. Задайте длины окон до первого прогона — например, 12 месяцев обучения и 3 месяца независимой проверки. Выбор длин после просмотра результатов — ещё одна форма подгонки
  2. Оптимизируйте только на обучающем окне и записывайте число проверенных вариантов
  3. Применяйте выбранные параметры на независимом окне без каких-либо изменений
  4. Сдвигайте оба окна на длину независимого окна и повторяйте
  5. Оценивайте объединённые проверочные участки, а не результаты оптимизации: сколько оказалось положительных, как выглядел худший, похожи ли параметры, выбранные в последовательных раундах
Walk-forward: окно IS 12 месяцев, OOS 3 месяца IS: M1–M12 OOS M13–M15 IS: M4–M15 OOS M16–M18 IS: M7–M18 OOS M19–M21 Раунд 1 Раунд 2 Раунд 3 Выборка IS (подбор) Выборка OOS (без изменений) Оценивайте объединённые M13–M21, не подбор IS.
Горизонтальный масштаб: 25 пикселей на месяц. Обучающее окно занимает 300 пикселей (12 месяцев), независимое — 75 пикселей (3 месяца). Каждый раунд сдвигает оба окна на 75 пикселей, то есть на полную длину независимого окна. Поэтому проверочные участки точно стыкуются и не перекрываются.

Эффективность скользящего тестирования (Walk-Forward Efficiency)— показатель, введённый Пардо (пункт 7 библиографии), иногда используется для краткой оценки сохранения результата вне обучающей выборки:

WFE = годовая доходность OOSгодовая доходность IS × 100%

Чтобы показатель имел смысл, обе доходности рассчитываются после одинаковых издержек, в одной валюте и с одним правилом объёма позиции. При нулевой доходности IS отношение не определено; при отрицательной оно не описывает полезным образом сохранение положительного преимущества. Сравнивать WFE систем с разными определениями доходности бессмысленно. Ещё важнее, что WFE — не двоичный критерий допуска. Высокий WFE на двенадцати независимых сделках говорит меньше, чем умеренный на четырёхстах. Рассматривайте его вместе с числом сделок, распределением результатов по раундам, просадкой и реакцией на повышение издержек.

8. Оптимизация, устойчивость параметров и Монте-Карло

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

Пик и плато

Смотрите на окрестность лучшей строки рейтинга. Если соседние значения параметра дают сходные результаты, это плато — область похожего поведения правила при малых изменениях настроек. Если сдвиг на один шаг разрушает результат, это пик, скорее всего случайное попадание в конфигурацию исторических данных. Выбор точки из середины плато обычно разумнее выбора вершины. Это различие и вся методология walk-forward восходят к работе Пардо (пункт 7 библиографии).

Так же проверяйте параметры, которые обычно никто не оптимизирует: часы торговли, минимальное расстояние стопа, фильтр дня недели. Если результат зависит от торговли до 22:00 или до 23:00 по серверу, проверьте экономическое обоснование фильтра и устойчивость вне периода настройки. Одна разница часов не доказывает переобучения.

Число вариантов относится к результату

Публикуя бэктест, указывайте число проверенных комбинаций рядом с результатом. Эта привычка отличает описание теста от рекламы. Систематическое рассмотрение множественных проверок и вероятности того, что лучший результат — артефакт поиска, дано в работе Бейли, Борвейна, Лопеса де Прадо и Чжу (пункт 8 библиографии); систематическое описание отбора по результату дано у Аронсона (пункт 9).

Монте-Карло как проверка устойчивости, а не прогноз

Простой полезный вариант, описанный в том числе Томазини и Йекле (пункт 10 библиографии): возьмите результаты сделок проверочных участков, многократно случайно переставляйте их порядок и вычисляйте распределение максимальной просадки. Интересует правый хвост распределения — например, 95-й процентиль максимальной просадки, то есть уровень, не превышенный в 95 процентах смоделированных прогонов. Если он выше лимита просадки вашего плана риска, принятая модель и размер позиции не проходят этот критерий даже при благоприятном среднем.

Нужно явно указать два ограничения. Перестановка предполагает независимость сделок, что неверно при коррелированных позициях или выборе объёма по недавним результатам. Второе обычно формулируют слишком широко: перестановка использует уже случившиеся результаты, поэтому не породит ни одной отдельной сделки вне наблюдаемого распределения. Это не ограничивает максимальную просадку: смысл моделирования именно в том, что иной порядок может собрать имеющиеся убытки в одну серию и дать просадку выше наблюдавшейся. Монте-Карло исследует чувствительность к порядку событий, а не диапазон отдельных возможных событий. Лимит просадки и механизм остановки торговли описывает статья о просадке и аварийном отключении.

Определения, без которых показатели несопоставимы. Профит-фактор — сумма валовых прибылей, делённая на модуль суммы валовых убытков; единицы измерения нет. Для максимальной просадки укажите основу: баланс или текущие средства, валюту или проценты. На одной серии результаты могут различаться в разы. Математическое ожидание — в валюте на сделку или единицах риска R, с обязательным указанием единиц. Сравнение этих чисел между инструментами без проверки определений, диапазона истории и учёта пополнений и снятий — сравнение разных величин. Как читать отчёты и где расходятся определения, показывает статья о торговом журнале и анализе результатов.

9. Форвардный тест, демо и воспроизведение: что именно они подтверждают

Форвардный тест иногда называют окончательным доказательством. Это этап валидации с узким и конкретным предметом подтверждения.

Форвардный тест на отложенном участке истории подтверждает определённый результат правил с фиксированными параметрами на данных, которых оптимизатор не видел. Он не подтверждает издержки исполнения или поведение в другом рыночном режиме.

Форвардный тест в реальном времени на демосчёте добавляет две проверки: корректно ли работает реализация при обычной работе терминала и способны ли вы соблюдать правила без импровизации. Он не измеряет издержки исполнения в той мере, в которой демосервер их не воспроизводит. Что именно воспроизводится, определяет документация брокера и типа счёта, а не общее правило. До её проверки результат демо описывает симуляцию с ещё не проверенными допущениями исполнения.

Форвардный тест на реальном капитале с минимальным объёмом добавляет измерение издержек исполнения, с оговоркой второго раздела: для того объёма, которым вы торгуете. Решение увеличить экспозицию относится к плану управления рисками, и только если этот план вообще допускает увеличение.

Условная модель накопленных валовых и чистых итогов.
Единицы затрат едины, спред не дважды.

Воспроизведение рынка

Воспроизведение проигрывает историю со скрытым будущим: вы движетесь свеча за свечой, принимаете решение и лишь затем видите продолжение. Для дискреционных стратегий это даёт много повторений без ожидания в реальном времени и без кодирования правил. Есть специальные симуляторы с панелью заявок и статистикой и режимы внутри графических платформ; последние уже не сводятся к простой прокрутке. TradingView описывает отдельный режим Replay Trading, где можно открывать позиции и размещать лимитные, стоп- и стоп-лимитные ордера, как у реального брокера. Результаты сеанса собирают вкладки «Обзор» (Overview), «Эффективность» (Performance), «Анализ сделок» (Trades analysis), «Соотношения риска и доходности» (Risk/performance ratios) и «Список сделок» (List of trades); Performance и List of trades также можно экспортировать для дальнейшего анализа или учёта (пункт 5 библиографии, дата обращения 22.08.2026).

Нестандартные графики вычисляют результат по ценам, которых на рынке не было. При проверке на Heikin Ashi, Renko, Kagi, Line Break или Point & Figure цены исполнения эмулятора не являются рыночными. Документация TradingView прямо указывает: из-за синтетической природы уровней нестандартных графиков бэктесты на них обычно не отражают реальных рыночных условий (пункт 15 библиографии, дата обращения 22.08.2026). Для Heikin Ashi есть обходной путь: настройка «Использовать стандартные OHLC» (Using standard OHLC) в свойствах стратегии рассчитывает сигнал по синтетическим данным, но исполняет заявки по реальным ценам. Для остальных типов графиков такого решения нет. Поставщик осторожно пишет «обычно не отражают», а не «никогда», и эту оговорку следует сохранить. Практический вывод остаётся: пока не доказано совпадение синтетических и рыночных цен именно в вашем случае, переводить результат в деньги нельзя.

Чего не даёт воспроизведение: реальных издержек исполнения, поскольку симулятор назначает исполнение по собственным правилам. Их нужно знать, прежде чем считать результат сеанса чем-то большим, чем упражнение. Нет и давления реального убытка. Есть особый недостаток: легко незаметно обмануть себя. Отмена последнего решения, повтор участка, «ещё раз, теперь я увидел иначе» превращают тест в рассказ. Чтобы сеанс был данными, правила записываются до начала, а все решения, включая плохие, сохраняются.

Модель повтора со скрытым будущим и записью решений.
Повтор проверяет правила, не все условия реала.
Тиковый объём — не рыночный объём. У спотового валютного рынка нет централизованного оборота, поэтому объём терминала — число изменений котировок одного потока. Это мера активности поставщика, а не оборота рынка. Правило на таком объёме иначе поведёт себя у другого брокера; его историческую запись нельзя напрямую сопоставлять между источниками.

10. Инструменты тестирования: сравнение по критериям

Нет инструмента, закрывающего все этапы. Таблица сравнивает по критериям, определяющим выбор, а не по числу функций.

Среды тестирования по критериям выбора
ИнструментЧто проверяетИсточник данныхРазделение обучающей / независимой выборокНужен кодГлавное ограничение
MetaTrader 4 — тестер стратегийАвтоматическая система на MQL4 по одному инструментуТри режима моделирования: Только цены открытия, Контрольные точки, Все тики (пункт 14)Вручную, диапазоном датДа (MQL4)Движение внутри свечи вычисляется из меньших таймфреймов, а не считывается из потока тиков; полоса качества показывает использованный таймфрейм
MetaTrader 5 — тестер стратегийАвтоматическая система на MQL5, включая несколько инструментовПять режимов генерации, в том числе собранные брокером тики (пункт 2)Встроено («Форвард»: 1/2, 1/3, 1/4, «Произвольный») (пункт 2)Да (MQL5)Наличие и глубина реальных тиков зависят от брокера; пробелы архива тестер заполняет модельными тиками (пункт 1); окно walk-forward само не сдвигается
cTrader — бэктест cBotАвтоматическая система в среде cTrader AlgoЧетыре режима: Тиковые данные с сервера, Свечи M1 с сервера, Свечи M1 из CSV-файла, Свечи H1 с сервера (пункт 6)Вручную, диапазоном датДаКомиссия задаётся на миллион проторгованных единиц, спред фиксирован или случаен в заданном диапазоне: модель издержек упрощена и требует осознанной настройки
TradingView — стратегии Pine и Replay TradingПравила на Pine Script и тренировка решений на графике с записью позиций и экспортом результатов сеанса (пункт 5)Данные поставщика, выбранного на графикеВручнуюЧастично (Pine для стратегий, воспроизведение без кода)Исполнение назначает эмулятор; поведение на истории и в реальном времени может различаться (пункт 4); на нестандартных графиках цены исполнения синтетические, результат обычно не описывает рынок (пункт 15)
Специальные симуляторы воспроизведенияДискреционные стратегии, решение за решениемНаборы данных инструмента; у одного проверенного поставщика документация заявляет тиковые данные с переменным спредом. У других объём может отличаться и проверяется отдельно (пункт 11)ВручнуюНетИсполнение назначается эмулятором, поэтому реальных издержек он не измеряет даже с настраиваемыми переменным спредом и комиссией. Сами правила исполнения в проверенной документации поставщика не описаны (пункт 11); также легко испортить выборку повтором участка
Анализаторы результатов (импорт отчётов)Готовые отчёты тестера или счётаВходной файлЗависит от инструментаНетНе проводит тест: наследует все ошибки источника
Python (библиотеки бэктестинга)Любая логика, полный контроль разделения выборкиЛюбой, с ответственностью за качествоПолный, любая схемаДаВся методологическая корректность на вашей ответственности; см. статью о Python в торговле
О ценах и ограничениях тарифов. Цена лицензии, объём бесплатного тарифа и доступность воспроизведения относятся к изменяемому слою продукта, а не его архитектуре, и различаются по регионам. Поэтому их нет в таблице; нет и данных о частоте изменений, поскольку она не подсчитана. Перед покупкой проверьте актуальные цены поставщика и наличие нужной функции, например воспроизведения на младших таймфреймах или экспорта сделок, в выбранном тарифе. Сами платформы без тестирования сравнивает статья о MT4, MT5 и cTrader.

Выбор сводится к трём вопросам. Можно ли записать правила в коде? Если нет, нужна среда воспроизведения. Нужны ли реальные тики? Да, если правило зависит от порядка событий внутри свечи, и это определяет выбор. Нужен ли контроль схемы разделения выборки? Тогда рано или поздно потребуется собственный код: встроенные разделения намеренно просты.

11. Протокол воспроизводимости и проверка достоверности

Невоспроизводимый тест — мнение, записанное числами. Следующие поля — минимум, позволяющий вам через полгода или другому человеку точно повторить прогон. Если поле нельзя восстановить, это ограничение нужно назвать, а не пропустить.

Протокол воспроизводимости теста: обязательные поля.
1. Версия правил или кода и дата фиксации. 2. Полный набор параметров. 3. Инструмент и точный символ брокера, включая суффикс. 4. Источник данных и способ получения. 5. Диапазон дат. 6. Часовой пояс данных и время сервера. 7. Соглашение о временной метке свечи. 8. Режим генерации тиков. 9. Модель спреда. 10. Комиссия и способ начисления. 11. Своп-пункты при переносе через смену дня. 12. Заданные проскальзывание и задержка исполнения. 13. Правило исполнения отложенных ордеров: когда лимит считается исполненным, по какой цене и как обрабатывается скачок при стоп-ордере. 14. Начальный капитал и валюта счёта. 15. Правило объёма позиции. 16. Версия платформы или библиотеки тестирования. 17. Разделение обучающей и независимой выборок с граничными датами. 18. Число проверенных вариантов параметров. 19. Идентификатор отчёта или выходного файла.
Проверка: разделение данных до подбора 1. ПРАВИЛА ФИКСИРОВАНЫ правила и параметры записаны до теста 2. ДАННЫЕ И РАЗДЕЛЕНИЕ граница IS/OOS задана до подбора 3. ТЕСТ И ПОДБОР подбор лишь на IS данные и затраты раскрыты 4. ВЫБОРКА OOS OOS, параметры фиксированы смотрят один раз 5. УСТОЙЧИВОСТЬ сетка параметров плато, не пик 6. ФОРВАРД / ДЕМО вне периода подбора правила соблюдены? 7. ЭКСПОЗИЦИЯ минимальна и необязательна если позволяет план риска ПОВТОР дискреционная ветвь не этап последовательности отклонение возвращает к разделению Разделение и фиксация правил до подбора, не наоборот. Повтор — отдельное обучение, не часть форварда.
Семь этапов в порядке, диктуемом разделением данных: фиксация правил до теста, граница обучающей и независимой выборок до начала настройки, настройка только на обучающей, затем независимая оценка, устойчивость параметров, форвардный тест на демо и необязательная минимальная экспозиция на реальном счёте. Воспроизведение отведено отдельной пунктирной ветвью на этапе данных: это тренировка дискреционных стратегий, а не этап цепочки и не аналог форвардного теста. Возврат ведёт к разделению данных, а не к изменению размера позиции.

Проверка достоверности бэктеста

Одиннадцать вопросов, одинаково применимых к чужому и собственному результату. Ответ «не знаю» считается отрицательным.

  1. Указаны ли инструмент, точный символ, период и источник данных?
  2. Указан ли режим генерации тиков и соответствует ли он горизонту стратегии?
  3. Известна ли цена исполнения лимитных и стоп-ордеров тестером, причём из документации инструмента, а не из предположения?
  4. Учтены ли спред, комиссия, своп-пункты и принятое проскальзывание с единицами измерения каждого?
  5. Сохраняется ли результат при повышении издержек примерно на среднее проскальзывание, измеренное на счёте?
  6. Для каждой переменной решения записан ли момент, когда её значение стало известно, и не позже ли он самого решения? Тест задержанного входа дополняет этот аудит, а не заменяет
  7. Указаны ли обучающая и независимая выборки с граничными датами?
  8. Просматривалась ли независимая выборка только один раз, после фиксации параметров?
  9. Указано ли число проверенных вариантов параметров?
  10. Сохраняется ли результат в окрестности выбранных параметров, а не в одной точке?
  11. Охватывают ли число сделок и длительность периода больше одного рыночного режима, если предполагается общий вывод?

Хуже пропуска пункта — неверный порядок: сначала результат, затем обоснование. Порядок является условием осмысленности, а не предпочтением. Если седьмой и восьмой пункты определять после просмотра результата, честно выполнить их уже нельзя. Запись правил до теста, границ выборки до оптимизации и числа вариантов по ходу работы занимает четверть часа и отделяет валидацию от поиска красивого графика.

Когда процедура записана, её часто переносят из ручных действий в тестере в код, который воспроизводимо выполняет её и самостоятельно отслеживает разделение выборок. Здесь начинается отдельная тема — Python в торговле, где воспроизводимость среды столь же важна, как воспроизводимость самого теста.

Частые вопросы: проверка стратегии перед выходом на рынок

Достаточно ли демосчёта, чтобы установить прибыльность стратегии?
Нет, по механическим, а не психологическим причинам. Демосервер имитирует исполнение по правилам брокера, обычно опуская или упрощая часть реальных издержек: у одного проскальзывание, у другого ещё и отклонения заявок или частичное исполнение. Масштаб упрощения нужно выяснять по документации конкретного счёта, а не предполагать. Например, IG прямо пишет о своём демо, что сделки не подвержены проскальзыванию и заявки не отклоняются из-за объёма или цены (пункт 16 библиографии, статья от 29.05.2026), но это описание одного поставщика, а не правило рынка. Демо отвечает, работает ли реализация и способны ли вы соблюдать правила. Пропущенные моделью демо издержки можно наблюдать лишь при фактическом исполнении заявки на реальном счёте.
Сколько сделок нужно для осмысленного результата?
Единого числа нет; без расчёта назвать его нельзя. Нужная выборка зависит от отношения среднего результата сделки (m) к стандартному отклонению одного результата (s). Стандартная ошибка среднего равна s, делённому на квадратный корень из n; чтобы она была в k раз меньше среднего, n должно превышать квадрат (k × s/m). В иллюстративном распределении пятого раздела 600 прибылей по +8,00 и 400 убытков по −9,00 пипса дают m = 1,20 пипса и s = 8,33 пипса. При k = 2 требуется n больше квадрата (2 × 8,33 / 1,20), то есть около 193 сделок. Смена распределения меняет число: при редких крупных прибылях и частых малых убытках s растёт, а выборка увеличивается квадратично. Расчёт предполагает независимость и стабильное распределение сделок; оба условия на практике могут нарушаться. Поэтому это нижняя граница, а не порог допуска. Дополнительный критерий, который не заменит никакое число: охватывает ли выборка больше одного рыночного режима.
Устраняет ли walk-forward переобучение?
Ограничивает, но не устраняет. Walk-forward заставляет оценивать данные, которых оптимизатор не видел в данном раунде, однако можно подогнать саму схему: выбрать длины окон по результатам, повторять процедуру с разной логикой до успеха или менять стратегию после просмотра проверочных участков. После каждого такого изменения прежние проверочные участки перестают быть независимыми.
Что именно означает отсутствие издержек в бэктесте?
Он описывает другую систему, чем та, по которой предполагается торговать. В иллюстративном расчёте пятого раздела, где ни одно число не получено проведённым тестом, одна серия из 1 000 сделок даёт +12 000 USD без издержек и 0 USD после добавления спреда 0,30 пипса, комиссии 0,70 пипса и проскальзывания 0,20 пипса. Предполагается закрытие до смены расчётного дня, то есть нулевой своп. Разница возникает из допущений теста, а не рынка. Чем меньше средний валовой результат сделки, тем резче механизм.
Заменяет ли воспроизведение рынка проверку на реальном капитале?
Нет. Оно даёт много повторений без ожидания в реальном времени и проверку дискреционных стратегий без кодирования. Но не измеряет издержки исполнения: их назначает эмулятор по своим правилам. Возможность отмены решения без дисциплины превращает выборку в подборку избранных фрагментов.
Решают ли реальные тики проблему качества бэктеста?
Они улучшают одно измерение: там, где реальные тики действительно есть, порядок событий внутри свечи перестаёт угадываться. Это не означает полного отсутствия генерации. Документация MetaTrader 5 прямо описывает резервное поведение: при наличии минутной свечи без соответствующих тиков тестер генерирует их в режиме «Все тики» (пункт 1 библиографии, дата обращения 22.08.2026). При пробелах архива часть прогона моделируется тиками без отдельной отметки в отчёте. Другие ограничения режим не устраняет. Реальные тики тестера — запись потока одного поставщика с определённой глубиной и качеством, зависящим от сбора. Они не сообщают о ликвидности на вашем уровне, отказах или задержке вашего соединения. Тест на реальных тиках без модели издержек исполнения всё ещё предполагает идеальное исполнение.

Источники и библиография

  1. MetaQuotes — MetaTrader 5 Help: Real and Generated Ticks, metatrader5.com/en/terminal/help/algotrading/tick_generation (дата обращения 22.08.2026) — режимы генерации тиков и замещение отсутствующих реальных тиков модельными: при наличии минутной свечи без тиковых данных тестер генерирует тики в режиме «Все тики»
  2. MetaQuotes — Справка MetaTrader 5: тестирование стратегий — настройки тестера, форвардная проверка и эмуляция задержки, metatrader5.com/en/terminal/help/algotrading/testing (дата обращения 22.08.2026) — настройка «Форвард» (Forward) в вариантах «Нет» (No), 1/2, 1/3, 1/4, «Произвольный» (Custom) и правило: при отложенных ордерах советника задерживается только размещение, но не исполнение
  3. MetaQuotes — MQL5 Reference: Testing Trading Strategies, mql5.com/en/docs/runtime/testing (дата обращения 22.08.2026) — при тестировании спред не моделируется, а берётся из исторических данных
  4. TradingView — Pine Script User Manual: Repainting, tradingview.com/pine-script-docs/concepts/repainting (дата обращения 22.08.2026)
  5. TradingView — Help Center: Learn to trade on historical data (Replay Trading), tradingview.com/support/solutions/43000691889 (дата обращения 22.08.2026) — можно открывать позиции, размещать лимитные, стоп- и стоп-лимитные ордера, как у реального брокера; вкладки «Обзор» (Overview), «Эффективность» (Performance), «Анализ сделок» (Trades analysis), «Соотношения риска и доходности» (Risk/performance ratios) и «Список сделок» (List of trades) собирают результаты; Performance и List of trades также можно экспортировать для анализа или учёта
  6. Spotware — cTrader Algo: Backtest a cBot, help.ctrader.com/ctrader-algo/documentation/cbots/backtest-a-cbot (дата обращения 22.08.2026) — четыре режима данных: тики с сервера, свечи M1 с сервера, свечи M1 из CSV-файла, свечи H1 с сервера; комиссия за миллион проторгованных единиц; спред фиксированный (Fixed Value) или случайный (Random)
  7. Pardo, R. — The Evaluation and Optimization of Trading Strategies, Wiley, 2-е изд., 2008 — walk-forward, эффективность скользящего тестирования, плато параметров, методология проверки систем
  8. Bailey, D.H., Borwein, J.M., López de Prado, M., Zhu, Q.J. — The Probability of Backtest Overfitting, Journal of Computational Finance, 2017 — множественные проверки и вероятность того, что лучший результат является артефактом поиска
  9. Aronson, D.R. — Evidence-Based Technical Analysis, Wiley, 2007 — смещение при поиске закономерностей, отбор по результату, статистическая валидация
  10. Tomasini, E., Jaekle, U. — Trading Systems: A New Approach to System Development and Portfolio Optimisation, Harriman House, 2009 — walk-forward, Монте-Карло, тестирование на уровне портфеля
  11. Forex Tester Software — Forex Tester Online: Support Center, help.forextester.com (дата обращения 22.08.2026) — поставщик заявляет тиковые данные для построения свечей; данные минутных изменений включают Open, High, Low, Close и Volume (торговую активность). Тиковые данные подробно описывают каждое изменение цены финансового символа и плавающий спред. Forex Tester Online поддерживает тестирование с переменными спредами и комиссиями. Правила назначения цены исполнения эмулятором документация не описывает. Прежний адрес, forextester.com/documentation, возвращает страницу 404 (проверено 22.08.2026) и заменён
  12. Reserve Bank of Australia — Statement on Monetary Policy, February 2019, Box B: The Recent Japanese Yen Flash Event, rba.gov.au/publications/smp/2019/feb/box-b-the-recent-japanese-yen-flash-event.html (дата обращения 22.08.2026) — в 9:36 утра AEDT примерно за 30 секунд без существенных новостей иена укрепилась на 3 процента к доллару США; спреды bid–ask выросли примерно с 2 пипсов до 100–300 пипсов; рыночная ликвидность была сезонно низкой для этого времени суток и года
  13. MetaQuotes — MetaTrader 5 Help: Testing Features, metatrader5.com/en/terminal/help/algotrading/testing_features (дата обращения 22.08.2026) — раздел «Срабатывание и исполнение ордеров» (Order Triggering and Execution) содержит два последовательных абзаца с разными областями применимости. Первый относится к валютному рынку: для небиржевых инструментов все отложенные ордера и SL/TP срабатывают по Bid и Ask и исполняются по текущим рыночным Bid и Ask в момент срабатывания. Второй относится только к биржевым инструментам: лимитные ордера исполняются по указанной цене без проскальзывания, остальные — по текущим рыночным Bid и Ask с возможным проскальзыванием. Та же страница об упрощённых режимах: в «Только цены открытия» и «OHLC на 1 минуте» отложенные ордера, SL и TP исполняются по записанным ценам
  14. MetaQuotes — MetaTrader 4 Help: Strategy Tester — Tester Settings, metatrader4.com/en/trading-platform/help/autotrading/tester/tester_parameters (дата обращения 22.08.2026) — режимы «Только цены открытия», «Контрольные точки» и «Все тики»; последний генерирует тики по ближайшему меньшему и всем доступным ближайшим таймфреймам, а полоса качества моделирования показывает использованный таймфрейм
  15. TradingView — Help Center: Strategy produces unrealistic results on non-standard chart types, tradingview.com/support/solutions/43000481029 (дата обращения 22.08.2026) — из-за синтетической природы уровней нестандартных графиков бэктесты на них обычно не отражают реальных рыночных условий
  16. IG — How does a demo account differ from a live account?, ig.com/uk/help-and-support/articles/687034 (статья от 29.05.2026, дата обращения 22.08.2026) — описание относится только к демосчёту этого поставщика: демосделки не подвержены проскальзыванию, процентным и дивидендным корректировкам или движению цен вне торговых часов. Сделки могут отклоняться при недостатке средств, но, в отличие от реального счёта, никогда не отклоняются из-за объёма или цены

Ваш прогресс обучения

Закончили урок? Отметьте это самостоятельно. Открытие или прокрутка страницы не засчитывают прохождение.

Для сохранения прогресса нужны JavaScript и хранилище браузера.

Сохраняется только в этом браузере. Без аккаунта и синхронизации устройств. Очистка данных сайта может удалить прогресс.

Jarosław Wasiński

Главный редактор, ForexMechanics.com • Макро- и валютный аналитик

Независимый аналитик и профессионал с более чем 20-летним опытом работы на финансовых рынках. Активно работает на Форексе с 2004 года, специализируется на фундаментальном анализе, структуре внебиржевого (OTC) рынка и дисциплинированном управлении риском капитала.

  • Основатель и главный редактор MyBank.pl, который с 2004 года предоставляет надёжное финансовое образование.
  • Автор сотен глубоких рыночных комментариев, структурных аналитических материалов и обучающих пособий для трейдеров и инвесторов.
  • Сторонник прозрачности рынка, продвигает обучение, основанное на конкретных данных и институциональных отчётах (BIS, ESMA, CFTC).

Все материалы носят исключительно образовательный и информационный характер – они не являются инвестиционной рекомендацией или каким-либо советом. Помните: торговля с кредитным плечом (Форекс/CFD) сопряжена с высоким риском быстрой потери капитала.