Polymarket Bot Tutorial · Chapter 16 of 32

Статистичний arbitrage на Polymarket: cross-market pairs (correlated events), спреди Polymarket-vs-Kalshi, mean reversion і як визначати розмір stat-arb позицій, коли markets зрештою resolve.

Що охоплює ця глава

Статистичний arbitrage на Polymarket використовує тимчасові mispricings між correlated markets - одна й та сама подія на Polymarket vs Kalshi або пов’язані markets всередині самого Polymarket. Переваги невеликі (зазвичай 1-3 центи) і операційно крихкі. Ця глава чесно пояснює, що працює, що ні, і ризик multi-leg execution, який вбиває більшість спроб.

Cross-market statistical arbitrage використовує тимчасові pricing inconsistencies між Polymarket і Kalshi, Polymarket і Manifold або між correlated markets усередині Polymarket. Переваги невеликі (зазвичай 1-3 центи) і вимагають швидкого execution на обох legs. Ця глава - чесний playbook, включно з operational complexity, яка вбиває більшість спроб.

  • Що означає stat-arb на prediction markets
  • Приклади spread між Polymarket і Kalshi
  • Pairs всередині Polymarket (correlated events)
  • Mean reversion vs trend continuation
  • Sizing для markets, що resolve, а не безстрокових
  • Risk: divergence після resolution
  • Code: pairs monitor і threshold-trigger

Що означає stat-arb на prediction markets

Statistical arbitrage на prediction markets означає торгівлю spread між двома markets, які мають бути оцінені узгоджено. На Polymarket найчастіше трапляються три варіанти.

  • Cross-venue: одна й та сама подія на Polymarket і Kalshi (або Manifold, PredictIt). Pricing має зближуватися; на практиці він коливається на 2-5 центів.
  • Same-event-pair: parent проти суми legs у NegRisk multi-outcome markets. Інваріант sum-to-1 дає змогу arbi, коли сума legs менша за 1.0.
  • Correlated-event-pair: два markets про пов’язані outcomes (наприклад, "Trump president on Jan 1" vs "Trump president on Mar 1"). Вони мають оцінюватися з різницею не більше 2-3 центів.

Переваги невеликі. Operational complexity реальна. Більшість спроб гинуть на execution, а не в теорії.

Приклади spread між Polymarket і Kalshi

За спостереженнями у 2025-26 роках, Polymarket і Kalshi лістять ті самі ключові US events, але стабільно ціноутворюють їх із різницею 1-4 центи. Ця прогалина існує з structural reasons, які потрібно моделювати в будь-якому arb.

Structural drivers:

  • Fee asymmetry: Kalshi бере 4-7% з виграшних trades (залежно від market); Polymarket бере 0 taker fee. У math для arb потрібно врахувати bite з боку Kalshi.
  • Settlement risk premium: коли resolution market є неоднозначним, UMA на одній venue може resolve інакше, ніж judges на іншій. Market закладає це в price.
  • Trader population: Polymarket тяжіє до молодшої й більш crypto-native аудиторії; Kalshi - до професійної / hedge. Вони систематично не погоджуються щодо одних і тих самих events.

Arb працює, коли gap перевищує structural premium плюс fees. 5-центний gap у market, де structural premium становить 1c, а сукупні fees - 1c, дає 3c реальної переваги.

Pairs всередині Polymarket (correlated events)

Усередині Polymarket correlated-event pairs легше arbi, ніж cross-venue. Та сама fee structure, той самий wallet, feasible atomic execution.

Приклади, які стабільно оцінюються неузгоджено:

  • Trump president on date A vs Trump president on date B (де B пізніше за A менш ніж на 90 днів).
  • Will Bitcoin hit $100k by July 31 vs $100k by August 31.
  • Yes vs No legs на тому самому binary market (сума має = 1.0; інколи в thin books вона дрейфує аж до 1.04).

Arb для Yes+No=1 - найчистіший: зчитуйте обидва legs із одного market, запускайте FOK на обох, якщо сума падає нижче 0.97 (з урахуванням spread tax). Потрібний capital приблизно однаковий на кожному leg; execution є atomic, коли обидва fills повертаються в одному response.

Mean reversion vs trend continuation

Є два stat-arb regimes. Mean reversion: pair розійшовся через шумову причину; ви ставите на convergence. Trend continuation: pair почав розходитись, бо з’явилася нова інформація; ви ставите на подальший divergence.

Найскладніше - відрізнити одне від іншого. Heuristic: якщо divergence стався на видимому volume (whale пройшов по книзі одного leg), це news - fade лише якщо у вас є model. Якщо він повільно дрейфував на низькому volume, це шум - торгуйте reversion упевнено.

Для нових builders: торгуйте лише mean reversion і лише на pairs, де divergence менший за 1 standard deviation історичного drift. Trend continuation потребує model, яка ловить news; без неї ви торгуєте проти informed flow.

Sizing для markets, що resolve, а не безстрокових

Prediction markets resolve. Crypto pairs - ні. Це змінює math.

