DepthFeed/Both venues·Качество данных

Глубина стакана против последней цены: почему большинство бэктестов на прогнозных рынках лгут

Последняя цена — это одно число. Order book — это ликвидность, на которой это число держится. Бэктесты, построенные на первом, незаметно раздувают любой результат.

DepthFeed··6 min

Последняя цена — это цена самой недавней сделки; глубина стакана — это все стоящие в order book заявки на покупку и продажу с их объёмом, по обеим сторонам. Бэктест, построенный на данных о последней цене, исходит из того, что вы исполнились по этой цене с нулевым проскальзыванием, — но реальные сделки идут по стакану, платят спред и съедают объём на всё более худших уровнях. Именно из-за этого разрыва бэктесты, не учитывающие глубину, систематически завышают преимущество.

Что на самом деле показывает каждый из них

ВопросПоследняя ценаГлубина стакана
Какой была самая недавняя сделка?ДаДа (топ стакана ± сделки)
Какой спред прямо сейчас?НетДа
Какой объём я могу исполнить по лучшей цене?НетДа
Какое проскальзывание заплатит более крупная заявка?НетДа
Исполнилась бы моя стоящая в стакане заявка?НетДа (с моделированием очереди)

Как бэктест, не учитывающий глубину, раздувает доходность

Допустим, рынок показывает последнюю цену 0.50. Бэктест по последней цене исполняет вашу покупку по 0.50 и вашу продажу по 0.50. В реальности стакан может быть 0.48 bid / 0.52 ask — так что рыночная покупка платит 0.52, а рыночная продажа получает 0.48. Эти четыре цента спреда на полном обороте, на контракте, который выплачивает максимум 1.00, — огромная величина, и она накапливается на каждой сделке в бэктесте.

Добавьте проскальзывание на более крупных заявках, которые проходят сквозь лучшую цену в более тонкие уровни, — и картина становится ещё хуже. Ничего этого не видно без стакана, поэтому бэктест без учёта глубины показывает преимущество, которое испаряется в тот же момент, когда вы торгуете реальный объём.

На Polymarket и Kalshi история одна и та же

На Polymarket CLOB ведёт стакан bid/ask по каждому исходу; спред и стоящий объём — это ровно то, что платит и съедает рыночная заявка. На Kalshi у бинарного контракта есть yes/no стакан до 100 levels на сторону; работает та же логика спреда и проскальзывания, причём спреды обычно расширяются ближе к расчёту.

В любом случае дисциплина идентична: бэктестить по записанному стакану, по обеим сторонам, на каждом уровне — а не по последнему принту. DepthFeed отдаёт эту полную глубину для обеих площадок в одной схеме, так что один и тот же код бэктеста читает любой рынок.

Key takeaways

  • 01Последняя цена скрывает спред, стоящий объём и проскальзывание реальной заявки.
  • 02Рыночные заявки идут по стакану и исполняются хуже лучшей цены; стакан — единственный способ это увидеть.
  • 03Бэктесты без учёта глубины завышают преимущество, и ошибка накапливается по всем сделкам.
  • 04Та же логика одинаково применима и к CLOB Polymarket, и к yes/no стакану Kalshi.

Последняя цена — это одно число. Order book — это ликвидность, на которой это число держится. Бэктесты, построенные на первом, незаметно раздувают любой результат.

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

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

Для построения графиков и грубого отслеживания вероятностей — да. Для бэктеста исполнения — нет: последняя цена не скажет вам ни спред, ни доступный объём, ни проскальзывание, которое заплатит реальная заявка, поэтому любая оценка P&L на её основе оптимистична на неизвестную и часто большую величину.