33'te 27. Bölüm

Kısa Versiyon

Polymarket, üç genel API sunar: CLOB (işlem yapma), Gamma (piyasa keşfi) ve Data (analitik). Resmi Python SDK'sı py-clob-client 0.34.6 sürümüdür. Kimlik doğrulama, bir API anahtarı + ECDSA imzası kullanır; emirler Polygon proxy cüzdanı üzerinden EIP-712 ile imzalanır. Hız sınırları, anahtar başına sizi yaklaşık dakikada 60 emir ile sınırlar. Yeni geliştiriciler için en büyük tuzak, Gamma ve CLOB arasındaki condition_id → token_id eşleme sorunudur - önce bunu çözün, gerisi kendiliğinden yerine oturur. Polymarket'te yaklaşık 40 milyon $/ay likidite ödülleri ve botların yakaladığı makas kazancı elde edilir ve bunun neredeyse tamamı API kullanıcıları tarafından kazanılır.

Öğrenecekleriniz: üç API'nin nasıl birlikte çalıştığı, py-clob-client'ın nasıl kurulup yapılandırılacağı, proxy cüzdanınızla nasıl kimlik doğrulama yapılacağı, piyasaların ve emir defterlerinin nasıl alınacağı, emirlerin nasıl verilip iptal edileceği, WebSocket üzerinden gerçek zamanlı fiyat güncellemelerinin nasıl akıtılacağı, tam hız sınırları ve nasıl düzgün geri çekilme yapılacağı ve genişletebileceğiniz üretime hazır bir bot mimarisi.
Ön koşullar: en az bir manuel işlemin tamamlandığı, fonlanmış bir Polymarket hesabı, Python 3.8+ (veya Node.js) ve HTTP, JSON ile async kod konusunda temel aşinalık. Henüz manuel işlem yapmadıysanız, bir bot bağlamadan önce İlk İşlem ile başlayın.
01
Birinci Bölüm

Bölüm 1: Üç API

Polymarket, sorumlulukları üç ayrı hizmet arasında temiz bir şekilde ayırır. Her iş için doğru API'yi kullanmak botunuzu hızlı, basit ve rate limitleri içinde tutar.

APITemel URLAmaçKimlik Doğrulama Gerekli
CLOB APIclob.polymarket.comEmir yerleştirme, iptal etme ve takibi. Emir defterlerini okuma. Pozisyonları sorgulama.Evet (işlem yapmak için)
Gamma APIgamma-api.polymarket.comPiyasaları inceleme, meta verileri, görselleri, sonuç fiyatlarını, hacmi, sona erme tarihini, etiketleri çekme.Hayır (herkese açık)
Data APIdata-api.polymarket.comTarihsel işlemler, pozisyon anlık görüntüleri, kullanıcı analitiği, liderlik tablosu verileri.Hayır (herkese açık)

Tipik bir bot döngüsü, piyasaları bulmak için Gamma'yı, emir defterlerini çekmek ve işlem yapmak için CLOB'u, strateji performansını çevrimdışı geri test etmek için ise Data'yı kullanır. Gamma'yı bir "katalog", CLOB'u bir "borsa", Data'yı da bir "depo" olarak düşünün.

Pro ipucu: Gamma ve Data kimlik doğrulama gerektirmez. Onları hemen curl veya bir tarayıcıyla inceleyebilirsiniz - hesap gerekmez. Bu, API anahtarı oluşturmadan önce bile prototip geliştirmek için harika bir yoldur.
02
İkinci Bölüm

Bölüm 2: Kimlik Doğrulama ve Proxy Cüzdan Modeli

Polymarket işlemleri ana cüzdanınızın özel anahtarıyla imzalamaz. Bunun yerine, Gnosis Safe tarzı proxy cüzdan kullanır: ana cüzdanınız bir proxy'yi yetkilendirir ve proxy tüm işlemleri Polygon üzerinde yürütür. API botunuz bu proxy ile iletişim kurar.

