Polymarket Bot Tutorial · Bölüm 16 / 32
Polymarket'te statistical arbitrage: cross-market pairs (correlated events), Polymarket-vs-Kalshi spreads, mean reversion ve piyasalar sonunda resolve olduğunda stat-arb pozisyonlarının nasıl boyutlandırılacağı.
Bu bölüm neleri kapsıyor
Polymarket'te statistical arbitrage, birbirleriyle korelasyonlu marketler arasındaki geçici mispricing'leri kullanır - Polymarket ile Kalshi arasındaki aynı event, ya da Polymarket içindeki ilişkili marketler. Edge'ler küçüktür (tipik olarak 1-3 cent) ve operasyonel olarak kırılgandır. Bu bölüm, neyin işe yarayıp neyin yaramadığını ve çoğu denemeyi bozan multi-leg execution riskini dürüstçe anlatır.
Cross-market statistical arbitrage, Polymarket ve Kalshi, Polymarket ve Manifold veya Polymarket içindeki korelasyonlu marketler arasındaki geçici pricing inconsistency'leri kullanır. Edge'ler küçüktür (tipik olarak 1-3 cent) ve her iki bacakta da hızlı execution gerektirir. Bu bölüm, çoğu denemeyi bozan operasyonel karmaşıklığı da içeren dürüst playbook'tur.
- Prediction market'lerde stat-arb ne anlama gelir
- Polymarket-vs-Kalshi spread örnekleri
- Polymarket içindeki pairs (correlated events)
- Mean reversion vs trend continuation
- Resolve olan (perpetual olmayan) market'ler için sizing
- Risk: resolution sonrası divergence
- Code: pairs monitor ve threshold-trigger
Prediction market'lerde stat-arb ne anlama gelir
Prediction market'lerde statistical arbitrage, tutarlı şekilde fiyatlanması gereken iki market arasındaki spread'i trade etmek demektir. Polymarket'te üç yaygın tür vardır.
- Cross-venue: Polymarket ve Kalshi'de aynı event (veya Manifold, PredictIt). Fiyatların yakınsaması gerekir; pratikte 2-5 cent sapma olur.
- Same-event-pair: NegRisk multi-outcome market'lerde parent ile leg'lerin toplamı. Toplamın 1'e eşit olması invariant'ı sayesinde leg'lerin toplamı 1.0'dan düşük olduğunda arb yapılabilir.
- Correlated-event-pair: İlişkili sonuçlara dair iki market (ör. "Trump president on Jan 1" vs "Trump president on Mar 1"). Birbirlerine 2-3 cent içinde fiyatlanmaları gerekir.
Edge'ler küçüktür. Operasyonel karmaşıklık gerçektir. Çoğu deneme teoride değil, execution aşamasında ölür.
Polymarket-vs-Kalshi spread örnekleri
2025-26 gözlemlerine göre Polymarket ve Kalshi aynı büyük US event'lerini listeler ama sürekli olarak 1-4 cent farkla fiyatlar. Bu fark, herhangi bir arb modelinde hesaba katmanız gereken yapısal nedenlerden kaynaklanır.
Yapısal etkenler:
- Fee asymmetry: Kalshi kazanan trade'lerde %4-7 fee alır (market'e göre değişir); Polymarket taker fee almaz. Arb matematiği Kalshi'nin kesintisini netleştirmelidir.
- Settlement risk premium: Bir marketin resolution'ı belirsiz olduğunda, bir venue'nün UMA'sı diğerinin judges'ından farklı resolve olabilir. Market bunu fiyatlar.
- Trader population: Polymarket daha genç ve crypto-native eğilimlidir; Kalshi daha profesyonel / hedge eğilimlidir. Aynı event'lerde sistematik olarak farklı düşünürler.
Arb, gap yapısal premium + fee'leri aştığında çalışır. Yapısal premium'un 1c ve birleşik fee'lerin 1c olduğu bir markette 5 cent'lik gap, 3c'lik gerçek edge demektir.
Polymarket içindeki pairs (correlated events)
Polymarket içinde correlated-event pair'ler, cross-venue'a göre arb etmek için daha kolaydır. Aynı fee yapısı, aynı wallet, atomic execution mümkün.
Düzenli olarak tutarsız fiyatlanan örnekler:
- Trump president on date A vs Trump president on date B (B, A'dan < 90 gün sonra olduğunda).
- Bitcoin 31 Temmuz'a kadar 100k $'a ulaşacak mı vs 31 Ağustos'a kadar 100k $'a ulaşacak mı.
- Aynı binary market'te Yes vs No leg'leri (toplam = 1.0 olmalı; ince order book'larda bazen 1.04'e kadar sapar).
Yes+No=1 arb en temiz olanıdır: aynı market'teki iki leg'i okur, toplam 0.97'nin altına düştüğünde iki tarafa da FOK gönderirsiniz (spread tax'i için pay bırakarak). Gerekli capital her leg'de kabaca eşittir; her iki fill de aynı response içinde döndüğünde execution atomic olur.
Mean reversion vs trend continuation
İki stat-arb rejimi vardır. Mean reversion: pair birbirinden noise nedeniyle uzaklaşmıştır; siz yakınsamaya bahis yaparsınız. Trend continuation: pair yeni information geldiği için ayrışmaya başlamıştır; siz daha fazla ayrışmaya bahis yaparsınız.
Bunları ayırt etmek zor kısımdır. Heuristic: ayrışma görünür volume üzerinde olduysa (bir whale bir leg'in book'unu süpürdüyse), bu news'tir - yalnızca bir modeliniz varsa fade edin. Yavaş ve düşük volume ile drift ettiyse, bu noise'tur - confidence ile reversion trade edin.
Yeni builder'lar için: yalnızca mean reversion trade edin, divergence'ın tarihsel drift'in < 1 standard deviation olduğu pair'lerde. Trend continuation, news'i yakalayan bir model gerektirir; böyle bir model olmadan informed flow'a karşı trade etmiş olursunuz.
Resolve olan (perpetual olmayan) market'ler için sizing
Prediction market'ler resolve olur. Crypto pair'ler olmaz. Bu, matematiği değiştirir.
Polymarket'teki bir pair-arb pozisyonunun sabit bir payout schedule'ı vardır: iki market de resolve olduğunda, tahmin edilen spread ile gerçek spread arasındaki fark kilitlenir. Roll yoktur, sonsuz holding yoktur.
Sizing açısından sonuç: tutabileceğiniz maksimum pozisyon time-to-resolution ile sınırlıdır, çünkü capital o zamana kadar kilitlidir. 6 ayda resolve olacak bir pair size share başına 3c kazandırabilir, ancak bu arada iki market de tam boyutlandıysa başka capital çalıştıramazsınız.
Doğru çerçeve şu: Polymarket'te stat-arb, sürekli bir strategy değil, sınırlı süreli trade'ler dizisidir. Gross PnL yerine kilitli capital başına günlük PnL'yi karşılaştırın.
Risk: resolution sonrası divergence
En kötü stat-arb sonucu, yakınsama tahmininizin temel varsayımı yanlış olduğu için yanlış çıkmasıdır. Örnekler:
- "Trump president on Apr 1" market'inde, bunun "Trump president on Mar 1" ile yakınsayacağını düşünerek short açtınız - ama date 1 market YES, date 2 market ise March impeachment nedeniyle NO resolve oldu. "Spread düz kalmalı" teziniz yanlıştı.
- Aynı NBA Finals winner üzerinde Polymarket vs Kalshi arb yaptınız. Polymarket official series'i kazanan takıma resolve oldu; Kalshi ise overtime tie-breakers'ı farklı kapsayan biraz farklı bir tanıma göre resolve oldu. İkisi de kendi şartlarına göre YES resolve oldu, ama ters yönlerde.
Her market'in resolution kriterlerini dikkatle okuyun. Cross-venue arb, tek bir resolution mismatch ile iki bacakta da tam kayba dönüşebilir.
Code: pairs monitor ve threshold-trigger
Reference: iki correlated token'ı izleyin, spread threshold'u aşınca arb'i başlatın.
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)
Partial fill sonrası cleanup kritik önemdedir. Bu olmadan, kısmi execution bot'u yönsel olarak açıkta bırakır; bu da stat-arb'in bütün amacının tersidir.





