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

Пошаговый разбор — от первого полученного снимка до полноценного бэктеста с реалистичным моделированием исполнения.

Почему бэктестинг рынков предсказаний отличается

Рынки предсказаний не похожи на спотовый крипторынок. Цены ограничены диапазоном от 0 до 1, у рынков фиксированное время экспирации, а профиль ликвидности совсем не похож на стакан BTC/USDT. Стратегия, которая работает на Binance, не обязательно сработает на Polymarket. Нужны данные именно рынков предсказаний — и нужна глубина стакана, а не только ценовые потоки.

Шаг 1: получите исторические данные

PolyTest — это API для бэктестинга на Polymarket, который позволяет трейдерам воспроизводить исторические стаканы и тестировать торговые стратегии на крипторынках предсказаний. Зарегистрируйтесь на polytest.io, начните 3-дневный бесплатный пробный период, получите API-ключ и начинайте отправлять запросы. Доступ к реальным данным снимков у вас будет меньше чем через 5 минут.

# List BTC 5-minute markets
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.polytest.io/api/v1/markets?coin=btc&market_type=5m&limit=20"

Шаг 2: разберитесь в данных

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

Шаг 3: избегайте заглядывания в будущее

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

Шаг 4: моделируйте реалистичное исполнение

Именно здесь разваливается большинство бэктестов. Если вы предполагаете, что можете купить по средней цене, результаты будут выглядеть намного лучше реальности. Используйте данные о глубине стакана для моделирования исполнения: проходите по уровням, забирайте доступную ликвидность на каждой цене и считайте среднюю цену исполнения с учётом проскальзывания. Ордер на 100 акций при средней цене 0.52 может на деле исполниться по 0.527, если на стороне аска ликвидность тонкая.

function simulateFill(
  orderbook: { price: number; size: number }[],
  quantity: number
) {
  let filled = 0;
  let cost = 0;

  for (const level of orderbook) {
    const fillAtLevel = Math.min(level.size, quantity - filled);
    cost += fillAtLevel * level.price;
    filled += fillAtLevel;
    if (filled >= quantity) break;
  }

  return {
    avgPrice: cost / filled,
    filled,
    slippage: cost / filled - orderbook[0].price,
  };
}

Шаг 5: учитывайте время

Рынки Polymarket Up/Down разрешаются в определённое время. 5-минутный рынок BTC, который начинается в 14:00, разрешается в 14:05. Ваша стратегия должна знать, когда входить и когда рынок закрывается. Снимки PolyTest содержат метки времени с точностью до миллисекунды, поэтому время входа можно моделировать точно. Не рассчитывайте, что войдёте на открытии рынка: к тому моменту, когда вы увидите цену, она может уже сдвинуться.

Шаг 6: измеряйте то, что важно

Одна лишь доля прибыльных сделок на рынках предсказаний вводит в заблуждение. Отслеживайте: P&L после проскальзывания, максимальную просадку, коэффициент Шарпа, если стратегия работает непрерывно, и то, как меняются результаты в разных рыночных условиях. Стратегия, которая печатает деньги на трендовом рынке, может терять их на боковом. Используйте фильтрацию по диапазону времени в PolyTest, чтобы тестировать на разных периодах.

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

Бэктест на средней цене вместо моделирования исполнения по стакану. Игнорирование спреда — спреды на рынках Polymarket Up/Down могут составлять 2-5 центов, и это быстро съедает маржу. Тест на одной монете или одном таймфрейме с предположением, что результат обобщается. Переобучение на коротком временном окне. Неучёт того, что ваши ордера сдвинули бы рынок, если вы торгуете ощутимым объёмом.