Naciśnij ESC, aby zamknąć

Arbitraż na rynkach predykcyjnych: Polymarket i Kalshi

Rynki predykcyjne to kasyno dla tych, co nie potrafią liczyć, i żyła złota dla tych, co łapią matematykę. Nie handlujesz tu aktywami, tylko prawdopodobieństwem przyszłych zdarzeń. Arbitraż to jedyny sposób, żeby wycisnąć z tych platform systemowy profit, mając w nosie cały szum medialny.

Matematyka polowania na spread

Arbitraż na Polymarket czy Kalshi kręci się wokół wyłapywania "krzywych" wycen, kiedy suma kontraktów "Tak" i "Nie" nie wynosi 1. Jeśli sumarycznie kupujesz wynik za 0,95 USD, a wypłata przy trafieniu to 1,00 USD, masz 5,2% zwrotu. To transakcja "bezryzykowna", o ile wyeliminujesz ryzyko wykonania (leg risk).

Wzór na realny profit:
Net Profit = (1 - Price_Yes - Price_No) - (Taker Fees + Network Gas)

Jeśli finalna stopa zwrotu wychodzi poniżej 2%, jesteś stratny przez koszty transakcyjne i czas poświęcony na monitoring.

Praktyczna architektura bota

Zapomnij o klikaniu w przeglądarce. Potrzebujesz lokalnego agenta, który wali prosto w API platform. Poniżej wrzucam działający szablon w Pythonie, który realnie zasysa dane i liczy deltę.

import requests
import time
# Inicjalizacja sesji dla szybkości
session = requests.Session()
def get_best_bid_ask(market_id):
    """
    Wyciąganie arkusza z Polymarket (przez ich API)
    """
    url = f"https://clob.polymarket.com/orderbook/{market_id}"
    response = session.get(url).json()
    # Pobieramy najlepsze ceny
    return float(response['bids'][0][0]), float(response['asks'][0][0])
def scan_arbitrage(market_yes, market_no):
    # Bierzemy ceny Ask (kupno)
    _, 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: # Uwzględniamy 4% na gas i poślizg (slippage)
        print(f"!!! ARBITRAŻ: {total_cost:.4f} !!!")
        # Tutaj wpinasz logikę obsługi portfela
    else:
        print(f"Spread za wąski: {total_cost:.4f}")
# Przykładowy ID rynku (trzeba podmieniać pod bieżące eventy)
# scan_arbitrage('2187654321', '2187654322')

Pułapki i branżowy slang

  • Resolution Delay: Najczęstsza bolączka. Rynek się zamyka, ale kasa zamrożona przez spór w wyroczni UMA. Środki "zablokowane" na 3 do 14 dni. Arbitraż to zawsze zarządzanie kapitałem obrotowym.
  • Order Book Ghosting: Na platformach często wiszą duchy. Widzisz cenę 0,40 USD, ale jak chcesz kupić większy wolumen, cena od razu skacze na 0,45 USD. To algorytmiczni animatorzy (AMM), którzy bronią swojego spreadu.
  • Cross-Platform Skew: Na Kalshi ceny często odbiegają od Polymarket przez inny miks uczestników. W USA (Kalshi) traderzy agresywniej hedżują ryzyka polityczne, podczas gdy Polymarket to dziki zachód krypto-entuzjastów. Porównuj korelacje: jak BTC nurkuje na giełdach, Polymarket reaguje szybciej niż Kalshi.

Tabela efektywności operacyjnej

ScenariuszRyzykoZyskownośćRekomendacja
WewnątrzplatformowyNiskie1-2%Szkoda czasu
MiędzyplatformowyŚrednie3-7%Optymalne dla botów
Hedge opcyjnyWysokie10%+Dla prosów (wymaga kapitału)

Jak nie utopić wszystkiego na starcie

Złota rada: nie wchodź w rynki z małym wolumenem. Jeśli płynność po obu stronach to mniej niż 50 tys. USD, wejście w transakcję wywoła poślizg (slippage) przeciwko Tobie. Szukaj eventów z obrotem dziennym rzędu 500k USD+.

Techniczny detal: Jeśli lecisz na Polygonie (Polymarket), nigdy nie stawiaj transakcji z domyślnym gazem. W arbitrażu ścigasz się z MEV-botami. Ustawiaj maxPriorityFeePerGas powyżej średniej rynkowej, żeby Twój order gwarantowanie wpadł w następny blok.

Żeby arbitraż nie zamienił się w powolne spalanie depo na prowizjach, przesuń focus z "łapania spreadów" na "zarządzanie egzekucją". W tej grze wygrywa nie ten, kto pierwszy znajdzie różnicę w cenie, tylko ten, czyj bot szybciej przekompiluje transakcję i wyśle do mempoola.

Anatomia egzekucji: dlaczego Twój kod przegrywa

Problem większości skryptów to egzekucja sekwencyjna. Robisz request na Polymarket, czekasz na odpowiedź, potem request na Kalshi, liczysz i dopiero wysyłasz transakcję. W tym czasie animatorzy rynku, którzy lecą na WebSockets i mają gotowe ordery, już dawno przesunęli arkusz.

