Polymarket Bot Tutorial · Bölüm 13 / 32

Polymarket'te market making: bid ve ask nasıl kotelenir, spread nasıl yakalanır, maker rebates (taker fees'in %20-25'i) nasıl kazanılır, inventory risk matematiği ve MM'nin prediction markets'te ne zaman işe yaradığı.

Bu bölüm neleri kapsıyor

Polymarket'te market making, bir market book'unun iki tarafına da sürekli quote vermek ve her round trip'te spread'i kazanmak demektir. Bu strateji geleneksel finansta iyi bilinir; Polymarket'e özgü farklar ise maker-rebate programı ve prediction markets'in adverse selection profilidir; bu profil CFD platformlarından daha yüksektir. Bu bölüm, işin dürüst matematiğidir.

  • Basit İngilizceyle market making
  • Spread + rebate avantajı
  • Inventory risk ve skew
  • Polymarket'te MM ne zaman işe yarar (ve ne zaman yaramaz)
  • Code skeleton: iki tarafı +/- N cents ile quote etme
  • News flow'a göre quote'ları ayarlama
  • Adverse selection sıçradığında botu kapatma

Basit İngilizceyle market making

Bir market maker, bir market book'unun hem alış fiyatını (bid) hem de satış fiyatını (ask) sürekli quote eder; bunlar mid'in iki tarafında sabit bir spread kadar daha geniştir. Birisi bid'e vurduğunda maker ucuza alır; biri ask'i kaldırdığında maker pahalıya satar; bid ile ask arasındaki fark maker'ın her round trip'teki geliridir.

Bu strateji yön tahminine değil, order-flow'a dayanır. Maker, YES'in kazanıp kazanmayacağı konusunda görüş belirtmez; flow'un devam edeceği ve spread'in ödenmeye devam edeceği pozisyonunu alır.

Risk adverse selection'dır: bid'inize vuran kişiler sizde olmayan bilgiye sahip olabilir. Zamanla MM kârı, spread'in informed traders'tan gelen slippage'ı karşılayacak kadar geniş olup olmamasına bağlıdır.

Spread + rebate avantajı

Bir Polymarket maker için iki gelir akışı vardır.

Spread capture: mid 0.46 civarında bid 0.45 ve ask 0.47 quote edersiniz. Bid tarafında gerçekleşen ve daha sonra ask tarafında çıkabildiğiniz her fill size 2 cent kazandırır. Net avantaj, fill dengesine ve fiyatın drift'ine bağlıdır.

Maker rebate: Polymarket'in liquidity-rewards programı, uygun marketlerde maker fill'lerine hisse başına rebate öder. Rakamlar değişir; güncel değerler için resmi rewards sayfasını kontrol edin. Rebate, trade'in kendisinden ayrı olarak, periyodik biçimde pUSD olarak ödenir.

Çoğu markette ana gelir kaynağı spread capture'dır. Rebate ise geniş marketlerde quote verebildiğiniz zaman anlamlı olur; örneğin seçim yılı, büyük spor playoff'ları gibi Polymarket'in liquidity çekmek için rebates'i artırdığı dönemlerde.

Inventory risk ve skew

Bid tarafında tekrar tekrar vurulan bir MM, long pozisyon biriktirir. Risk, mid'in inventory long iken düşmesidir; maker, spread gelirine rağmen pozisyonda zarar eder.

Korunma yöntemleri: quote skew (inventory long olduğunda bid'i aşağı, short olduğunda ask'i yukarı çekerek tek taraflı fill'leri azaltmak); inventory cap (zaten fazla long olduğunuz tarafta quote vermeyi durdurmak); aktif rebalancing (inventory limite geldiğinde pozisyonu azaltmak için bazen spread'i geçmek).

