Бэктестинг: объяснение
Бэктестинг — это симуляция стратегии на исторических данных. Цель — решить, достаточно ли у стратегии преимущества для запуска в живом режиме. Выходные данные бэктеста — кривая P&L, профиль просадки и торговая статистика — на основе которых оператор решает: развернуть, перенастроить или отказаться.
Проблема бэктестов не в том, что они лгут. А в том, что они сообщают очень конкретный вид правды — «как стратегия работала бы на этой истории с этими допущениями» — которую операторы постоянно неправильно интерпретируют как прогноз.
Что честный бэктест показывает
| Метрика | Что говорит | Чего не говорит |
|---|---|---|
| Общая доходность | Накопленный P&L за выборку | Насколько волатильным был путь |
| Коэффициент Шарпа | Доходность на единицу волатильности | Хвостовой риск; асимметрия волатильности |
| Максимальная просадка | Наихудший пик-к-дну в выборке | Возможная просадка вне выборки |
| Доля прибыльных сделок | Процент прибыльных сделок | Распределение размеров выигрышей и потерь |
| Фактор прибыли | Сумма(выигрышей) / Сумма(потерь) | Насколько стабильно это соотношение во времени |
| Время в позиции | Процент времени, когда капитал был задействован | Альтернативные издержки простоя |
| Количество сделок | Размер выборки результатов | Были ли все исполнения реалистичными |
| Учёт проскальзывания + комис. | Прибыльность после издержек | Глубина реального стакана при заданном объёме |
Если бэктест не отчитывается по всем этим метрикам, это реклама, а не бэктест.
Четыре смещения, уничтожающие розничные бэктесты
1. Смещение заглядывания вперёд (look-ahead bias)
Стратегия использует данные, недоступные в момент принятия решения. Классический случай — вычисление индикатора на закрытии текущего бара и торговля внутри того же бара. Также распространено: ребалансировка против вселенной, выбранной со знанием того, какие токены дожили до сегодняшнего дня (отсюда «смещение выживаемости»).
Исправление: решения в момент t должны использовать только данные, доступные в t. Обеспечивайте это, сдвигая все сигналы минимум на один бар и торгуя на открытии следующего бара, а не на закрытии текущего.
2. Смещение выживаемости
Вселенная, по которой вы тестируете, — это вселенная, существующая сегодня. Каждый делистированный токен, каждая умершая биржа, каждый провалившийся протокол отсутствует. Стратегия возврата к среднему, которая «работает» на сегодняшней вселенной, была бы уничтожена вселенной, существовавшей пять лет назад, потому что проигравшие исчезли.
Исправление: тестируйте по вселенной на конкретный момент времени — набору активов, доступных для торговли на каждую дату, — что дорого собирать для крипты и практически невозможно для токенов с длинным хвостом. Следующее лучшее исправление — ограничить область бэктеста топ-N активов по ликвидности, признать смещение и соответственно корректировать размеры.
3. Смещение по периоду выборки
Окно бэктеста — это единственный срез истории рынка, и выбранный срез влияет на результат сильнее, чем стратегия. Сетка BTC/USDT с 2023-01 по 2024-01 выглядит идеально (боковик). Та же сетка с 2024-02 по 2025-04 выглядит ужасно (тренд). Ни одно окно не является неверным; оба неполны.
Исправление: отчитывайтесь по нескольким вне-выборочным окнам, включая полный цикл бык–медведь–бык. Отчитывайтесь о распределении, а не об одном числе.
4. Недооценка проскальзывания
Бэктест исполняет по исторической средней цене. На живых рынках исполнение происходит против спреда, а иногда и хуже него, когда стакан тонкий или движение быстрое. Для сеточных ботов, совершающих сотни сделок в день, ошибка в 5 б.п. по проскальзыванию накапливается до очень другого итогового счёта.
Исправление: моделируйте реалистичные исполнения:
- Ордера тейкера — по наихудшей видимой цене запрашиваемого объёма в этот момент времени.
- Ордера мейкера исполняются только если цена торгуется сквозь выставленный уровень, а не просто касается его.
- Во время баров с высокой волатильностью расширяйте модель спреда; в часы низкой ликвидности ограничивайте объём ордера реалистичной долей объёма бара.
Ни один публичный движок бэктестинга не делает всё это идеально. Прагматичный подход — провести бэктест, затем дисконтировать результат — на 20–40% меньше ожидаемой доходности, на 30–50% больше просадки — чтобы получить что-то ближе к тому, что будет делать живая стратегия.
Скользящая вперёд валидация
Честная замена «обучить на всей истории, заявить что работает» — скользящая вперёд валидация:
- Выбрать окно внутри выборки (например, 2021-01–2022-01) и настроить стратегию на нём.
- Выбрать окно вне выборки (2022-01–2022-04) и запустить настроенную стратегию без дополнительной настройки.
- Сдвинуть окно вперёд (2021-04–2022-04 внутри выборки, 2022-04–2022-07 вне выборки) и повторить.
- Конкатенировать все P&L вне выборки. Эта конкатенация — то, что стратегия реально может ожидать произвести.
Скользящая вперёд валидация систематически снижает отчётную доходность на 30–60% по сравнению с одноокошным фитом. Операторы, не запускающие её, получают завышенные цифры.
Специфические ловушки криптовалют
- Миграция биржи. Бэктест BTC/USDT на Бирже A с 2019 года может сшивать данные с биржи, которой больше нет. Ликвидность и спреды не переносятся.
- Отвязка стейблкоина. Стратегия, использующая USDT как котировочную валюту, предполагает USDT = $1 на каждом баре. Это было неверно в расширенных окнах (май 2022, март 2023), и бэктест обычно не корректирует это.
- Разводнение токена / аирдроп. Изменения предложения токена незаметно меняют «цену» на длинных горизонтах.
- Изменения расписания комиссий. Биржи меняют ставки мейкера/тейкера ежеквартально. Бэктест 2020 года с комиссиями 2026 года — оптимистичен.
- Базовые ставки финансирования фьючерсов. Ставки финансирования снижались с 2021 года по мере созревания ликвидности; бэктест финансирующего арбитража 2018 года — не прогноз 2026 года.
Специфические заметки по стратегиям
- Стратегия сеточной торговли — бэктесты сетки на одном диапазоне всегда выглядят идеально. Повторно протестируйте ту же сетку в медвежьем рынке 2022 года и в прорыве Q1 2024; цифры очень разные.
- Стратегия DCA-бота — бэктесты DCA наиболее честны, но зависят от пути в зависимости от даты старта. Мультистартовый бэктест — решение.
- Арбитражные боты — бэктесты игнорируют риск контрагента и задержку перевода, являющиеся двумя крупнейшими источниками реальных потерь.
- Боты сигнальной торговли — бэктест провайдера сигналов почти всегда страдает смещением выживаемости; повторно запустите по собственной политике исполнения оператора.
Более широкая дисциплина охвачена в Управление рисками в автоматической торговле: никакая точность бэктеста не снимает необходимости в лимитах на живом счёте, потому что единственная переменная, которую бэктест не может смоделировать, — это оператор.
Дополнительное чтение в этой базе знаний
- Что такое автоматическая торговля криптовалютой? — более широкая категория.
- Управление рисками в автоматической торговле — ограничения, которые связывают нижний предел любой стратегии, независимо от того, что показал бэктест.