Как провести бэктест крипто-стратегии и не переоценить результат

Исторический тест (бэктест) прогоняет правила стратегии по прошлым рыночным данным и показывает, как бы она себя вела: сделки, просадку, распределение результата. Это инструмент проверки логики и дисциплины, а не доказательство будущей прибыли: бэктест не воспроизводит реальное исполнение, а лишь моделирует его при заданных допущениях.

Что необходимо учитывать

Реалистичность теста определяется не красотой кривой доходности, а тем, насколько честно заданы издержки и условия исполнения.

  • Комиссии. Тейкер/мейкер и их разница; заданы ли они для каждой сделки, а не «в среднем».
  • Funding. Для бессрочных фьючерсов ставка финансирования меняет результат удержания позиции — её нельзя игнорировать.
  • Проскальзывание. Разница между ценой сигнала и ценой фактического исполнения; на неликвидных инструментах и крупном объёме она растёт.
  • Ликвидность. Стакан не бесконечен: крупный ордер двигает цену и исполняется хуже, чем предполагает «идеальный» фикс.
  • Задержки и качество данных. Пропуски, ошибки бирж, разное разрешение свечей и часовые пояса искажают результат; данные должны покрывать нужный диапазон целиком.
  • Минимальный размер и шаг ордера. Округление объёма и минимальный лот меняют реальную позицию по сравнению с расчётной.

Как избежать переобучения

Стратегия, подогнанная под прошлое, красиво выглядит на истории и разваливается в реальности. Защита — разделение данных и проверка устойчивости.

  • Разделение train/test. Настраивайте параметры на одном отрезке, проверяйте на другом, которого стратегия «не видела».
  • Out-of-sample. Отдельный, заранее отложенный участок данных: результат на нём ближе к честной оценке, чем на обучающем.
  • Walk-forward. Скользящее окно: обучение → тест → сдвиг вперёд, повторно. Показывает, держится ли стратегия во времени, а не в одной точке.
  • Устойчивость параметров. Если результат резко меняется от крошечного сдвига параметра — это подгонка, а не преимущество. Хорошая стратегия даёт «плато», а не одиночный пик.

Рабочий процесс в XTester

Дисциплина важнее отдельного прогона. Разумная последовательность:

  1. Гипотеза — что именно вы проверяете и почему это может работать.
  2. Правила стратегии — вход, выход, риск на сделку, размер позиции, зафиксированы кодом.
  3. Данные — нужный диапазон, инструмент и таймфрейм; проверка покрытия и целостности.
  4. Тест — прогон с честными комиссиями, funding и проскальзыванием.
  5. Анализ риска — просадка, поведение в плохие периоды, а не только итоговая цифра.
  6. Повторная проверка — 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.