Jak to robią profesjonaliści:

  • WebSocket zamiast REST: Polling to przeżytek. Musisz trzymać otwarte sockety na oba orderbooki. Aktualizacje w czasie rzeczywistym oszczędzają od 200 do 800 ms.
  • Multicall/Batching: Zamiast dwóch transakcji, użyj inteligentnej nakładki (smart contract). Kontrakt łyka Twoje ordery w jednym wywołaniu i wykonuje je atomowo. Jak jedna strona nie weszła, kontrakt wycofuje drugą (Revert). To chroni przed "jednonożnym" arbitrażem, gdzie kupiłeś jedną stronę, a druga stała się nieopłacalna.

Przykład zoptymalizowanej egzekucji (koncepcja Solidity)

Jeśli działasz w sieciach EVM, Twoim najlepszym ziomkiem jest delegatecall. Pozwala to wykonać arbitraż w ramach jednego atomowego ruchu.

// Koncepcyjny fragment do obsługi arbitrażowych zleceń
function executeArbitrage(
    address target, 
    bytes calldata data1, 
    bytes calldata data2
) external payable {
    // Wykonanie dwóch kupów w jednym bundlu
    (bool success1, ) = target.call{value: msg.value / 2}(data1);
    (bool success2, ) = target.call{value: msg.value / 2}(data2);
    
    // Jak arbitraż nie pykł, wychodzimy bez strat
    require(success1 && success2, "Arbitrage execution failed - reverting");
}

Mało znane triki: handel "Event-Driven"

Na rynkach predykcyjnych cena często "skacze" nie przez siły rynkowe, ale przez status wyroczni albo świeży news.

  • Wskaźniki wyprzedzające: Handlujesz rynki polityczne? Podepnij bota pod feedy agencji newsowych (przez API typu Bloomberg albo wyspecjalizowane skanery Telegrama). Cena na Polymarket reaguje na newsa 1-3 sekundy przed tym, jak masa traderów zdąży kliknąć. Musisz mieć pozycję, zanim news "przemieli się" przez arkusz.
  • Arbitraż syntetyczny: Czasami bardziej opłaca się nie arbitrować "Tak/Nie" bezpośrednio, tylko lecieć na kontraktach terminowych. Jeśli prawdopodobieństwo na rynku predykcyjnym wystrzeliło, a futures na powiązany indeks stoi w miejscu — to sygnał, że rynek predykcyjny jest przegrzany. Shortujesz rynek predykcyjny i kupujesz futures. Jak hype opadnie, zamykasz obie pozycje z profitem.

Checklista przed wrzuceniem kapitału:

  • Benchmarking gazu: Policz koszty gazu przy 50 Gwei i 200 Gwei. Jeśli zysk z arbitrażu pokrywa tylko 50 Gwei, a sieć jest zapchana — wyłącz bota.
  • Limit poślizgu: Nigdy nie używaj Market Orders przy arbitrażu. Tylko zlecenia limitowane, wystawione minimalnie powyżej najlepszego aska. Jeśli cena uciekła — lepiej odpuścić, niż wchodzić w transakcję ze stratą.
  • Analiza "brudnych" danych: Niektóre platformy podają w API "średnią ważoną cenę", która nie ma nic wspólnego z tym, co jest w arkuszu. Zawsze parsój asks i bids bezpośrednio, ignorując kolumnę last_price.

Arbitraż tutaj to nie szukanie Świętego Graala, tylko żmudna praca nad matematyczną przewagą. Im mniej emocji, a więcej kodu, tym większa szansa, że Twój balans w USDC będzie rósł szybciej niż inflacja dolara.


FAQ

Musisz mieć podpięte WebSockety pod kilka platform i na bieżąco monitorować bid/ask, żeby wyłapywać momenty, w których suma pozycji „TAK” i „NIE” schodzi poniżej 1.00. Cała sztuka polega na tym, żeby wyliczyć net deltę, która pokryje taker fee i gas, zanim market makerzy ogarną, że coś jest nie tak i przeskoczą ze spreadem. Bez własnych skryptów w Pythonie, które z automatu wypluwają alerty o tych niezgodnościach, nie masz czego szukać.

Tylko jeśli lecisz na atomowych egzekucjach przez smart kontraktowe bundlowanie – inaczej zjesz leg risk i po zyskach. Szukaj tylko płynnych rynków z wolumenem powyżej 500k USD dziennie. Pamiętaj, że zyski masakruje slippage i zamrożenie kapitału, jeśli oracle zacznie fiksować przy rozliczeniu. Bez szybkiego bota, który wbija w rynek pierwszy, nie wygrasz z konkurencją o najlepsze entry.

Największa bolączka to leg risk, gdy wejdzie tylko jedna noga transakcji, blokada kasy przez durne spory w oracle’ach (np. UMA) i ryzyko, że ktoś cię wyprzedzi na mempoolu (tzw. MEV-y). Żeby nie stracić kapitału, musisz puszczać transakcje przez prywatne RPC, stawiać wyłącznie na limitki i nie dotykać rynków z niską płynnością, bo przy wyjściu z pozycji slippage spali ci cały profit.
Astra EXMON

Astra is the official voice of EXMON and the editorial collective dedicated to bringing you the most timely and accurate information from the crypto market. Astra represents the combined expertise of our internal analysts, product managers, and blockchain engineers.

...

Dodaj opinię

Twój adres e-mail nie zostanie opublikowany. Obowiązkowe pola są oznaczone*