Matematik şu: Eğer bid tarafındaki fill'lerin %60'ı, fiyat 2 cent aleyhe hareket etmeden önce asla çıkmıyorsa, strateji sadece bu fill'lerde bile para kaybediyor demektir. Fill dengesinin %65/35'in üzerine çıktığı durumlarda agresif skew uygulayın.

Polymarket'te MM ne zaman işe yarar (ve ne zaman yaramaz)

MM, Polymarket'te üç koşul sağlandığında işe yarar.

  • Liquid book: spread'iniz rekabetçi ama sıfır olmadığı kadar quote competition olması. 2024 seçim market'leri, büyük NFL/NBA maçları, BTC up/down 5m bunlara örnektir.
  • Two-sided flow: hem alıcıların hem satıcıların aktif olması. Tek taraflı market'lerde (0.95+ seviyesinde çözülmeye yaklaşanlar) maker'ın yakalayacağı bir şey kalmaz.
  • Sınırlı fiyat hareketleri: spread capture'ların 5-cent sıçramalarla silinmemesi. 0.40-0.60 aralığındaki stabil market'ler en elverişlileridir.

MM şu durumlarda başarısız olur: mid'in quote'u yenileyebileceğinizden daha hızlı hareket ettiği news-driven market'ler; tek quote veren taraf olduğunuz ve sonraki trade'in 5 seviye birden yürüdüğü illiquid book'lar; bir tarafın 0 veya 1'e yakınsadığı, çözülmeye çok yakın market'ler.

Code skeleton: iki tarafı +/- N cents ile quote etme

En basit uygulanabilir maker için pseudocode.

SPREAD_CENTS = 2
INVENTORY_CAP_SHARES = 50

def make_loop(token_id):
    while True:
        book = fetch_book(token_id)
        mid = (book.best_bid + book.best_ask) / 2
        inv = chain_balance(token_id)

        # Skew: pull the side we are too long on
        bid_px = mid - SPREAD_CENTS/200 - (0.005 if inv > INVENTORY_CAP_SHARES * 0.6 else 0)
        ask_px = mid + SPREAD_CENTS/200 + (0.005 if inv < -INVENTORY_CAP_SHARES * 0.6 else 0)

        cancel_my_existing_quotes(token_id)
        if inv < INVENTORY_CAP_SHARES:
            place_gtc(token_id, side="BUY", price=bid_px, size=5)
        if inv > -INVENTORY_CAP_SHARES:
            place_gtc(token_id, side="SELL", price=ask_px, size=min(5, inv))
        time.sleep(2)

Production maker'lar şunları ekler: her taraf için ayrı inventory takibi, place etmeden önce cancel sıralaması, tahmin edilebilir olmamak için re-quote aralığına jitter, adverse selection için kill-switch (bir sonraki bölüm).

News flow'a göre quote'ları ayarlama

Bir news event geldiğinde fair value, sizin quote'larınızdan önce hareket eder. News flow sırasında quote'larını geri çekmeyen bir MM kolayca avlanır.

Sinyal şudur: gelen fill'lerin cancel rate'inin 30 saniye içinde baz seviyenin yaklaşık 3 katına çıkması ya da daha geniş bir event-stream çapraz kontrolü (Polymarket Twitter/Discord, Bloomberg headline feed). Tespit edildiğinde maker tüm quote'ları 60-120 saniye boyunca geri çeker, yeni mid'in stabilize olmasına izin verir, sonra yeni merkezin etrafında tekrar quote eder.

En basit implementation, token için son-trade-price stream'ini izler. Rolling-window ortalamasından 2 standart sapmadan büyük bir sıçrama pause tetikler. Bot, fiyat 30+ saniye boyunca stabilize olduğunda tekrar devreye girer.

Adverse selection sıçradığında botu kapatma

Keskin çıkış. Eğer botun son 50 fill'deki fill PnL'i sert biçimde negatife dönerse bir şeyler yanlış demektir: ya market artık news-driven olmuştur ve market making yapılmamalıdır ya da spread mevcut adverse-selection seviyesine göre fazla dar ayarlanmıştır.

