Как проводить бэктест стратегий на рынках предсказаний на Polymarket и Kalshi
Бэктест рынка предсказаний — это не бэктест акции. Контракты закрываются по $0 или $1, окна измеряются минутами, а стакан истончается ближе к закрытию. Вот как делать это честно.
Чтобы честно протестировать стратегию на рынке предсказаний, нужно воспроизвести записанный стакан, по которому торговался бы каждый рынок, рассчитать каждое исполнение с учётом реально стоявшей там ликвидности и закрыть каждую позицию по реальному исходу $0/$1. В DepthFeed это можно сделать двумя способами — без кода в Backtest Lab или через data API в собственном стеке — а затем форвард-тестировать выжившую стратегию на живых стаканах с помощью бумажной торговли.
Чем рынки предсказаний отличаются при бэктестинге
Контракт рынка предсказаний — это не акция и не перп. Каждый исход котируется от 0 до 1 — это подразумеваемая вероятность — и при расчёте одна сторона стоит ровно $1, другая $0. Крипто-рынки up/down закрываются за 5–60 минут относительно референсной цены, спреды расширяются и глубина стакана убывает ближе к закрытию, а весь жизненный цикл рынка может быть короче одной свечи на обычном графике.
Эта специфика меняет требования к бэктесту. Отбор последней цены раз в минуту упускает большую часть пятиминутного рынка; игнорирование стакана скрывает спред, определяющий P&L контракта с максимальной выплатой в один доллар; а неправильная маркировка исхода превращает победителей в проигравших. Остальная часть руководства посвящена тому, как делать каждое из этих действий правильно.
Шаг 1 — Начните с реального стакана ордеров
Бэктест может быть честным ровно настолько, насколько честны его данные. Вам нужен полный стакан ордеров — каждая стоящая заявка на покупку и продажу с объёмом, с обеих сторон — записанный при каждом изменении, а не по фиксированным временным меткам: только событийный захват позволяет увидеть весь жизненный путь краткосрочного рынка. Ни Polymarket, ни Kalshi не предоставляют собственную историческую глубину стакана, поэтому для воспроизведения стакана в его реальном виде требуется провайдер, непрерывно фиксировавший его.
DepthFeed предоставляет именно это для обеих площадок в единой схеме: Polymarket — событийный захват из CLOB-вебсокета, Kalshi — непрерывный опрос на полной глубине (до 100 уровней с каждой стороны), каждый снимок содержит временные метки в миллисекундах эпохи и присоединённую референсную цену базового крипто-актива. Один загрузчик читает данные любой площадки.
Шаг 2 — Моделируйте исполнение по глубине, а не по мидпоинту
Это шаг, отделяющий бэктест, на основе которого можно торговать, от того, который лжёт. Рыночный ордер проходит по стакану — сначала заполняет лучший уровень, затем следующий, поэтому средняя цена хуже лучшей, когда ордер потребляет больше одного уровня. Лимитный ордер встаёт в очередь и исполняется только если рынок проторговывается через его цену с достаточным объёмом. Исполнять всё по мидпоинту с нулевым проскальзыванием — стандарт большинства непрофессиональных бэктестов — систематически завышает преимущество.
Каким бы путём вы ни пошли, настаивайте на заполнении с учётом глубины. При спреде в четыре цента туда и обратно на контракте с максимальной выплатой в один доллар разница между заполнением по мидпоинту и реальным исполнением огромна — и она накапливается на каждой сделке.
Шаг 3 — Закрывайте по реальному исходу
Поскольку выплата бинарная, расчёт — это не деталь округления, это основная часть P&L. Рынки Polymarket up/down закрываются относительно «целевой цены», установленной на открытии, против финальной референсной цены на закрытии; контракты Kalshi закрываются yes/no против опубликованной референсной цены по истечении срока. Тестируйте против реального расчёта, а не предположения, и проверяйте распределение: среди закрытых крипто-рынков up/down, данные по которым мы записали, исходы близки к равновероятным, поэтому любой бэктест, где расчётное распределение далеко от этого, скорее всего неправильно маркирует победителей.
Шаг 4 — Выберите подход: без кода или через API
На DepthFeed есть два способа запустить всё вышеперечисленное. Подход без кода — это Backtest Lab: выберите монету и окно, задайте пресет или короткое правило, выберите модель исполнения — и система воспроизведёт разрешённые рынки и рассчитает результаты прямо в браузере, включая VWAP-заполнение по глубине, без необходимости строить конвейер.
Подход через API предназначен для кастомных исследований в масштабе: получите полноглубинные снимки через REST API, восстановите стакан в собственном стеке и запустите любую нужную модель. Поскольку исторический REST API и живой WebSocket отдают одинаковый JSON, загрузчик, написанный для воспроизведения истории, без изменений читает живой поток — вы торгуете ровно тем кодом, на котором проводили бэктест.
Шаг 5 — Форвард-тест перед риском реальными деньгами
Бэктест подстроен под прошлое, пусть и слегка, — поэтому последний шаг: запустить выжившее правило вперёд, на рынках, исход которых ещё никому не известен. Разверните правило в бумажную торговлю — или управляйте им из собственного бота через вебхук — и оно будет торговать на живых стаканах с виртуальными деньгами, исполняя по реальному bid/ask и закрывая позиции автоматически при разрешении. Формируемая кривая доходности — это форвард-доказательство, которое бэктест предоставить не может.
Это завершает цикл: данные → честный бэктест → форвард-тест. Дёшево отсеивайте идеи на истории, переводите выжившие на живые бумажные стаканы — и только после этого рассматривайте вложение реального капитала.
Типичные ошибки
- Последняя цена или часовые данные: скрывают спред и упускают жизнь 5–60-минутного рынка.
- Заполнение по мидпоинту: допущение нулевого проскальзывания сильно завышает преимущество на контракте с максимальной выплатой $1.
- Предполагаемый расчёт: маркируйте победителей по реальной референсной цене, а не по догадке — это основная часть P&L.
- Смещение заглядывания вперёд: реагируйте только на данные с временной меткой получения не позже момента принятия решения.
- Пропуск форвард-теста: преимущество, существующее только на закрытой истории, может не выжить на живых рынках.
Key takeaways
- 01Рынки предсказаний закрываются по $0/$1 за минуты — глубина стакана, тайминг и расчёт важнее, чем на любом обычном графике.
- 02Тестируйте по реальному записанному стакану — обе стороны, каждый уровень — фиксируйте при каждом изменении, а не с выборкой.
- 03Моделируйте исполнение по глубине (проходите по стакану); заполнение по мидпоинту незаметно завышает преимущество на контракте с выплатой максимум $1.
- 04Закрывайте по реальному исходу и проверяйте близкое к равновероятному распределение; неправильно маркированный расчёт переворачивает победителей.
- 05Запускайте без кода в Backtest Lab или через API, затем форвард-тестируйте выжившее на живых стаканах с бумажной торговлей.
Бэктест рынка предсказаний — это не бэктест акции. Контракты закрываются по $0 или $1, окна измеряются минутами, а стакан истончается ближе к закрытию. Вот как делать это честно.
Начать бесплатно