PULSAR.INK

Бэктестинг: объяснение

Время чтения: 7 мин Обновлено: 2026-04-24
Бэктестинг запускает стратегию на исторических данных, чтобы оценить, как она работала бы в прошлом. Эта страница охватывает скользящую вперёд валидацию, смещение заглядывания вперёд, смещение выживаемости, реалистичное проскальзывание и конкретные причины, по которым бэктесты криптостратегий систематически завышают результаты.

Бэктестинг — это симуляция стратегии на исторических данных. Цель — решить, достаточно ли у стратегии преимущества для запуска в живом режиме. Выходные данные бэктеста — кривая 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% больше просадки — чтобы получить что-то ближе к тому, что будет делать живая стратегия.

Скользящая вперёд валидация

Честная замена «обучить на всей истории, заявить что работает» — скользящая вперёд валидация:

  1. Выбрать окно внутри выборки (например, 2021-01–2022-01) и настроить стратегию на нём.
  2. Выбрать окно вне выборки (2022-01–2022-04) и запустить настроенную стратегию без дополнительной настройки.
  3. Сдвинуть окно вперёд (2021-04–2022-04 внутри выборки, 2022-04–2022-07 вне выборки) и повторить.
  4. Конкатенировать все P&L вне выборки. Эта конкатенация — то, что стратегия реально может ожидать произвести.

Скользящая вперёд валидация систематически снижает отчётную доходность на 30–60% по сравнению с одноокошным фитом. Операторы, не запускающие её, получают завышенные цифры.

Специфические ловушки криптовалют

Специфические заметки по стратегиям

Более широкая дисциплина охвачена в Управление рисками в автоматической торговле: никакая точность бэктеста не снимает необходимости в лимитах на живом счёте, потому что единственная переменная, которую бэктест не может смоделировать, — это оператор.

Дополнительное чтение в этой базе знаний