Polymarket Bot Tutorial · Глава 23 из 32
Паттерны bot для 5-минутных BTC/ETH up-down markets на Polymarket: 288 экспираций в день, latency-critical execution, источники edge, почему большинство retail bots проигрывают и каркас кода для стратегии.
Что охватывает эта глава
5-минутная серия BTC up/down на Polymarket разрешается 288 раз в день, накапливая любой edge через множество повторений. Большинство retail bots здесь проигрывают, несмотря на объем, потому что планка по latency и edge задается профессиональными фирмами. Эта глава - то, что выживает.
- Что такое 5-min crypto markets
- 288 expirations per day = compounding reps
- Почему retail bots здесь проигрывают
- Источники edge, которые выживают
- Latency budget
- Risk: small per-trade, big per-day
- Code: 5-min strategy skeleton
Что такое 5-min crypto markets
5-minute crypto markets на Polymarket - это бинарные up/down вопросы по цене BTC (и ETH). Новые рынки открываются каждые 5 минут; каждый из них разрешается по цене закрытия через 5 минут после открытия, на основе опубликованного oracle.
Это дает 288 рынков на каждый asset в день. Возможность для compounding любого edge огромна: даже небольшой edge на одну сделку становится значимым, если можно использовать его 100+ раз в день.
Обратная сторона: планку задают профессиональные фирмы. Mid движется почти синхронно с underlying price feed, а книги обычно тонкие на wrong-side leg.
288 expirations per day = compounding reps
Если ваш edge составляет 0.5c на сделку при win rate 55% и вы можете совершать 60 сделок в день, ожидаемый daily PnL равен 60 × 0.5c = $0.30 на позициях по 10 shares = $3/день. Звучит немного, но это компаундится: 252 trading days × $3 = $750/год почти без capital exposure (позиции разрешаются менее чем за 5 минут).
Чтобы тот же edge дал $750/год на binary, который разрешается раз в квартал, вам понадобился бы гораздо больший размер сделки и гораздо более широкие tails of loss.
5-min markets - единственный сегмент на Polymarket, где small-but-frequent edges складываются в значимый annual income.
Почему retail bots здесь проигрывают
Три failure modes, которые стабильно убивают retail entrants.
- Latency: pro firms выставляют ордера за 50-100ms; retail bots тратят 1-3 секунды. К моменту отправки цена уже в новом mid.
- Information asymmetry: underlying CEX (Binance, Coinbase) печатает trade tape быстрее, чем price feed Polymarket. Bots без direct CEX subscriptions торгуют на stale data.
- Spread tax: при 5-min cadence даже spread 0.5c × 60 сделок = 30c в день неизбежных издержек. Edge должен перекрыть это, прежде чем стратегия станет прибыльной.
Retail bots обычно выходят в ноль или теряют деньги, потому что не могут обогнать pros и не могут уйти от spread tax. Стратегии, которые работают для retail, - это не edge-against-pros; это стратегии медленного принятия решений с конкретными информационными преимуществами.
Источники edge, которые выживают
Что работает для retail на 5-min markets.
- Funding-rate-driven directional bias: экстремально положительный funding по perp futures предсказывает mean reversion; торгуйте против funding rate.
- Open-interest-clearing windows: в начале каждого часа liquidations по perp futures более вероятны; fade экстремальные движения в этом окне.
- Late-window resolution arbitrage: в последние 30 секунд 5-минутного окна resolution price становится все более предсказуемой; book часто предлагает thin liquidity по вероятностям, не совпадающим с live tape.
Что не работает: чистые technical signals (RSI, moving averages), простое копирование momentum, все, что требует от bot быть быстрее pros.
Latency budget
Для жизнеспособной 5-min strategy бюджет примерно такой:
- Read signal source (CEX trade tape, funding rate): 100-300ms
- Compute decision: 50ms
- Place FOK order: 200-500ms
- Receive fill confirmation: 200ms
Итого: 550-1050ms. Достижимо на VPS с paid RPC и direct CEX WebSocket subscription. Недостижимо на домашнем laptop или с free-tier APIs.
Стратегии, которым нужен total < 500ms, - это территория pro; retail не должен там конкурировать.
Risk: small per-trade, big per-day
Размер позиции для 5-min markets: small per-trade, capped daily.
- Per-trade: 5-15 shares ($1-6) на рынок. Ниже 5 сделать GTC sells сложно; выше 15 вы будете двигать book на входе.
- Daily total: 50-100 trades. Больше создает correlated exposure к одной и той же oracle quirk.
- Daily PnL kill switch: остановка, если cumulative PnL упал более чем на $10 (или 5% выделенного капитала). Плохие дни на 5-min markets обычно означают, что предположение стратегии сломалось; переживите день, отладьте, разверните заново.
Асимметрия между размером сделки и дневным количеством сделок намеренная. Вы играете на breadth, а не на depth.
Code: 5-min strategy skeleton
Reference: trading loop для bot на основе funding rate в 5-min.
def five_min_loop():
while True:
wait_for_next_window_open() # blocks until xx:x0:00 or xx:x5:00
markets = find_open_5min_markets("btc")
if not markets: continue
funding = fetch_perp_funding_rate("BTCUSDT")
bias = "DOWN" if funding > 0.001 else "UP" if funding < -0.001 else None
if bias is None: continue
market = markets[0]
token = market["clobTokenIds"][0 if bias == "UP" else 1]
book = fetch_book(token)
if not book.best_ask or book.best_ask > 0.55: continue
place_fok(token, "BUY", book.best_ask + 0.01, 10)
Добавления production-version: отслеживайте позиции в течение 5-минутного окна для точного timing выхода, paper-trade в течение 30 окон перед live, останавливайтесь при consecutive losses.





