Risk Management / 9 min read
Как бэктестировать крипто-стратегию и не обмануть себя
Бэктестинг крипто-стратегий: как избежать подгонки кривой, смещения взгляда вперёд и ложных результатов. Метрики, выборки и форвард-тест как мост к реальной торговле.
Бэктестинг торговой стратегии создаёт иллюзию строгости. Ты загружаешь исторические данные, запускаешь оптимизацию, смотришь на восходящую кривую капитала — и убеждаешь себя, что нашёл преимущество. В большинстве случаев ты нашёл только красивое описание прошлого. Разница между реальным преимуществом и хорошо подогнанным бэктестом — это одно из фундаментальных разграничений в систематической торговле, и крипторынок делает эту ошибку особенно дорогостоящей.
Бэктест отвечает ровно на один вопрос: как работали эти правила на этих данных в этот период. Он не говорит ничего о том, что будет дальше. Это звучит банально, но именно это смешение — «стратегия хорошо отработала на истории» с «стратегия будет работать в будущем» — является источником большинства провалов в систематической торговле. Бэктест — это диагностический инструмент, а не доказательство прибыльности.
Разделение данных на in-sample и out-of-sample — это то место, где дисциплина в процессе проявляется первым делом. In-sample — это исторический период, на котором ты разрабатываешь и оптимизируешь правила. Out-of-sample — данные, которые ты держишь отдельно и используешь ровно один раз: после того, как все параметры зафиксированы, чтобы проверить, работает ли логика за пределами того окна, на котором она строилась. Типичная ошибка — оптимизировать на всей доступной истории и называть это бэктестом. Ты не протестировал стратегию. Ты нашёл набор параметров, который лучше всего описывал прошлое. Это принципиально другая задача. Правильный процесс: оставить 30–40% данных нетронутыми, разработать стратегию на in-sample, заморозить параметры и запустить на out-of-sample один раз. Если результаты out-of-sample резко хуже, чем in-sample — ты подогнал.
Переподгонка, или curve-fitting, — это центральная болезнь систематической разработки стратегий. Она возникает, когда ты добавляешь достаточно параметров, условий и фильтров, чтобы стратегия фактически запоминала обучающие данные вместо того, чтобы обнаруживать структурную рыночную закономерность. Стратегия с двенадцатью параметрами, оптимизированная на семи годах часовых данных Bitcoin, почти наверняка переподогнана — даже если бэктест выглядит безупречно. Критерий не в форме кривой капитала. Критерий в том, можешь ли ты объяснить в одном предложении, почему покупатели и продавцы должны вести себя так устойчиво. Если объяснения нет — преимущество, скорее всего, статистический артефакт процесса оптимизации.
Требования к объёму выборки недооцениваются в крипто, отчасти потому что трейдеры считают многолетнюю историю достаточной по определению. Нет, если стратегия торгует редко. Стратегия, дающая 30 сделок в год за три года, производит 90 сделок в бэктесте. Для надёжной оценки преимущества статистически требуется минимум 200–400 сделок, в зависимости от вариативности исходов. На 90 сделках монте-карло-симуляция той же стратегии с теми же параметрами выдаст кривые капитала от катастрофических до выдающихся — и все они будут статистически согласованы с одним и тем же ожиданием. Частота сделок, умноженная на временной горизонт, определяет, достаточна ли выборка — не время само по себе.
Look-ahead bias в крипто заслуживает отдельного внимания, потому что его легче допустить случайно, чем в традиционных рынках. В классических бэктестах это обычно означает использование будущей цены или будущего значения индикатора для генерации сигнала. В крипто он появляется в более тонких формах. Использование дневных цен закрытия для моделирования внутридневных входов предполагает, что ты знал закрытие до того, как оно произошло. Многие поставщики криптоданных реконструируют OHLCV-свечи из торговых данных постфактум, и методология обработки тонколиквидных периодов или отказов бирж вносит систематические искажения в результаты. Считай, что в данных есть проблемы, пока не верифицировал методологию источника.
Структурные особенности крипторынка делают бэктестинг значительно сложнее, чем на фондовом рынке. Ликвидность большинства альткоинов настолько низка, что смоделированные исполнения не были бы достижимы при тестируемых объёмах. Отказы бирж, особенно на фьючерсных платформах в периоды высокой волатильности, создают разрывы в исполнении, которые ни один бэктест не воспроизведёт. Ставки финансирования на перпетуальных фьючерсах принципиально меняются между рыночными циклами: стратегия, игнорирующая funding-расходы, может выглядеть прибыльной при торговле в убыток. Моделирование комиссий должно быть детальным — maker против taker, уровни объёма, реализованное проскальзывание сверх номинальной комиссии — иначе бэктест оптимистичен по построению.
Форвард-тестинг — это мост между валидацией на истории и развёртыванием реального капитала. После того как стратегия прошла in-sample-разработку и out-of-sample-проверку, ты торгуешь её в реальных рыночных условиях в минимальном объёме и отслеживаешь, совпадает ли живая статистика с тем, что предсказывал бэктест. Ключевой вопрос — не заработала ли стратегия за период форвард-теста. Ключевой вопрос — соответствуют ли поведение отдельных сделок, средний выигрыш, средний проигрыш и вариативность исходов тому, что предсказывала симуляция. Значительное расхождение означает либо дефект в бэктесте, либо изменение рыночных условий, которое обесценило преимущество.
Метрики, которые реально важны, — не те, которые большинство трейдеров приводят в первую очередь. Процент выигрышей сам по себе почти бессмысленен без привязки к соотношению выигрыша и проигрыша. 35% выигрышей при среднем выигрыше в 3R лучше, чем 65% выигрышей при среднем выигрыше в 0.8R. Математическое ожидание — средняя сумма, заработанная на единицу риска — это самый важный одиночный показатель. Коэффициент Шарпа выше 1.0 означает, что доходность адекватна относительно волатильности. Максимальная просадка и recovery factor — чистая прибыль делённая на максимальную просадку — показывают, выживает ли стратегия в неизбежных полосах потерь. Стратегия с высоким ожиданием, но recovery factor ниже 2.0 требует дисциплины управления капиталом, которую большинство трейдеров не выдержит на практике.
Практический вывод прямой: разрабатывай только на in-sample, фиксируй все параметры, запускай on out-of-sample ровно один раз, требуй минимум 300 сделок в совокупной выборке, верифицируй методологию источника данных, моделируй комиссии и проскальзывание консервативно. Если результат out-of-sample неудовлетворительный — правильный ответ не переоптимизировать до тех пор, пока он не станет приемлемым. Переоптимизация разрушает само разграничение между in-sample и out-of-sample. Измерь сначала — потом решай, реально ли преимущество.
Контекст исследования
Как использовать материал: Как бэктестировать крипто-стратегию и не обмануть себя
Этот материал связан с темами: backtest crypto strategy, crypto backtesting, overfitting trading, trading strategy testing. В логике BlackHole сначала читается контекст, затем ожидается подтверждение, и только после этого оценивается качество возможного исполнения.
Контекст
Сначала оцениваются режим рынка, ликвидность и структура вокруг цены.
Подтверждение
Важно отделять ранний интерес от фактов, которые действительно поддерживают сценарий.
Исполнение
Идея должна быть связана с риском, таймингом и понятным процессом решения.
Рабочий процесс BH Terminal
Превратите аналитику в структурированный процесс принятия решений.
Используйте публичные инструменты, чтобы оценивать риск до входа, или запросите ранний доступ к закрытой экосистеме BlackHole.
Связанные материалы