Polymarket Bot Tutorial · Глава 16 из 32

Статистический arbitrage на Polymarket: cross-market pairs (коррелированные события), спреды Polymarket-vs-Kalshi, mean reversion и как определять размер stat-arb позиций, когда рынки в итоге resolve.

Что рассматривается в этой главе

Statistical arbitrage на Polymarket использует временные mispricings между коррелированными рынками - одно и то же событие на Polymarket и Kalshi или связанные рынки внутри самого Polymarket. Эджи небольшие (обычно 1-3 цента) и операционно хрупкие. В этой главе честно разбирается, что работает, что нет, и какой риск multi-leg execution убивает большинство попыток.

Cross-market statistical arbitrage использует временные ценовые несоответствия между Polymarket и Kalshi, Polymarket и Manifold или между коррелированными рынками внутри Polymarket. Эджи небольшие (обычно 1-3 цента) и требуют быстрой execution по обеим ногам. Эта глава - честный playbook, включая операционную сложность, которая убивает большинство попыток.

  • Что означает stat-arb на prediction markets
  • Примеры спредов Polymarket-vs-Kalshi
  • Pairs внутри Polymarket (коррелированные события)
  • Mean reversion vs trend continuation
  • Определение размера для resolving (а не perpetual) markets
  • Риск: divergence после resolution
  • Code: pairs monitor и threshold-trigger

Что означает stat-arb на prediction markets

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

  • Cross-venue: одно и то же событие на Polymarket и Kalshi (или Manifold, PredictIt). Цены должны convergе; на практике они расходятся на 2-5 центов.
  • Same-event-pair: parent против суммы legs в NegRisk multi-outcome markets. Инвариант sum-to-1 позволяет арбитражить, когда сумма legs меньше 1.0.
  • Correlated-event-pair: два рынка по связанным исходам (например, "Trump president on Jan 1" vs "Trump president on Mar 1"). Цены должны отличаться друг от друга не более чем на 2-3 цента.

Эджи небольшие. Операционная сложность реальна. Большинство попыток ломается не в теории, а на execution.

Примеры спредов Polymarket-vs-Kalshi

По наблюдениям в 2025-26 годах, Polymarket и Kalshi листят одни и те же крупные US events, но стабильно оценивают их на 1-4 цента по-разному. Этот разрыв существует по структурным причинам, которые нужно моделировать в любом arb.

Структурные факторы:

  • Fee asymmetry: Kalshi взимает 4-7% на winning trades (зависит от market); Polymarket не берет taker fee. В arb-математике нужно учитывать комиссию Kalshi.
  • Settlement risk premium: когда resolution market ambiguous, UMA одной площадки может resolve иначе, чем judges другой. Рынок учитывает это в цене.
  • Trader population: аудитория Polymarket обычно моложе и более crypto-native; аудитория Kalshi более professional / hedge. Они систематически по-разному оценивают одни и те же события.

Arb работает, когда разрыв превышает structural premium плюс fees. Разрыв в 5 центов на рынке, где structural premium составляет 1c, а combined fees - 1c, это реальный edge в 3c.

Pairs внутри Polymarket (коррелированные события)

Внутри Polymarket correlated-event pairs арбитражить проще, чем cross-venue. Одинаковая fee structure, один wallet, возможна atomic execution.

Примеры, где цены регулярно расходятся:

  • Trump president on date A vs Trump president on date B (где B позже A менее чем на 90 days).
  • 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 примерно одинаков на каждой ноге; execution atomic, когда оба fills приходят в одном response.

Mean reversion vs trend continuation

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

Различить их - самая сложная часть. Heuristic: если divergence произошла на видимом volume (whale прошёл по одной из legs book), это news - играть против движения только если у вас есть model. Если же разъезд был медленным и на низком volume, это noise - торгуйте reversion уверенно.

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

Sizing для resolving (а не perpetual) markets