Kodlanması gereken kill koşulları:

  • Arka arkaya 5 bid fill'i ve hiç ask fill'i yok; ilk fill'den bu yana mid > 1c düşmüşse.
  • Son 25 round-trip fill üzerindeki realized PnL beklenenin -%25'inin altındaysa.
  • WebSocket disconnect veya stale book tespit edilirse.
  • Herhangi bir tarafta inventory, 5 dakikadan uzun süre boyunca cap'te kalırsa.

Tetiklendiğinde her şeyi iptal edin, inventory'yi market ile flatten edin, 15+ dakika durdurun. Kill switch'i olmayan bir market maker, volatil dönemlerde trader bunu manuel fark edene kadar para kaybeder - ve bu her zaman düşündüğünüzden daha uzun sürer.

Sık sorulan sorular

Retail bir bot gerçekten Polymarket'te market making yaparak para kazanabilir mi?
Bazen, bazı seçilmiş market'lerde. Maker rebate'i (taker fees'in %20-25'i) ile round trip başına 1-3 cent spread birleşince gerçek bir getiriye dönüşebilir. Ancak Polymarket'te news flow bir market'i saniyeler içinde 20+ cent hareket ettirebilir - hızlı bir news feed'i olmayan market maker adverse selection'a maruz kalır. En iyisi, oyun öncesi ve news'in düşük olduğu dönemlerde liquid spor market'leridir.
Polymarket'te ne kadar geniş quote vermeliyim?
En azından, en kötü beklenen adverse-selection'ı karşılayacak kadar spread. Liquid spor/siyaset için: mid'den her tarafa 1-3 cent. İnce market'ler için: 5+ cent. Diğer maker'larla rekabet edecek kadar sıkı ama hareketlerden sağ çıkacak kadar geniş quote veremiyorsanız, o market sizin için market-make edilebilir değildir.
Hangi inventory limit'lerini koymalıyım?
Aylar boyunca kârlılığı kanıtlayana kadar market başına hard cap inventory'yi 50-200 USD'de tutun. Inventory'yi nötre doğru itmek için quote'ları skew edin - eğer Yes biriktiriyorsanız, Yes bid'inizi düşürün ve No ask'inizi düşürerek No alımlarını geri teşvik edin. Tek bir market'in bankroll'unuzun %20+'sini tutmasına asla izin vermeyin.
Polymarket'te market making için hızlı bir VPS gerekir mi?
Evet. Market making, Polymarket stratejileri arasında latency açısından en hassas olanıdır. Jitter'lı bir VPS, pick off edilen stale quote'lara yol açar. MM bot'larımız için özellikle TradingVPS kullanıyoruz çünkü jitter sürekli olarak düşük. Commodity cloud (DO/Vultr) paper trading MM için çalışır ama live için değil.
Polymarket MM, crypto MM'den nasıl farklıdır?
İki büyük fark var: (1) Polymarket'te event'ler (news, sports finale'leri) fiyatı anında 30-100 cent hareket ettirebilen sert outcome'lar vardır - crypto'dan çok daha keskindir. (2) Polymarket market'leri sonunda resolve olur; bu yüzden crypto pair'lerinden farklı olarak MM pozisyonlarının sabit bir expiration'ı vardır. Her ikisi de sizi daha kısa hold'lara ve daha sıkı risk limit'lerine iter.
Polymarket'te 5 dakikalık crypto market'lerde market making yapabilir miyim?
Mümkün ama çok zor. 5 dakikalık market'lerde pair başına günde yaklaşık 288 expiration olur, daha hızlı bot'ların hakimiyetindedir ve spread'ler daha dardır. Çoğu retail MM bot, burada adverse selection yüzünden para kaybeder. 5 dakikalık crypto stratejisini bu serinin 23. bölümünde doğru şekilde ele alıyoruz.