Tahmin piyasaları, matematik bilmeyenler için bir kumarhane, işin ehli olanlar içinse tam bir altın madenidir. Burada varlık alıp satmazsınız; geleceğin ihtimallerini fiyatlarsınız. Haber akışındaki gürültüyü bir kenara bırakıp sistemli bir kâr elde etmenin tek yolu ise arbitrajdır.
Spread avcılığının matematiği
Polymarket veya Kalshi üzerindeki arbitraj, "Evet" ve "Hayır" kontratlarının toplam fiyatının 1'e eşit olmadığı "yamuk" fiyatlamaları yakalamaya dayanır. Eğer toplamda bir sonucu 0,95 dolara alıyorsanız ve sonuç gerçekleştiğinde ödeme 1,00 dolar oluyorsa, %5,2'lik bir getiri elde edersiniz. Yürütme riskini (leg risk) hesaba katmazsanız, bu "risksiz" bir işlemdir.
Gerçek kârın formülü:Net Profit = (1 - Price_Yes - Price_No) - (Taker Fees + Network Gas)
Eğer yüzde cinsinden nihai değer %2'nin altındaysa, işlem masrafları ve ekran başında harcadığınız zamanı düşününce aslında zarar ediyorsunuz demektir.
Bot mimarisinde pratik yaklaşım
Web arayüzünü unutun. İşinize yarayacak olan şey, platformların API'sine doğrudan bağlanan yerel bir ajandır. Aşağıda, veriyi anlık çekip delta farkını hesaplayan çalışan bir Python taslağı hazırladım.
import requests
import time
# Hız için oturumu bir kez başlatıyoruz
session = requests.Session()
def get_best_bid_ask(market_id):
"""
Polymarket'in API'sinden emir defterini çekiyoruz
"""
url = f"https://clob.polymarket.com/orderbook/{market_id}"
response = session.get(url).json()
# En iyi fiyatları döndür
return float(response['bids'][0][0]), float(response['asks'][0][0])
def scan_arbitrage(market_yes, market_no):
# Ask (alış) fiyatlarını al
_, ask_yes = get_best_bid_ask(market_yes)
_, ask_no = get_best_bid_ask(market_no)
total_cost = ask_yes + ask_no
if total_cost < 0.96: # Gas ve kayma (slippage) payı için %4 marj
print(f"!!! ARBİTRAJ: {total_cost:.4f} !!!")
# Cüzdan tetikleme kodunu buraya ekle
else:
print(f"Spread çok dar: {total_cost:.4f}")
# Market ID örneği (etkinliklere göre güncellenmeli)
# scan_arbitrage('2187654321', '2187654322')
Gizli tuzaklar ve sektör jargonu
- Resolution Delay: En büyük dert. Piyasa kapanır ama UMA oracle'ındaki bir anlaşmazlık yüzünden paranız bloke olur. Paranız 3 ila 14 gün arası "donar". Arbitraj yapmak, işletme sermayesini yönetme sanatıdır.
- Order Book Ghosting: Platformlarda sıkça "hayalet emirler" görürsünüz. Fiyatı 0,40 dolar olarak görürsünüz ama işlem yapmaya kalktığınız an fiyat anında 0,45'e zıplar. Bu, spreadlerini korumaya çalışan algoritmik piyasa yapıcıların (AMM) işidir.
- Cross-Platform Skew: Kalshi ve Polymarket arasında fiyat kaymaları yaşanır çünkü trader profilleri farklıdır. ABD tarafı (Kalshi) siyasi riskleri hedge etmeye odaklanırken, Polymarket daha çok kripto meraklılarının "wild west" alanıdır. Korelasyonu takip edin: BTC düştüğünde Polymarket, Kalshi'den çok daha hızlı tepki verir.
Operasyonel verimlilik tablosu
| Senaryo | Risk | Kârlılık | Tavsiye |
|---|---|---|---|
| Tek Platform | Düşük | %1-2 | Emek israfı |
| Platformlar Arası | Orta | %3-7 | Botlar için ideal |
| Opsiyonel Hedge | Yüksek | %10+ | Sadece profesyoneller için |
Başlangıçta batmamak için dikkat
Altın kural: Hacmi düşük piyasalara bulaşmayın. Eğer likidite her iki tarafta da 50.000 doların altındaysa, yapacağınız işlem fiyatı kendi aleyhinize kaydırır (slippage). Günlük hacmi 500 bin doların üzerinde olan etkinliklere odaklanın.
Teknik detay: Eğer Polygon (Polymarket) kullanıyorsanız, gas fiyatını asla "varsayılan" bırakmayın. Arbitraj yaparken MEV botlarıyla kapışıyorsunuz demektir. maxPriorityFeePerGas değerini piyasanın üzerinde tutun ki işleminiz bir sonraki bloğa garanti girsin.
Arbitrajın komisyonlara kurban gitmemesi için odağı "spread avcılığından" "işlem yürütme kalitesine" kaydırmanız lazım. Bu oyunu fiyat farkını ilk bulan değil, botuyla işlemi derleyip mempool'a en hızlı atan kazanır.
İşlem analizi: Kodunuz neden kaybediyor?
Scriptlerin çoğunun problemi sıralı işlem yapmalarıdır. Önce Polymarket'e istek at, cevap bekle, sonra Kalshi'ye at, hesapla, sonra işlemi gönder... Bu süreçte WebSocket üzerinden çalışan ve emirleri önceden yüklenmiş piyasa yapıcılar çoktan defteri doldurmuş olur.
Profesyoneller ne yapıyor:
- WebSocket varken REST kullanma: Polling artık tarih oldu. Her iki emir defteri için de canlı socket açık tutmalısınız. Veriyi gerçek zamanlı almak size 200 ila 800 ms arası kazandırır.
- Multicall/Batching: Ağ üzerinde iki ayrı işlem yapmak yerine akıllı bir kontrat arayüzü kullanın. Kontrat emirlerinizi tek seferde alır ve atomik olarak yürütür. Eğer bir taraf gerçekleşmezse kontrat ikinci işlemi iptal eder (Revert). Bu, bir tarafı alıp diğerini kaçırdığınız "tek bacaklı" arbitraj riskinden sizi korur.
Optimize edilmiş işlem (Solidity örneği)
EVM ağlarında çalışıyorsanız `delegatecall` en iyi arkadaşınızdır. Arbitrajı tek bir atomik işlemde bitirmenizi sağlar.
// Arbitraj işlemleri için konsept yapı
function executeArbitrage(
address target,
bytes calldata data1,
bytes calldata data2
) external payable {
// İki alımı tek bir pakette yürütme
(bool success1, ) = target.call{value: msg.value / 2}(data1);
(bool success2, ) = target.call{value: msg.value / 2}(data2);
// Eğer arbitraj başarısızsa zarar etmeden geri çekil
require(success1 && success2, "Arbitrage execution failed - reverting");
}
Az bilinen ince detay: "Olay odaklı" (Event-Driven) ticaret
Tahmin piyasalarında fiyatlar genellikle piyasa güçlerinden değil, oracle durumundaki değişimlerden veya dış haberlerden dolayı "sıçrar".
- Öncü göstergeler: Siyasi piyasalarda işlem yapıyorsanız, botunuzu Bloomberg API veya özel Telegram scrapers gibi haber akışlarına bağlayın. Polymarket fiyatı habere, traderların çoğundan 1-3 saniye önce tepki verir. Sizin işiniz haber emir defterine "işlenmeden" pozisyonu almış olmaktır.
- Sentetik arbitraj: Bazen "Evet/Hayır" oynamak yerine vadeli işlemler (futures) kullanmak daha kârlıdır. Tahmin piyasasında bir ihtimal patlama yaparken vadeli endeks yerinden kıpırdamıyorsa, piyasa "aşırı ısınıyor" demektir. Tahmin piyasasını short'layıp vadeli endeksi alın. Heyecan dindiğinde ikisini de kârla kapatırsınız.
Sermayeyi bağlamadan önce kontrol listesi:
- Gas Benchmarking: 50 Gwei ve 200 Gwei'deki gaz maliyetlerini hesaplayın. Eğer kârınız sadece 50 Gwei'yi kurtarıyorsa ve ağ yoğunsa, botu kapatın.
- Slippage Limiti: Arbitrajda asla "Market Order" kullanmayın. Sadece en iyi alış fiyatının biraz üzerine dizilmiş limit emirler kullanın. Eğer fiyat kaçarsa, zararına işlem yapmaktansa fırsatı kaçırmak yeğdir.
- "Kirli" veri analizi: Bazı platformlar API'lerinde "ağırlıklı ortalama" gösterir ki bunun gerçek emir defteriyle alakası yoktur. Her zaman asks ve bids'leri doğrudan parse edin, last_price sütununu görmezden gelin.
Burada arbitraj "kutsal kâseyi" bulmak değil, matematiksel bir üstünlüğü sürekli tekrarlamaktır. Duyguyu azaltıp kodu artırdığınız sürece, USDC bakiyenizin dolar enflasyonundan daha hızlı büyüme ihtimali o kadar yüksek olur.