Как тестировать стратегии на рынках предсказаний
Пошаговый разбор — от первого полученного снимка до полноценного бэктеста с реалистичным моделированием исполнения.
Почему бэктестинг рынков предсказаний отличается
Рынки предсказаний не похожи на спотовый крипторынок. Цены ограничены диапазоном от 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 центов, и это быстро съедает маржу. Тест на одной монете или одном таймфрейме с предположением, что результат обобщается. Переобучение на коротком временном окне. Неучёт того, что ваши ордера сдвинули бы рынок, если вы торгуете ощутимым объёмом.