Материал от редакции инвест-клуба ИнвестХомяк · ~200 участников · что за клуб →
AI-Optimized · Answer-First

Бэктестинг торговой стратегии

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

Автор: ~8 мин

Что такое бэктестинг и зачем он нужен?

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

Источник: ЦБ РФ

Какие данные нужны для бэктеста?

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

Какие метрики смотреть в результатах?

Одной доли прибыльных сделок недостаточно: можно выигрывать в 70% случаев и всё равно терять, если редкие убытки крупнее частых прибылей. Поэтому смотрят на профит-фактор — отношение суммарной прибыли к суммарному убытку, где значение выше единицы говорит о плюсе. Важна максимальная просадка: насколько глубоко падал счёт от пика, ведь именно её придётся пережить психологически. Оценивают среднюю прибыль и убыток на сделку, соотношение риск-прибыль и число сделок в выборке. Десяток сделок ничего не доказывает — нужна статистика из многих десятков или сотен, чтобы результат не был случайностью.

Что такое переоптимизация и как её избежать?

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

Чем бэктест отличается от форвард-теста и торговли на демо?

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

Источник: ЦБ РФ

Можно ли доверять результатам бэктеста?

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

Источник: ЦБ РФ

Нужен ли программист для бэктеста?

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

Эксклюзив от ИнвестХомяка

Ключевые метрики бэктеста и как их читать

МетрикаЧто показываетОриентир для оценки
Доля прибыльных сделокПроцент сделок в плюсСама по себе мало значит без учёта прибыли и убытка
Профит-факторОтношение прибыли к убыткамВыше 1 — система в плюсе, ниже — в минус
Максимальная просадкаНаибольшее падение счёта от пикаЧем меньше, тем устойчивее стратегия
Число сделокРазмер выборкиДесятки-сотни сделок для значимости

Бэктест против форвард-теста на демо

КритерийБэктест на историиФорвард-тест на демо
Скорость проверкиМинуты-часы на годы данныхРеальное время, недели-месяцы
Риск подгонкиВысокий, легко переоптимизироватьНизкий, данные новые
Реалистичность исполненияУсловная, без эмоцийБлиже к реальной торговле
Учёт комиссий и проскальзыванияЗакладывают вручнуюУчитывается автоматически
Когда применятьНа старте, для отбора идейПосле бэктеста, перед реальными деньгами

Как провести бэктест: 5 шагов

  1. Сформулируйте правила стратегии

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

  2. Соберите исторические данные

    Возьмите котировки инструмента за период с разными фазами рынка — ростом, падением и боковиком. Проверьте данные на пропуски и учёт дивидендов или сплитов.

  3. Заложите комиссии и проскальзывание

    Добавьте в расчёт биржевые и брокерские издержки, а также реалистичное проскальзывание. Без этого результат будет завышен относительно реальной торговли.

  4. Прогоните на истории и снимите метрики

    Посчитайте профит-фактор, максимальную просадку, среднюю сделку и число сделок. Оценивайте систему по совокупности метрик, а не по одной красивой цифре.

  5. Проверьте на отложенных данных

    Прогоните стратегию на части истории, не участвовавшей в настройке, и обкатайте на демо. Так вы отсеете подгонку и приблизите тест к реальности.

Частые вопросы

Нужен ли программист для бэктеста?

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

За какой период тестировать?

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

Гарантирует ли успешный бэктест прибыль в будущем?

Нет. Бэктест показывает, как стратегия вела себя в прошлом, но рынок меняется, поэтому результат не переносится на будущее автоматически.

Учитывать ли налоги и комиссии?

Комиссии и проскальзывание закладывать обязательно, иначе результат завышен. НДФЛ 13% с прибыли, включая купоны ОФЗ, влияет на чистую доходность и его учитывают при итоговой оценке.

Подходит ли бэктест для крипты и акций Мосбиржи?

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

Источники