Глубина стакана против последней цены: почему большинство бэктестов на прогнозных рынках лгут
Последняя цена — это одно число. Order book — это ликвидность, на которой это число держится. Бэктесты, построенные на первом, незаметно раздувают любой результат.
Последняя цена — это цена самой недавней сделки; глубина стакана — это все стоящие в 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 — это ликвидность, на которой это число держится. Бэктесты, построенные на первом, незаметно раздувают любой результат.
Начать бесплатно