Как провести бэктест крипто-стратегии и не переоценить результат
Исторический тест (бэктест) прогоняет правила стратегии по прошлым рыночным данным и показывает, как бы она себя вела: сделки, просадку, распределение результата. Это инструмент проверки логики и дисциплины, а не доказательство будущей прибыли: бэктест не воспроизводит реальное исполнение, а лишь моделирует его при заданных допущениях.
Что необходимо учитывать
Реалистичность теста определяется не красотой кривой доходности, а тем, насколько честно заданы издержки и условия исполнения.
- Комиссии. Тейкер/мейкер и их разница; заданы ли они для каждой сделки, а не «в среднем».
- Funding. Для бессрочных фьючерсов ставка финансирования меняет результат удержания позиции — её нельзя игнорировать.
- Проскальзывание. Разница между ценой сигнала и ценой фактического исполнения; на неликвидных инструментах и крупном объёме она растёт.
- Ликвидность. Стакан не бесконечен: крупный ордер двигает цену и исполняется хуже, чем предполагает «идеальный» фикс.
- Задержки и качество данных. Пропуски, ошибки бирж, разное разрешение свечей и часовые пояса искажают результат; данные должны покрывать нужный диапазон целиком.
- Минимальный размер и шаг ордера. Округление объёма и минимальный лот меняют реальную позицию по сравнению с расчётной.
Как избежать переобучения
Стратегия, подогнанная под прошлое, красиво выглядит на истории и разваливается в реальности. Защита — разделение данных и проверка устойчивости.
- Разделение train/test. Настраивайте параметры на одном отрезке, проверяйте на другом, которого стратегия «не видела».
- Out-of-sample. Отдельный, заранее отложенный участок данных: результат на нём ближе к честной оценке, чем на обучающем.
- Walk-forward. Скользящее окно: обучение → тест → сдвиг вперёд, повторно. Показывает, держится ли стратегия во времени, а не в одной точке.
- Устойчивость параметров. Если результат резко меняется от крошечного сдвига параметра — это подгонка, а не преимущество. Хорошая стратегия даёт «плато», а не одиночный пик.
Рабочий процесс в XTester
Дисциплина важнее отдельного прогона. Разумная последовательность:
- Гипотеза — что именно вы проверяете и почему это может работать.
- Правила стратегии — вход, выход, риск на сделку, размер позиции, зафиксированы кодом.
- Данные — нужный диапазон, инструмент и таймфрейм; проверка покрытия и целостности.
- Тест — прогон с честными комиссиями, funding и проскальзыванием.
- Анализ риска — просадка, поведение в плохие периоды, а не только итоговая цифра.
- Повторная проверка — out-of-sample / walk-forward; сохранить holdout и не «подглядывать».
Какие метрики смотреть
Одна доходность обманчива. Смотрите на набор:
- Просадка (drawdown) — максимальная и её длительность: переживёте ли вы такой период психологически и по капиталу.
- Число сделок — на нескольких сделках любой результат случаен; нужна статистическая база.
- Profit factor / expectancy — сколько приносит стратегия на единицу риска в среднем.
- Стабильность по периодам — прибыль из года в год / из окна в окно, а не один удачный участок.
Не выбирайте стратегию по одной метрике доходности — она легче всего подгоняется.
Ограничения
- Прошлый результат не гарантирует будущий: рынок меняется, режимы сменяются.
- Качество бэктеста ограничено качеством данных и точностью модели исполнения — при заниженных издержках результат завышен.
- Успешная компиляция или красивый бэктест не подтверждают, что стратегия будет работать вживую. Симуляция — не реальная торговля.
Частые вопросы
Как выбрать период данных? Берите диапазон, включающий разные рыночные режимы (рост, падение, боковик), а не только удобный участок. Слишком короткий период не даёт статистики; слишком «вычищенный» — вводит в заблуждение.
Как учитывать комиссии и проскальзывание? Задавайте их явно для каждой сделки, ближе к худшему реалистичному сценарию. Тест без издержек систематически завышает результат.
Чем out-of-sample отличается от walk-forward? Out-of-sample — одна отложенная проверка на «невиданных» данных. Walk-forward — многократное скользящее «обучение → тест → сдвиг», которое проверяет устойчивость во времени, а не в одной точке.
Почему хороший бэктест не гарантирует реальный результат? Потому что он моделирует исполнение при допущениях; реальные ликвидность, задержки, проскальзывание и смена режима рынка отличаются от модели.
Какие признаки указывают на переобучение? Резкая чувствительность к параметрам, отличный результат на обучении и слабый на out-of-sample, много правил при малом числе сделок, «идеальная» гладкая кривая.
XTester работает без сети: локальная разработка стратегий и исторический тест на вашей машине. Автоматизировать проверку из ИИ-агента можно через MCP.
Продукт студии EasyTrading.