Prediction markets resolve. Crypto pairs - нет. Это меняет математику.

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

Следствие для sizing: максимальный объем ограничен time-to-resolution, потому что capital locked до этого момента. Pair, который resolve через 6 месяцев, может принести 3c на share, но вы не сможете пустить больше capital в работу в это время, если обе рынки fully sized.

Правильная рамка: stat-arb на Polymarket - это серия bounded-time trades, а не continuous strategy. Сравнивайте PnL на единицу locked capital в день, а не gross PnL.

Риск: divergence past resolution

Худший исход stat-arb - когда ваша prediction-of-convergence оказывается неверной, потому что исходная premise была неверна. Примеры:

  • Вы shorted "Trump president on Apr 1", ожидая, что это convergе к "Trump president on Mar 1" - но market на дату 1 resolve YES, а market на дату 2 resolve NO из-за мартовского impeachment. Ваша thesis "spread should be flat" была неверной.
  • Вы арбитражили Polymarket против Kalshi на одном и том же NBA Finals winner. Polymarket resolve на team, которая выиграла official series; Kalshi resolve по slightly different definition, которая иначе учитывает overtime tie-breakers. Оба resolve YES по своим правилам, но в противоположных directions.

Внимательно читайте resolution criteria каждого market. Cross-venue arb - это всего один resolution-mismatch от полной потери по обеим legs.

Code: pairs monitor и threshold-trigger

Reference: monitoring двух correlated tokens, запуск arb при пересечении 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 при partial fill критически важен. Без него partial execution оставляет bot directional exposed, а это противоположно самой идее stat-arb.

Часто задаваемые вопросы

Можно ли арбитражить между Polymarket и Kalshi?
Да, когда одно и то же событие торгуется на обеих площадках. Спреды в 2-5 центов сохраняются между двумя exchange из-за regulatory differences, fee structures и различий в audience. Но есть нюанс: Kalshi работает только для US и требует KYC, поэтому нужны accounts на обеих площадках - см. наш /ru/guide/polymarket-vs-kalshi/ для настройки. Такой spread arbitrage реален, но операционно тяжел.
Что такое pairs trade в контексте Polymarket?
Это две correlated markets, где price ratio mean-reverts. Пример: "Trump wins 2028" и "Republicans win 2028 House" - если trade по Trump вырос на 5%, а trade по House не двинулся, bot покупает House и продает Trump (или наоборот), предполагая, что ratio вернется. Эдж небольшой, но устойчивый на liquid politics markets.
Как определять размер stat-arb позиции, если оба рынка resolve?
Определяйте size по максимальному ожидаемому divergence - если ваша model говорит, что spread может расшириться на 8 cents до reversal, size должен быть таким, чтобы расширение на 8 cents не превысило ваш loss limit. Рассматривайте каждую pair как независимую trade с жестким loss limit. Именно так accounts и взрываются, когда stat-arb притворяется free money.
Является ли Polymarket-Kalshi arb persistent?
Да, но он сужается по мере того, как больше bots его находят. В течение 2026 года мы все еще видим, как спреды в 1-3 cents на liquid politics markets держатся часами. Sports markets показывают более узкие spreads. Tail markets (low-volume) дают более широкие, но экономически невыгодные для торговли spreads.
Что, если оба рынка разойдутся до resolution?
Тогда pair trade идет к своему полному PnL на основе actual outcomes - именно поэтому pairs trading на prediction markets фундаментально bounded (в отличие от perpetuals, где divergence может расти бесконечно). Net loss по pair trade ограничен price difference на входе, а не бесконечен.
Какие tools помогают находить Polymarket pairs?
Correlation matrix по активным markets - это отправная точка. Стройте ее на основе 30-day price histories, полученных из gamma+CLOB. Ищите pairs с historical rho > 0.7, которые сейчас mispriced относительно своего типичного ratio. Обновляйте matrix раз в неделю - correlations decay.