Pair-arb position на Polymarket має фіксований payout schedule: коли обидва markets resolve, різниця між predicted spread і actual spread стає зафіксованою. Немає rolling, немає нескінченного утримання.

Наслідок для sizing: максимальний обсяг, який ви можете тримати, обмежений time-to-resolution, бо capital заблокований до цього моменту. Pair, що resolve через 6 місяців, може принести вам 3c на share, але ви не зможете пустити більше capital в роботу тим часом, якщо обидва markets повністю sized.

Правильна рамка: stat-arb на Polymarket - це серія bounded-time trades, а не безперервна strategy. Порівнюйте PnL на одиницю locked capital на день, а не gross PnL.

Risk: divergence після resolution

Найгірший результат stat-arb - коли ваша prediction-of-convergence prediction помилкова, бо вихідна передумова була хибною. Приклади:

  • Ви shorted "Trump president on Apr 1", очікуючи, що це converge до "Trump president on Mar 1" - але market за date 1 resolve YES, а за date 2 resolve NO через березневий impeachment. Ваша теза "spread має бути пласким" була хибною.
  • Ви arbed Polymarket vs Kalshi на того самого переможця NBA Finals. Polymarket resolve до команди, яка виграла офіційну серію; Kalshi resolve за трохи іншим визначенням, яке інакше враховує overtime tie-breakers. Обидва resolve YES за власними умовами, але в протилежних напрямах.

Уважно читайте resolution criteria кожного market. Cross-venue arb - це лише один resolution-mismatch від повної втрати на обох legs.

Code: pairs monitor and threshold-trigger

Reference: monitor two correlated tokens, fire arb when spread crosses threshold.

def pairs_monitor(token_a, token_b, threshold_cents=3, size=10):
    """Buy A and Sell B when (1 - ask_A) + bid_B > 1 + threshold."""
    while True:
        book_a = fetch_book(token_a)
        book_b = fetch_book(token_b)
        if not (book_a.best_ask and book_b.best_bid):
            time.sleep(2); continue
        # implied: cost of buying A at ask + value of selling B at bid
        edge = (1 - book_a.best_ask) + book_b.best_bid - 1
        if edge > threshold_cents / 100:
            print(f"ARB edge={edge:.3f}; firing")
            r_a = fok_buy(token_a, price=book_a.best_ask, size=size)
            if r_a.status != "matched": continue
            r_b = fok_sell(token_b, price=book_b.best_bid, size=size)
            if r_b.status != "matched":
                # leg A filled, B failed -- unhedged, exit A
                fok_sell(token_a, price=book_a.best_bid, size=size)
        time.sleep(3)

Cleanup-on-partial-fill критично важливий. Без нього partial execution залишає bot directionally exposed, що є повною протилежністю суті stat-arb.

Часті запитання

Чи можу я arbitrage між Polymarket і Kalshi?
Так, коли одна й та сама подія торгується на обох. Спреди 2-5 центів зберігаються між двома exchanges через regulatory differences, fee structures і відмінності в аудиторії. Але є нюанс: Kalshi працює лише для US і вимагає KYC, тому вам потрібні accounts на обох - дивіться наш /uk/guide/polymarket-vs-kalshi/ для setup. Spread arbitrage реальний, але операційно важкий.
Що таке pairs trade в контексті Polymarket?
Два correlated markets, де price ratio mean-reverts. Приклад: "Trump wins 2028" і "Republicans win 2028 House" - якщо Trump trade стрибає на 5%, а House trade не рухався, bot купує House і продає Trump (або навпаки), припускаючи, що ratio повернеться. Edge невеликий, але стабільний у ліквідних політичних markets.
Як визначати розмір stat-arb position, коли обидва markets resolve?
Визначайте розмір під найбільше очікуване divergence - якщо ваша model каже, що spread може розширитися ще на 8 центів перед reversion, розмір позиції має бути таким, щоб 8-cent widening не перевищив ваш loss limit. Розглядайте кожен pair як незалежний trade з жорстким loss limit. Саме так accounts і злітають у повітря, коли stat-arb видають за безкоштовні гроші.
Чи є Polymarket-Kalshi arb постійним?
Так, але він звужується, бо дедалі більше bots його знаходять. Упродовж 2026 року ми все ще бачимо 1-3-cent spreads на ліквідних політичних markets, які тримаються годинами. Sports markets мають вужчі spreads. Tail markets (low-volume) мають ширші, але економічно невигідні для торгівлі spreads.
Що робити, якщо обидва markets diverge до самого resolution?
Pairs trade завершиться з повним PnL, який залежить від фактичних outcomes - саме тому pairs trading на prediction markets фундаментально bounded (на відміну від perpetuals, де divergence може зростати без кінця). Net loss на pairs trade обмежений різницею в price на вході, а не є нескінченним.
Які tools допомагають знаходити Polymarket pairs?
Correlation matrix по активних markets - це відправна точка. Зберіть її з 30-day price histories, отриманих із gamma+CLOB. Шукайте pairs із historical rho > 0.7, які зараз неправильно оцінені відносно свого типовового ratio. Оновлюйте matrix щотижня - correlations decay.