Бэктестинг8 мин чтения

Как тестировать стратегии Polymarket на ордербуке

DepthFeed Research

Команда данных рынков прогнозов

Руководства

Последняя цена, снятая раз в час, не скажет вам, исполнился бы ваш ордер или нет. Вот как тестировать стратегии Polymarket на той книге, против которой они действительно торговали бы.

Для бэктестирования стратегии Polymarket воспроизведите ее записанные полные лестницы заявок на покупку/продажу и оцените гипотетические заполнения по наблюдаемой ликвидности. Проверяйте временные метки, записанный темп и пробелы; архив не может установить точную книгу между наблюдениями. Последняя цена или одиночная средняя также упускают из виду спред и глубину, с которыми столкнулась бы реальная заявка.

Почему бэктест по последней цене врёт

Большинство свободно доступных данных Polymarket — это последняя цена сделки, часто снятая раз в час. Этого хватает, чтобы нарисовать график, и не более того. Бэктест же должен отвечать на куда более сложный вопрос: если бы мой ордер стоял в книге (или пересёк спред) в тот момент, исполнился бы он, в каком объёме и по какой цене?

Чтобы ответить, нужен ордербук — каждая стоящая заявка bid и ask вместе с её объёмом, а не одно-единственное число. Стратегия, протестированная по mid, исходит из того, что она всегда исполнялась по mid с нулевым слиппеджем, а это не так никогда. На краткосрочных крипторынках, где спреды расширяются ближе к расчёту, такое допущение способно превратить убыточную стратегию в мнимо прибыльную.

Шаг 1 — Получите данные ордербука с полной глубиной

Начните с записанных книг полной глубины с обеих сторон. DepthFeed принимает обновления Polymarket CLOB, но записанные наблюдения следуют документированному темпу захвата и могут иметь пробелы. Проверяйте доступные временные метки для вашего рынка, а не предполагайте, что каждое вышестоящее событие было сохранено.

Выгружайте нужные рынки через REST API: найдите их запросом GET /v3/{coin}/markets, затем заберите глубину из /v3/{coin}/markets/{id}/snapshots. Каждый snapshot несёт массивы цен и объёмов bid/ask плюс биржевую и принимающую метки времени в epoch-millis.

Шаг 2 — Восстановите книгу на каждый момент

Воспроизводите записанные наблюдения в порядке временных меток. Каждое описывает сохраненную книгу на момент этого наблюдения, включая лучшую цену покупки, лучшую цену продажи, глубину и спред. Не делайте выводов о точном состоянии книги или гарантированных заполнениях между наблюдениями; сделайте любое предположение об интерполяции или сохранении явным в бэктесте.

Шаг 3 — Моделируйте исполнение по реальной глубине

Теперь честно симулируйте исполнение. Маркет-ордер проходит по книге: он исполняется сначала против лучшего уровня, затем следующего, пока не исчерпает свой объём, — поэтому его средняя цена хуже касания (touch) всякий раз, когда он съедает больше, чем верхний уровень. Стоящий в книге ордер встаёт в очередь и исполняется лишь тогда, когда рынок проторговывает его цену с достаточным объёмом позади.

Расчёт исполнения по записанной лестнице — в этом весь смысл: он даёт реалистичный слиппедж и вероятность исполнения вместо фантазии о том, что вы всегда торговали по mid.

Шаг 4 — Подтяните цену базового актива

Крипторынки up/down на Polymarket движимы спот-движением базового актива. Каждый snapshot DepthFeed соединяется с высокочастотной референсной ценой Binance по метке времени epoch-millis, так что вы можете сопоставить состояние книги со спот-движением, которое переоценило контракт, — это критично для любой стратегии, торгующей связь между ценой крипты и подразумеваемой вероятностью рынка.

Шаг 5 — Проверка адаптера живых данных

Исторические ответы REST и живые кадры WebSocket используют отдельные документированные контракты. Проверьте адаптер для их идентификаторов, временных меток и полей, прежде чем передавать оба в общую логику стратегии. Бэктестируйте на записанных наблюдениях, затем протестируйте живой адаптер с помощью бумажной торговли.

Частые ошибки

  • Данные по последней цене: скрывают спред и слиппедж, завышают доходность в бэктесте.
  • Снимки с фиксированным интервалом: часовой или поминутный сэмпл пропускает большую часть жизни 5-минутного рынка.
  • Игнорирование позиции в очереди: предположение, что стоящие ордера всегда исполняются, завышает пассивные стратегии.
  • Заглядывание в будущее (look-ahead bias): реагируйте только на данные с принимающей меткой времени не позже момента вашего решения.
  • Пропуск базового актива: преимущество в crypto up/down обычно живёт в связке спот → вероятность.

Главное

  • 01Тестируйте по ордербуку, а не по последней цене — именно глубина определяет исполнение.
  • 02Используйте событийные данные: сэмплы с фиксированным интервалом упускают жизнь краткосрочных рынков.
  • 03Моделируйте маркет-ордера, проходящие по книге, и стоящие ордера, ждущие в очереди.
  • 04Подтягивайте цену базовой крипты, чтобы поймать связь спот → вероятность.
  • 05Выбирайте данные, у которых история и живой фид в одном формате, чтобы торговать тем же кодом, что и в бэктесте.

Последняя цена, снятая раз в час, не скажет вам, исполнился бы ваш ордер или нет. Вот как тестировать стратегии Polymarket на той книге, против которой они действительно торговали бы.

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

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

Лишь отчасти. Публичный API Polymarket отдаёт текущие рынки, сделки и эндпоинт истории цен, но не выдаёт исторические снимки ордербука — поэтому проиграть стоявшую книгу, против которой торговала бы стратегия, нельзя. Именно этот пробел в исторической глубине закрывают сторонние данные ордербука.

Начните тестировать Polymarket на реальной глубине.

Бесплатный старт, без карты. Переходите на платный тариф, когда стратегия готова к полному стакану.

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