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

