Честный бэктест проверяет заранее сформулированные правила стратегии на данных, которые не использовались для их настройки. Чтобы не принять подгонку под историю за преимущество, учитывайте издержки и исполнение сделок, разделяйте данные на обучающую и контрольную части, проверяйте устойчивость параметров и не переносите результат теста сразу на крупный реальный риск.
Контрольные ориентиры честного бэктеста
- До расчётов запишите гипотезу, правила входа и выхода, риск и условия отмены стратегии.
- Проверьте качество данных, временные метки, корпоративные события и отсутствие заглядывания в будущее.
- Настраивайте параметры только на выделенной части истории; итоговую контрольную выборку не используйте для доработки.
- Оценивайте результаты после учёта комиссий, спреда, проскальзывания и ограничений исполнения.
- Ищите устойчивый диапазон параметров, а не единственную точку с лучшим историческим результатом.
- Переходите к реальной торговле постепенно, сохраняя заранее заданные лимиты риска.
До запуска: зафиксируйте гипотезу и правила стратегии
Бэктестинг торговых стратегий полезен, когда у вас есть проверяемое объяснение того, почему сигнал может работать, и правила можно выразить однозначно. Он подходит для сравнения вариантов и выявления слабых мест, но сам по себе не доказывает будущую прибыльность. Не начинайте с перебора индикаторов ради красивой кривой доходности: так проще подогнать стратегию под случайные особенности истории.
До теста зафиксируйте в документе:
- рынок, инструмент, таймфрейм и торговую сессию;
- условия открытия и закрытия позиции, включая частичный выход и отмену сигнала;
- правило определения размера позиции и максимально допустимого риска;
- комиссии, спред, проскальзывание и допущения об исполнении ордеров;
- метрики оценки: например, просадку, частоту сделок и результат после издержек.
Критерий готовности: два человека, прочитав правила, должны получить одинаковую логику сигналов. Если решение зависит от субъективного толкования графика, сначала формализуйте его.
Подготовьте данные без утечки будущей информации
Для тестирования торговых стратегий на исторических данных нужны источники котировок с подходящей детализацией, описание торговых условий и среда, где можно воспроизвести правила стратегии. Перед запуском сверьте данные с независимым источником или документацией поставщика, если такая возможность есть.
- Проверьте пропуски, дубли, неверный порядок записей, часовой пояс и переходы между торговыми сессиями.
- Убедитесь, что цены и сигналы доступны именно в тот момент, когда стратегия могла их использовать.
- Для расчётов по закрытию свечи не исполняйте сделку по цене закрытия, если по правилам исполнения она была доступна только после формирования сигнала.
- Учтите делистинги, изменения состава индекса и корпоративные действия, если они важны для выбранного рынка.
- Проверьте, что комиссии, спред и проскальзывание не исключены из итогового результата.
Типичная ошибка - использовать пересчитанные или очищенные данные так, будто трейдер видел их в исходном виде в прошлом. Храните исходные данные и записывайте все преобразования, чтобы можно было воспроизвести тест.
Отделите настройку параметров от итоговой проверки
Перед пошаговой проверкой подготовьте рабочие материалы:
- зафиксированные правила стратегии и версию кода;
- описание источника данных, периода и их очистки;
- разделение истории на настройочную и контрольную части;
- список параметров и заранее выбранные критерии оценки;
- модель торговых издержек и исполнения ордеров.
Далее проведите проверку последовательно. Не меняйте критерии после просмотра контрольного результата: это превращает итоговую выборку в ещё одну настройочную.
-
Зафиксируйте исходную версию.
Сохраните гипотезу, правила, код и настройки до начала экспериментов. Так вы сможете сравнить изменения и не потерять исходный результат.
-
Разделите историю по времени.
Используйте ранний отрезок для разработки и настройки, а более поздний - для итоговой проверки. Не перемешивайте наблюдения случайным образом, если стратегия зависит от последовательности рыночных событий.
-
Настраивайте ограниченный набор параметров.
Оптимизация торговой стратегии должна проверять обоснованные диапазоны, а не все возможные комбинации. Заранее запишите, какие параметры меняете и по какому критерию сравниваете результаты.
-
Учтите реалистичное исполнение.
Пересчитайте сделки с комиссиями, спредом, проскальзыванием и задержкой, если она существенна для выбранного подхода. При сомнении используйте более осторожные допущения и отметьте их в отчёте.
-
Проверьте стратегию на отложенных данных один раз.
После настройки примените правила к контрольному периоду без подбора параметров по его результату. Если после проверки вы меняете стратегию, выделите новые данные для независимой оценки.
-
Сохраните полный журнал эксперимента.
Запишите версии стратегии, параметры, даты теста, метрики и причины каждого изменения. Журнал помогает увидеть, не был ли удачный вариант выбран после множества незадокументированных попыток.
Такой порядок делает разработку торговых стратегий проверяемой: можно понять, какой результат получен настройкой, а какой - на данных, не участвовавших в принятии решений.
Найдите следы переоптимизации в результатах
Высокий исторический результат сам по себе не подтверждает преимущество. Используйте чек-лист, чтобы выяснить, не зависит ли он от случайного сочетания параметров, периода или допущений:
- Рядом с лучшей настройкой результаты резко ухудшаются при небольшом изменении параметров.
- Прибыль создаёт небольшое число сделок, а остальные сделки дают слабый или отрицательный результат.
- Доходность исчезает после добавления комиссий, спреда или реалистичного проскальзывания.
- Стратегия работает только на одном коротком отрезке и не выдерживает смены рыночного режима.
- В тесте перебрали много вариантов, но в отчёте показали только лучший.
- Правила или диапазоны параметров менялись после просмотра контрольной выборки.
- Результат зависит от цены исполнения, которая фактически не была доступна в момент сигнала.
- Просадка, длительность восстановления и риск отдельных сделок не соответствуют заранее установленным ограничениям.
Если обнаружен такой признак, не маскируйте его дополнительной настройкой. Вернитесь к гипотезе, проверьте источник ошибки и проведите новую независимую проверку.
Проверьте устойчивость на других периодах и рынках
Проверка торговой стратегии на прибыльность должна включать анализ того, насколько результат зависит от конкретной выборки. Тесты на других периодах или инструментах полезны как диагностика, но не гарантируют аналогичного поведения в будущем.
- Не выбирайте периоды только потому, что на них стратегия показывает хороший результат.
- Не переносите параметры на другой рынок без проверки ликвидности, торговых часов и издержек.
- Не считайте близкие инструменты независимыми подтверждениями, если они движутся сходным образом.
- Не меняйте правила отдельно под каждый неудачный период без новой контрольной выборки.
- Не исключайте убыточные сделки или неудобные участки истории без заранее установленного обоснования.
- Не оценивайте устойчивость только по суммарной доходности: учитывайте просадку и распределение результатов во времени.
- Не считайте тест на другом таймфрейме подтверждением, если стратегия использует данные, недоступные на этом интервале.
- Не игнорируйте различия в качестве исторических данных и правилах исполнения между площадками.
Практический критерий - стратегия сохраняет приемлемое поведение при разумных изменениях условий, а не обязательно повторяет лучший результат. Если подтверждение найдено только на одном участке истории, вывод должен оставаться ограниченным.
Составьте план перехода от теста к реальной торговле
Историческая проверка не воспроизводит все ограничения исполнения и не снимает рыночный риск. Выберите постепенный способ перехода, соответствующий качеству данных и вашей готовности контролировать результат:
- Повторный тест после исправлений. Уместен, если выявлена ошибка в данных, коде или модели издержек. После исправления снова отделите настройку от независимой проверки.
- Форвард-тест без реального капитала. Подходит, чтобы наблюдать сигналы в текущих условиях и сопоставлять ожидаемое исполнение с фактическим рынком.
- Ограниченный запуск с минимальным риском. Рассматривайте его только после проверок и с заранее заданными лимитами потерь, размера позиции и условиями остановки.
Перед запуском составьте план наблюдения: какие отклонения от бэктеста требуют паузы, как фиксируются сделки и когда стратегия пересматривается. Не увеличивайте риск только потому, что короткий реальный отрезок оказался прибыльным.
Разбор спорных ситуаций при проверке торговой стратегии
Можно ли использовать весь исторический период для настройки?
Можно исследовать историю, но тогда она уже не является независимой проверкой. Для итоговой оценки понадобится период или поток новых данных, не использованный при выборе правил и параметров.
Если контрольный тест неудачный, можно ли изменить параметры?
Изменить их можно, но прежняя контрольная выборка после этого становится частью процесса настройки. Для новой итоговой проверки потребуется другой независимый отрезок или последующее наблюдение.
Нужно ли включать комиссии, если они невелики?
Да, включайте доступные оценки комиссий и других издержек. Даже небольшое влияние на отдельную сделку может изменить итоговую оценку стратегии с высокой частотой торговли.
Достаточно ли прибыльной кривой доходности?
Нет. Проверьте просадку, распределение сделок, устойчивость к параметрам и качество исполнения. Оцените результат по критериям, записанным до теста.
Можно ли тестировать стратегию на нескольких рынках?
Можно, если заранее определить правила отбора рынков и учитывать различия в данных, ликвидности и издержках. Не выдавайте подбор удачных рынков после анализа за независимое подтверждение.
Когда результат следует считать ненадёжным?
Когда он зависит от одной настройки, короткого периода, нескольких сделок или нереалистичного исполнения. В таком случае результат - повод для дальнейшей проверки, а не основание увеличивать риск.


