DepthFeed/Both venues·Бэктестинг

Как проводить бэктест стратегий на рынках предсказаний на Polymarket и Kalshi

Бэктест рынка предсказаний — это не бэктест акции. Контракты закрываются по $0 или $1, окна измеряются минутами, а стакан истончается ближе к закрытию. Вот как делать это честно.

DepthFeed··9 min

Чтобы честно протестировать стратегию на рынке предсказаний, нужно воспроизвести записанный стакан, по которому торговался бы каждый рынок, рассчитать каждое исполнение с учётом реально стоявшей там ликвидности и закрыть каждую позицию по реальному исходу $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, окна измеряются минутами, а стакан истончается ближе к закрытию. Вот как делать это честно.

Начать бесплатно

Ответы на вопросы.

Воспроизведите записанный стакан, по которому торговался бы каждый рынок, рассчитайте исполнение по реальной стоявшей ликвидности (не по мидпоинту) и закройте каждую позицию по реальному исходу $0/$1. В DepthFeed это можно сделать без кода в Backtest Lab или через data API в собственном стеке, а затем форвард-тестировать результат с бумажной торговлей на живых стаканах.