Сначала запишите однозначные правила входа и выхода, затем возьмите качественные исторические данные, учтите комиссии и проскальзывание и проверьте результат на отдельном, ранее не использованном периоде. Оценивайте не только итоговую доходность, но и просадку, число сделок и распределение результатов.
Главный принцип#
Бэктест легко подогнать под прошлое: исследователь видит результат и незаметно меняет параметры, пока кривая капитала не станет привлекательной. На криптовалютном рынке проблему усиливают меняющиеся ликвидность, состав торгуемых монет, правила бирж и режимы волатильности.
Поэтому тест должен воспроизводить только ту информацию и те условия исполнения, которые действительно были доступны в момент каждой смоделированной сделки. Красивый график сам по себе ничего не доказывает, если в расчёте есть данные из будущего, исчезнувшие токены или нереалистичные цены исполнения.
Пошаговый процесс#
- Запишите правила входа и выхода до просмотра результатов. Укажите рынок, таймфрейм, точное условие сигнала, момент исполнения, размер позиции, стоп-лосс, цель и условие досрочного выхода. Формулировка должна позволять другому человеку получить те же сделки без догадок.
- Используйте данные с учётом делистингов. Набор только из монет, которые дожили до сегодняшнего дня, создаёт ошибку выжившего. По возможности включайте активы, которые были доступны в рассматриваемый период, но позднее потеряли ликвидность или были сняты с торгов.
- Смоделируйте реалистичное исполнение и издержки. Вычитайте комиссии, предполагаемое проскальзывание и спред. Для малоликвидной пары не считайте, что весь ордер всегда исполнялся по цене закрытия свечи; используйте консервативное допущение и зафиксируйте его в отчёте.
- Разделите период настройки и контрольный период. На первой части данных сформулируйте или настройте стратегию, а вторую не трогайте до финальной проверки. Если после просмотра контрольного результата вы меняете правила, этот период уже нельзя считать по-настоящему независимым.
- Проверьте соседние параметры и разные режимы рынка. Немного измените период индикатора, величину стопа или задержку исполнения. Затем отдельно посмотрите рост, падение, боковой рынок и периоды резкой волатильности. Устойчивая идея обычно не исчезает от небольшого изменения одного параметра.
Ошибки, которые искажают результат#
- Случайное использование будущих данных. Например, сигнал рассчитывается по цене закрытия свечи, но вход также записывается по этой же цене, хотя узнать окончательное значение можно было только после закрытия.
- Игнорирование делистингов и исчезнувших токенов. Такой набор данных оставляет победителей и исключает многие реальные убытки, из-за чего историческая доходность выглядит лучше.
- Оптимизация десятков параметров. Чем больше комбинаций перебрано, тем выше вероятность случайно найти отличную кривую, которая не повторится в будущем.
- Предположение, что любое касание свечи означает исполнение. Один OHLC-бар не показывает порядок движения цены внутри свечи, очередь заявок и доступный объём, поэтому лимитный ордер мог не исполниться.
Когда остановиться или изменить подход#
Разумная стратегия сохраняет приемлемые характеристики при близких значениях параметров и на нескольких рыночных участках. Единственная «идеальная» настройка, окружённая убыточными вариантами, чаще указывает на переобучение, а не на преимущество.
Остановите исследование и пересоберите тест, если источники данных неполны, временные метки расходятся, комиссии неизвестны или исполнение нельзя смоделировать без чрезмерно оптимистичных допущений. Недостоверные входные данные нельзя исправить более сложной статистикой.
Как подтвердить качество бэктеста#
Не оценивайте тест только по общей доходности. Сохраните правила, версию данных, допущения об исполнении и таблицу всех сделок, чтобы результат можно было повторить после закрытия программы.
| Контрольная точка | Подтверждение | Условие остановки |
|---|---|---|
| Правила записаны до просмотра результата | Версия документа с точными условиями сигнала и исполнения | Правила приходится толковать задним числом |
| Данные учитывают реальный состав рынка | Источник, период, список активов и сведения о делистингах | В выборке остались только нынешние торгуемые монеты |
| Издержки смоделированы реалистично | Комиссии, спред и проскальзывание указаны отдельно | Прибыль исчезает при небольшом росте издержек |
Дополнительно покажите максимальную просадку, среднюю и медианную сделку, долю прибыльных сделок, число наблюдений и зависимость результата от нескольких крупнейших сделок. Если почти вся прибыль получена в одном коротком эпизоде, стратегия может быть гораздо менее устойчивой, чем кажется.
Часто задаваемые вопросы#
Что такое ошибка заглядывания в будущее?
Это использование в смоделированном решении информации, которая в тот момент ещё не была доступна: окончательного закрытия текущей свечи, будущего состава индекса или данных, опубликованных позднее.
Можно ли провести бэктест в электронной таблице?
Да, если правила достаточно просты, а данные, временные метки и допущения об исполнении обработаны аккуратно. Таблица также удобна для ручной проверки небольшой выборки сделок.
Гарантирует ли прибыльный бэктест будущую прибыль?
Нет. Он показывает поведение правил на выбранных исторических данных и помогает выявить слабые места, но не учитывает все будущие изменения рынка, ликвидности и поведения участников.
Связанные руководства#
Источники#
- Coinbase: типы ордеров
- CFTC: предупреждение для клиентов о виртуальных валютах
- Kraken: типы торговых ордеров
Предупреждение о риске: Торговля криптовалютой может привести к быстрым убыткам. Примеры приведены в образовательных целях и не являются персональной финансовой рекомендацией. До совершения сделки проверьте правила площадки, комиссии, а также применимые юридические и налоговые обязательства.
Редакционный стандарт
Материал носит образовательный характер и основан на источниках. Меры безопасности, правила бирж и правовые требования могут меняться — проверяйте важные шаги по официальным данным.