Бэктестинг
Бэктестинг (Backtesting) — это проверка торговой системы на исторических ценовых данных с целью оценить, как она работала бы в прошлом. Результат бэктеста показывает доходность, просадки и статистику сделок стратегии за выбранный период, позволяя принять решение о её применении на реальном счёте.
До появления доступных вычислительных мощностей бэктестинг был привилегией институциональных фондов с собственными серверами и командами разработчиков. С распространением Python, открытых библиотек (Backtrader, Zipline, Vectorbt) и платформ вроде TradingView и QUIK процедура стала доступна розничным трейдерам. На МосБирже исторические данные по акциям и фьючерсам доступны через брокерские терминалы и напрямую через API биржи, хотя глубина архива по отдельным инструментам ограничена. Минимальный порог входа сегодня, это ноутбук, бесплатный Python и файл с котировками.
Как устроен бэктест
Процедура бэктеста состоит из нескольких последовательных этапов. Пропуск любого из них снижает достоверность результата.
Формализация правил. Стратегия должна быть записана как набор однозначных условий: когда входить, когда выходить, какой размер позиции, где стоп-лосс. Если правило нельзя сформулировать без слов «на глаз» или «по ощущениям», протестировать его на истории невозможно.
Выбор данных. Определяется инструмент (или набор инструментов), таймфрейм и временной диапазон. Минимальный период зависит от частоты сделок: для дневной стратегии нужны данные хотя бы за 5–10 лет, для внутридневной хватает 1–2 лет с поминутными свечами. Качество данных критично: пропущенные свечи, ошибки в ценах, отсутствие учёта дивидендных гэпов и сплитов искажают результат не меньше, чем ошибки в логике самой стратегии.
Прогон стратегии. Алгоритм проходит по историческим данным свеча за свечой, открывая и закрывая сделки по заданным правилам. На этом этапе учитываются комиссии брокера и проскальзывание; без них результат систематически завышен.
Анализ результатов. По итогам прогона рассчитываются метрики, которые позволяют сравнить стратегию с альтернативами и оценить её пригодность для реальной торговли.
На выходе трейдер получает профиль стратегии, а не одну цифру прибыли: при каких условиях она зарабатывает, когда теряет и насколько чувствительна к изменению параметров.
Ключевые метрики результата
Одна цифра доходности ничего не говорит о качестве стратегии. Два бэктеста с одинаковой годовой доходностью 30% могут скрывать за собой совершенно разные риски.
Метрики интерпретируются в комплексе, а не по одной. Стратегия с просадкой 15% и Шарпом 1,2 предпочтительнее стратегии с просадкой 50% и Шарпом 1,8, потому что вторую в реальности мало кто продолжит исполнять после потери половины депозита. Отдельное внимание стоит уделить стабильности результата по годам: если вся прибыль стратегии приходится на один удачный год, а остальные околонулевые, доверять такому бэктесту рискованно.
Почему бэктест обманывает
Положительный результат бэктеста не означает, что стратегия будет прибыльной в будущем. Между историческим тестом и реальной торговлей лежит набор систематических искажений, и знание этих ловушек важнее самого тестирования.
Оверфиттинг. Подгонка параметров под исторические данные до идеального результата. Чем больше параметров у стратегии и чем точнее они настроены на конкретный участок истории, тем выше вероятность, что на новых данных она развалится. Характерный признак: небольшое изменение параметра (скользящая средняя 47 вместо 50) резко меняет результат.
Ошибка выжившего. Тест на текущем составе индекса игнорирует компании, которые обанкротились или были исключены за период теста. Стратегия, протестированная только на «выживших» бумагах, систематически завышает доходность.
Заглядывание в будущее (look-ahead bias). Использование данных, которые на момент принятия решения ещё не были доступны: закрытие дневной свечи для входа в начале того же дня, квартальная отчётность до её публикации.
Лучшая защита от этих ловушек заключается в разделении данных. Стратегия оптимизируется на одном участке истории (in-sample), а проверяется на другом, который не участвовал в оптимизации (out-of-sample). Если результат на out-of-sample значительно хуже, чем на in-sample, это сигнал подгонки. Следующий шаг после успешного бэктеста, это форвард-тестирование: запуск стратегии на демо-счёте или с минимальным объёмом на реальном рынке для проверки в текущих условиях.
От бэктеста к реальным деньгам
Переход от тестового результата к живой торговле на реальном счёте сопровождается неизбежной деградацией показателей. Проскальзывание на входе и выходе, ограничения ликвидности, задержки исполнения, эмоциональный фактор, изменение рыночного режима вносят разницу между тем, что показал тест, и тем, что получит трейдер.
На российском рынке разрыв между бэктестом и реальностью может быть шире, чем на западных площадках. Ликвидность на МосБирже сосредоточена в нескольких десятках инструментов, а по акциям второго-третьего эшелона исторические данные часто неполны, содержат аномальные гэпы и периоды с нулевым оборотом. Стратегия, показавшая хороший результат на данных Сбербанка или фьючерса на индекс МосБиржи, не обязательно воспроизводима на менее ликвидных бумагах. Дополнительный фактор, характерный для российского рынка после 2022 года, это изменение состава участников: уход нерезидентов и рост доли розничных трейдеров изменили микроструктуру, и стратегии, откалиброванные на данных до 2022 года, могут не учитывать новый режим.
Практический ориентир: если бэктест показывает доходность 40% годовых, разумно ожидать 15–25% в реальной торговле. Разница между этими цифрами и есть цена всех искажений, которые тест не учёл. Бэктест не предсказывает будущее, но без него любая торговая идея остаётся непроверенной гипотезой.