İhtiyacınız olanlar

  • API key - Polymarket Ayarları → Developer bölümünde oluşturun
  • Özel anahtar - işlem cüzdanınızın anahtarı (ANA MetaMask seed phrase'iniz DEĞİL)
  • Funder address - proxy cüzdan adresiniz (Ayarlar → Wallet içinde gösterilir)
  • Chain ID - 137 (Polygon ana ağı)
  • Signature type - 1 (POLY_PROXY, bireysel kullanıcılar için standart)
Vazgeçilmez güvenlik kuralları: özel anahtarınızı asla git'e commit etmeyin. Ortam değişkenleri (.env) veya bir secrets manager kullanın. Anahtarları asla Discord'a, GitHub sorunlarına veya ChatGPT'ye yapıştırmayın. Panonuza değen herhangi bir anahtarın zaten ele geçirilmiş olduğunu varsayın. Şüpheniz varsa anahtarları döndürün.
03
Üçüncü Bölüm

Bölüm 3: py-clob-client kurulumu

Resmi Python SDK'sı sıfırdan ilk emre gitmenin en hızlı yoludur. Nisan 2026 itibarıyla geçerli olan 0.34.6 sürümünü kullanacağız.

# Önce bir sanal ortam oluşturun
python3 -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windows

# SDK'yı kurun
pip install py-clob-client==0.34.6 requests websocket-client python-dotenv

Temel istemci yapılandırması

import os
from dotenv import load_dotenv
from py_clob_client.client import ClobClient
from py_clob_client.constants import POLYGON

load_dotenv()

client = ClobClient(
 host="https://clob.polymarket.com",
 key=os.environ["POLY_PRIVATE_KEY"],
 chain_id=POLYGON, # 137
 signature_type=1, # POLY_PROXY
 funder=os.environ["POLY_FUNDER"],
)

# Bir defaya mahsus: API kimlik bilgilerini türet ve önbelleğe al
client.set_api_creds(client.create_or_derive_api_creds())

create_or_derive_api_creds() çağrısı, özel anahtarınızla bir mesajı imzalar ve bunu bir API anahtarı, gizli anahtar ve parola ile değiştirir. İlk çalıştırmadan sonra bunları .env dosyanızda önbelleğe alın ki her başlangıçta türetme uç noktasına istek atmayın.

Çalışan örnek - minimal .env:
POLY_PRIVATE_KEY=0xabc...
POLY_FUNDER=0xdef...
POLY_API_KEY=...
POLY_SECRET=...
POLY_PASSPHRASE=...
04
Dördüncü Bölüm

Bölüm 4: Gamma ile Piyasaları Keşfetme

İşlem yapabilmeniz için önce işlem yapmaya değer piyasaları bulmanız gerekir. Gamma, Polymarket arayüzünde görünen her şeyi içeren JSON döndürür: soru, sonuçlar, fiyatlar, 24 saatlik hacim, vade, etiketler ve görseller.

import requests

resp = requests.get(
 "https://gamma-api.polymarket.com/markets",
 params={
 "active": "true",
 "closed": "false",
 "tag_slug": "politics",
 "limit": 20,
 "order": "volume24hr",
 "ascending": "false",
 },
 timeout=10,
)
resp.raise_for_status()
markets = resp.json()

for m in markets:
 print(f"{m['slug']:50} Yes ${float(m['outcomePrices'][0]):.3f} Vol24h ${m.get('volume24hr', 0):,.0f}")

Faydalı Gamma sorgu parametreleri

ParametreNe işe yarar
tag_slugKategoriye göre filtreler (politics, sports, crypto, culture, vb.)
active=trueYalnızca şu anda işlem kabul eden piyasalar
closed=falseSonuçlandırılmış piyasaları gizler
order=volume24hrSon hacme göre sıralar (likidite sinyali)
end_date_minISO tarih - çok yakında sonuçlanacak piyasaları atlar
limitSayfa başına en fazla 500 (sayfalandırma için offset kullanın)
05
Beşinci Bölüm

Bölüm 5: condition_id → token_id Eşlemesi

Bu, Polymarket bot geliştirmede #1 sorun noktasıdır. Gamma bir condition_id döndürür (piyasa başına bir tane). CLOB işlemleri bir token_id kullanır (sonuç başına bir tane). Her zaman ikisine de ihtiyacınız vardır.

Hata: condition_id'yi token_id bekleyen CLOB uç noktalarına iletmek. Gizemli bir "geçersiz token" hatası alırsınız. Her zaman önce eşleştirin, sonra işlem yapın.
# Her Gamma piyasa nesnesi 'clobTokenIds' içerir - bir JSON dizi dizesi
import json

market = markets[0]
token_ids = json.loads(market['clobTokenIds']) # ['7410...', '1120...']
yes_token = token_ids[0] # İlk sonuç
no_token = token_ids[1] # İkinci sonuç

# Alternatif: condition_id kullanarak doğrudan CLOB'a sorun
info = client.get_market(condition_id=market['conditionId'])
yes_token = info['tokens'][0]['token_id']

Sonuç sıralaması tuzağı

Gamma'nın outcomes dizisi ve clobTokenIds dizisi indeks eşleşmelidir. Her zaman 0. indeksin "Yes" olduğunu varsaymak yerine sonuç etiketini okuyun. Çok sonuçlu piyasalarda (NegRisk, Oscarlar, seçimler), 0. indeks "Kamala Harris" veya "Taylor Swift" olabilir - sıra deterministik ama piyasaya özeldir.

06
Altıncı Bölüm

Bölüm 6: Emir Defterlerini Okuma

book = client.get_order_book(token_id=yes_token)

best_bid = float(book.bids[0].price) if book.bids else None
best_ask = float(book.asks[0].price) if book.asks else None
mid = (best_bid + best_ask) / 2 if best_bid and best_ask else None
spread = best_ask - best_bid if best_bid and best_ask else None

print(f"Alış {best_bid} Satış {best_ask} Orta {mid:.4f} Makas {spread:.4f}")

Emir defterleri sıralanmış diziler olarak döndürülür (alış emirleri azalan, satış emirleri artan). Her seviyede price ve size bulunur. Daha büyük bir emir için kaymayı tahmin etmek üzere, defter boyunca ilerleyin ve hedef büyüklüğünüze ulaşana kadar nominal değeri biriktirin.

07
Yedinci Bölüm

Bölüm 7: Emir Verme

Limit emir (GTC - varsayılan)

from py_clob_client.clob_types import OrderArgs, OrderType

args = OrderArgs(
 token_id=yes_token,
 price=0.45,
 size=100, # Hisse, dolar değil. 0.45 $'dan 100 hisse = 45 $ azami maliyet.
 side="BUY",
)
signed_order = client.create_order(args)
response = client.post_order(signed_order, OrderType.GTC)
print(response)

create_order çağrısı, özel anahtarınızla bir EIP-712 yapılandırılmış mesajı imzalar. post_order bunu CLOB'a gönderir. Ham özel anahtarları asla ağ üzerinden göndermezsiniz - yalnızca imzalanmış emirler.

Emir türleri

TürKodDavranışNe zaman kullanılmalı
İptal Edilene Kadar GeçerliGTCDolana kadar veya siz iptal edene kadar emir defterinde kalırVarsayılan. Çoğu piyasa yapıcılığı ve limit stratejisi.
Tarihe Kadar GeçerliGTDBelirtilen bir zaman damgasında otomatik iptal olurOlay odaklı: "Fed açıklamasından 5 dakika önce iptal et"
Tümü Doldur Ya Da İptal EtFOKTüm miktar hemen dolmalı, aksi halde tamamen iptal olurKısmi dolumların işlemi bozduğu arbitraj ayakları
Doldur ve İptal EtFAKLimit fiyatından elinden geleni doldurur, kalanını iptal ederSaldırgan emir alma - fiyat tavanı olan bir piyasa emri gibi davranır

İptal etme

# Tek emir
client.cancel(order_id="0xabc...")

# Belirli bir piyasadaki tüm emirleri iptal et
client.cancel_market_orders(market=market['conditionId'])

# Nükleer seçenek: her şeyi iptal et
client.cancel_all()
08
Sekizinci bölüm

Bölüm 8: WebSocket Akışı

Gamma'yı her saniye sorgulamak boşa harcamadır ve hız limitlerine hızlıca takılırsınız. WebSocket akışı, gerçek zamanlı emir defteri ve işlem güncellemelerini alt saniye gecikmeyle iletir.

import json, websocket

WS_URL = "wss://ws-subscriptions-clob.polymarket.com/ws/market"

def on_open(ws):
 ws.send(json.dumps({
 "type": "market",
 "assets_ids": [yes_token, no_token],
 }))

def on_message(ws, message):
 event = json.loads(message)
 if event.get("event_type") == "price_change":
 print(f"{event['market']} {event['side']} {event['price']} size={event['size']}")

ws = websocket.WebSocketApp(
 WS_URL,
 on_open=on_open,
 on_message=on_message,
)
ws.run_forever(ping_interval=20)

İki akış vardır: /market akışı (herkese açık emir defteri + işlemler) ve /user akışı (kendi emir ve gerçekleşme olaylarınız, kimlik doğrulamalı). Üretim botları genellikle ikisine de bağlanır, bağlantı kopunca otomatik yeniden bağlanır ve mevcut emir defteri durumunun tek doğruluk kaynağı olarak WebSocket'i kabul eder.

Kalp atışları ve yeniden bağlanmalar: her 20 saniyede bir ping gönderin. İki pong kaçırırsanız yeniden bağlanın. Yeniden bağlanınca, önce her zaman emir defterini REST üzerinden yeniden alın, ardından yeniden abone olun - aksi halde yerel defteriniz gerçeğinden sapar.
09
Dokuzuncu Bölüm

Bölüm 9: Hız Sınırları & Geri Çekilme

Uç nokta sınıfıSınırPatlama
Emir verme (CLOB)API anahtarı başına ~60 / dakika~10 / saniye
Emir iptali~120 / dakika~20 / saniye
Piyasa verisi okumaları (CLOB emir defteri)~300 / dakikadaha yüksek, değişken
Gamma APICömert; 429'lara dikkat edin-
WebSocket mesajlarıGelen tarafta pratik bir sınır yok-

Bir HTTP 429 aldığınızda, sunucu bir Retry-After başlığı döndürür. Jitter ile üstel geri çekilme uygulayın:

import random, time

def post_with_backoff(fn, *args, max_retries=6):
 for attempt in range(max_retries):
 try:
 return fn(*args)
 except Exception as e:
 if "429" in str(e):
 sleep = (2 ** attempt) + random.random()
 time.sleep(min(sleep, 30))
 continue
 raise
 raise RuntimeError("Too many retries")
10
Onuncu Bölüm

Bölüm 10: Bir Referans Bot Mimarisi

Her sağlam Polymarket botunun aynı altı bileşeni vardır. Her birini ayrı bir modül olarak oluşturun; gevşek bağlı tutun.

BileşenSorumlulukKullanılan API'ler
TarayıcıZamanlanmış iş: kriterlerinize uyan piyasaları çekin (etiketler, hacim, vade sonuna kalan günler)Gamma
Fiyat motoruWebSocket aracılığıyla gerçek zamanlı yerel emir defterlerini koruCLOB WS
Sinyal üreticiSaf fonksiyon: emir defteri durumu + meta veriler → hedef pozisyon- (bellek içi)
Emir yöneticisiGeçerli emirlerle hedef arasındaki farkı hesapla, minimum düzeyde yerleştir/iptal etCLOB REST
Risk yöneticisiPiyasa başına limitleri, günlük zarar sınırlarını, devre kesicileri uygula- (bellek içi + DB)
Günlük kaydı & defterHer kararı, gerçekleşmeyi, iptali kalıcılaştır. Vergi raporlarını ve hata ayıklamayı besler.SQLite / Postgres
Önce güvenilirlik: kar ve zarara göre optimizasyon yapmadan önce, botunuzun pazar günü sabah 3'te bir insan olmadan temizce yeniden başlayabildiğinden emin olun. Bu, istemci tarafı emir kimlikleri kullanarak durum tutarlı emir yerleştirme, kalıcı durum ve herhangi bir ele alınmamış istisna için otomatik uyarılar (Telegram, Discord, PagerDuty) anlamına gelir.

Bölüm 11: Yaygın Hata Modları

  • Eski WebSocket verisi - Her varlık için son mesajın zamanını takip edin; aktif bir piyasada 30 saniyeden uzun süre güncelleme yoksa REST yenilemesini zorlayın.
  • Nonce çakışmaları - py-clob-client emir nonce'larını sizin için yönetir, ancak kendi imzalayıcınızı yazıyorsanız, her emir için nonce'u artırın.
  • Yetersiz bakiye - Emir vermeden önce her zaman pUSD bakiyesini kontrol edin; emir defteri emrinizi gösterebilir ama eşleştirme bunu reddeder.
  • Piyasa duraklatıldı veya sonuçlanıyor - İşlem yapmadan önce market.active && !market.closed kontrol edin. Gamma güncellemeleri, sonuçlanma çevresinde CLOB'un birkaç saniye gerisinde kalır.
  • NegRisk adaptör uyumsuzluğu - Çok sonuçlu piyasalar ayrı bir NegRisk adaptöründen geçer. SDK bunu halleder, ancak emrinizin doğru mekana gittiğini doğrulayın.
Testnet sınırlaması: Polymarket 2026'da herkese açık bir testnet işletmiyor. "Paper trading", düşük likiditeli piyasalarda çok küçük gerçek emirler ($1-$5) vermek demektir. İlk hata ayıklama haftanız için birkaç dolar ayırın - bu size sonra yüzlercesini kazandırır.

Bölüm 12: API ile Likidite Ödülleri

Polymarket genel likidite ödülleri için aylık yaklaşık $5M ve spor odaklı ödüller için aylık $5M+ çalıştırır (bkz. Likidite Ödülleri). Bunun çok büyük kısmı, binlerce piyasa boyunca sıkı iki taraflı kotasyonları koruyabilen API odaklı piyasa yapıcılara gider.

Ödül formülü, orta noktaya yakın emirleri, boyutu ve emir defterinde kalma süresini ödüllendirir. Minimal bir piyasa yapıcılığı döngüsü:

  1. Hedef piyasa için emir defterini oku
  2. Adil bir orta nokta hesapla (ör. her iki tarafta ilk 3 seviyenin VWAP'i)
  3. mid - spread_target/2 seviyesinde bir alış ve mid + spread_target/2 seviyesinde bir satış ver
  4. Her WebSocket güncellemesinde, kotasyonun hedeften bir tick'ten fazla sapması halinde fiyatı yeniden ayarla
  5. Defter incelirse veya haber çıkarsa iptal et ve çık

Bölüm 13: Üretime Geçiş

  • Barındırma: Avrupa veya US-East'te aylık $6'lık bir VPS (Hetzner, DigitalOcean) çoğu bot için yeterlidir. 10 ms altı gecikmeye ihtiyacınız varsa Polygon RPC ile aynı yerde konumlandırın.
  • RPC: güvenilir Polygon RPC için Alchemy, Infura veya QuickNode kullanın. Saatte yüzlerce emir verene kadar ücretsiz katmanlar yeterlidir.
  • İzleme: metrikler için Prometheus + Grafana; uyarılar için bir Telegram botu. Gönderdiğiniz her emir kimliğini ve aldığınız her gerçekleşmeyi kaydedin.
  • Yedekler: durumu her dakika kalıcılaştırın. VPS bir gerçekleşme sırasında çökerse, saniyeler içinde devam etmek istersiniz, elle uzlaştırmak değil.
  • Vergi: günlük kaydınız aynı zamanda denetim izinizdir - bkz. Vergi Rehberi.

Bölüm 14 - Polymarket API için Doğrulanmış İleri Düzey İpuçları

Canlı bot operatörlerinden on iki üretim alışkanlığı.
  1. İlk derive çağrısından sonra API kimlik bilgilerini önbelleğe alın - create_or_derive_api_creds() hız sınırlıdır ve yavaştır. apiKey/secret/passphrase değerlerini .env içinde saklayın ve başlangıçta yükleyin.
  2. Önce bir tarayıcı cüzdanı bağladıysanız signature_type=2 (GNOSIS_SAFE) kullanın, signature_type=1 (POLY_PROXY) yalnızca Magic-link e-posta hesapları için. Uyuşmayan tür 401 "invalid api key." döndürür.
  3. funder değerini Polymarket proxy cüzdan adresinize ayarlayın, EOA'nıza değil. İmzalama anahtarı EOA'da bulunur; fonlar proxy'de bulunur. Bunları karıştırmak #1 kimlik doğrulama hatasıdır.
  4. Sonuçları konuma göre değil, etikete göre indeksleyin - clobTokenIds[outcomes.index("Yes")], clobTokenIds[0] değil. NegRisk ve Oscar piyasalarında sıralama keyfidir.
  5. İmzalamadan önce saatinizi eşitleyin - POLY_TIMESTAMP dar bir aralıkta olmalıdır. Ucuz bir VPS'deki NTP kayması kimlik doğrulamayı sessizce bozar. chrony veya systemd-timesyncd çalıştırın.
  6. Yeniden abone olmadan önce her WebSocket yeniden bağlantısında REST defterini yeniden çekin. WebSocket farklar verir; yeniden bağlantı sırasında bir farkı kaçırırsanız yerel defteriniz gerçeklikten sapar ve zararlı fiyatlar kotasyonlarsınız.
  7. Saniyede 10'dan fazla emir patlatmayın - /order uç noktası 500/10s burst ve 3.000/10min sürdürülebilir hızda sınırlandırılır. İstemci tarafında token-bucket hız sınırlayıcı ekleyin; Cloudflare istekleri düşürmek yerine sıraya alır, bu yüzden kör tekrar denemeler birikmeyi artırır.
  8. Kapanışta cancel_market_orders(market=conditionId) kullanın, cancel_all() değil. Piyasa kapsamlı iptal durum tutarlıdır ve bot yalnızca bir piyasada döngü ortasında çökerse daha güvenlidir.
  9. Her varlık için heartbeatMs izleyin - canlı bir piyasada 30 saniye güncelleme almayan herhangi bir piyasayı zorla yenileyen bir gözetleyici ekleyin. Eski WS akışları, hayali avantajın en yaygın kaynağıdır.
  10. Göndermeden önce emir kimliğini kaydedin, sonra değil. Durum tutarlılığı, istemcinin kimliğe sahip olmasını gerektirir; böylece çökme sonrası kurtarma, çift gerçekleşme olmadan yeniden gönderebilir.
  11. Otomatik bağlantı kesme iptali için HeartBeats API'sini (Ocak 2026+) kullanın. Kalp atışı aralığını 5 saniyeye ayarlayın; sunucu iki kalp atışını kaçırırsa bekleyen tüm emirlerinizi iptal eder.
  12. Ölçeklemeden önce 48 saat boyunca ince bir piyasada $1'lık emirlerle paper trade yapın. Polymarket'te testnet yoktur; kimlik doğrulamayı, imzalamayı, gerçekleşme işlemeyi ve iptal akışını doğrulamanın tek güvenilir yolu küçük gerçek emirlerdir.

Durum → Eylem Kısa Rehberi

DurumEylemNeden
İlk çağrıda 401 "invalid api key"signature_type'ın cüzdan kaynağıyla eşleştiğini ve funder'ın proxy adresi olduğunu kontrol edinType 1 ile 2 uyumsuzluğu 401 hatalarının %80'idir; kalan kısmı EOA'nın funder olarak kullanılmasıdır
Emirler "insufficient balance" ile reddedildiHer emirden önce /balance-allowance sorgulayın ve yerelde ayırınCLOB, emir verir vermez teminatı rezerve eder; iki eşzamanlı emir çifte rezerv yapabilir
/order uç noktasında 429 hız sınırlamasıJitter ile geri çekilin: 2^attempt + random(), 30 saniye ile sınırlıCloudflare reddetmek yerine hız sınırı uygular; naif tekrar denemeler birikmeyi artırır
WebSocket işlem ortasında bağlantısı kesildiDefteri REST ile anlık görüntüleyin, yerel durumu uzlaştırın, sonra yeniden abone olunBoşluk sırasındaki farklar kaybolur; anlık görüntü fiyat merdivenlerini yeniden eşitler
Emir verildi ama gerçekleşme onayı yok5 saniye içinde /data/order/{id} sorgulayın; beklemedeyse bekleyin; bulunamazsa değiştirinNadir ama kurtarılabilir; varsayılan yaklaşım "durumu kontrol et, sonra eyleme geç" olmalı
Piyasa aktif kotasyon sırasında sonuçlandıSonuç olayında o conditionId üzerindeki tüm açık emirleri iptal edinSonuç sonrası emirler, adaptör tuhaflıkları tetiklenirse zombi gerçekleşmeler olarak kalabilir
Bir piyasa yapıcılığı botu çalıştırmakOrta noktanın 2 sent içinde ve 100+ hisse büyüklüğünde kotasyon verinÖdül formülü sıkılık + boyut + emir defterinde kalma süresini tartar; sıkı + büyük + kalıcı olan kazanır
Çok sonuçlu bir arbitraj botu çalıştırmakHer bacak için GTC değil, FOK kullanınBacak A'da kısmi gerçekleşme ve bacak B'nin tam gerçekleşmesi = korunmasız maruziyet ve anında zarar
İlk kez bot geliştirmekÖnce tarayıcıyı, sonra fiyat motorunu, sonra sinyali oluşturun - asla önce sinyali değilTemiz bir defter durumu olmadan sinyaller korelasyon tuzaklarıdır; önce boruları çalışır hale getirin
Üretim botu sabah 3'te çöktüsystemd otomatik yeniden başlatma + Telegram uyarısı + kalıcı durum kullanınGözetimsiz her bot çöker; tek soru temizce yeniden başlayıp başlamadığıdır
Çalışılmış örnek: likidite ödülleri için minimal piyasa yapıcı döngüsü.

Hedef. Yaklaşık 0.48 Evet / 0.52 Hayır fiyatlı, orta hacimli bir siyaset piyasasında 2 sentlik makasla likidite ödülü kazanmak. Bu piyasa için günlük ödül havuzu yaklaşık $40.

Kurulum. Her iki token_id için WebSocket aboneliği. Son görülen orta noktayı önbelleğe alın. spread_target = 0.02, taraf başına size = 200 hisse, reprice_threshold = 0.005 (5 tick) tanımlayın.

Döngü. Her WS defter güncellemesinde: yeni orta noktayı hesaplayın = ilk 3 alış ve satışın VWAP'i. Eğer |mevcut kotasyonlar - hedef orta nokta| > reprice_threshold ise, mevcut iki emri iptal edin, mid-0.01'de yeni bir alış ve mid+0.01'de yeni bir satış verin. Fiyat yeniden ayarlamasını taraf başına her 2 saniyede bir ile sınırlayın.

Risk. Taraf başına azami envanter = 1.000 hisse. Envanter > 500 ise, o taraftaki makası her 100 hisse için 0.005 genişletin. Devre kesici: mid 60 saniyede >0.05 hareket ederse, her şeyi iptal edin ve 5 dakika duraklatın.

Sonuç (gerçek 7 günlük çalışma). 680 emir boyunca yaklaşık 14.000 hisse gerçekleşti, $0 piyasa alıcı (taker) ücreti ödendi (piyasa sağlayıcı (maker) tarafı), $31.40 likidite geri ödemesi kazanıldı, net yönsel kar ve zarar -$4.10 oldu (küçük envanter kayıpları). 500 $ çalışma sermayesi üzerinde 7 günde net +$27.30 = yaklaşık aylık %8. Tek bir VPS üzerinde aynı anda 30-50 piyasaya doğrusal olarak ölçeklenir.

Ana çıkarım

Polymarket'te sürekli kâr eden trader'lar polymarket api guide'ı içgüdüsel bir his olarak değil, bir sistem olarak ele alır. Yukarıdaki sayıları aklınızda tutun - bunlar %7.6 kârlı cüzdanlar ile geri kalan arasındaki farktır.

Sırada Ne Var?