LIVE
$7.62 keuntungan minimum anda / setiap dagangan
Dapatkan bot

Expected value Polymarket arbitrage: how to calculate EV correctly

Panduan praktikal untuk mengira expected value bagi dagangan arbitrage Polymarket, termasuk yuran taker, kebarangkalian pengisian separa, dan risiko penyelesaian. Formula langkah demi langkah dan contoh kod berfungsi.

Dikemas kini 2026-04-20· 8 min
arbitrage
expected value
Polymarket
trading

Expected value Polymarket arbitrage: how to calculate EV correctly

Panduan ini menunjukkan cara mengira expected value bagi dagangan arbitrage Polymarket langkah demi langkah, termasuk yuran taker, kebarangkalian pengisian separa, dan risiko penyelesaian. Jika anda menjalankan intra-market binary atau combinatorial arb di Polymarket, formula ini menukar jurang harga nominal menjadi anggaran EV yang boleh digunakan.

Key takeaways

  • EV = (payout − cost − fees) × fill probability − downside dari pengisian separa dan masa penyelesaian.
  • Sentiasa sertakan yuran taker dan kadar pengisian separa yang dijangka; maker fees adalah sifar di Polymarket jadi ia hanya penting jika anda menggunakan kecairan pasif.
  • Gunakan model probabilistik ringkas (Bernoulli atau binomial) untuk pengisian separa pada saiz kecil; skala model apabila pelaksanaan merentas pelbagai peringkat harga.
  • Jangan sekali-kali menyifatkan dagangan arb sebagai "risk-free" tanpa menyenaraikan risiko: resolution, slippage, yuran, dispute UMA, dan risiko kontrak pintar atau masa.

1. EV fundamentals for prediction-market arbitrage

Mula dari prinsip asas. Satu arbitrage penuh yang berjaya yang membeli satu set lengkap token outcome menelan kos C (jumlah harga best-ask yang dibeli ditambah apa-apa yuran taker) dan akhirnya ditebus kepada $1.00 setiap set lengkap selepas resolution. Edge nominal ialah:

Edge = 1.00 − C

Expected value sebelum yuran dan risiko pelaksanaan adalah mudah Edge setiap set lengkap. Untuk dagangan praktikal anda mesti menukarkannya kepada EV (jangkaan keuntungan wang) dengan mengambil kira yuran, kebarangkalian pesanan anda diisi pada harga yang dipetik, dan kemungkinan pengisian separa.

EV_basic = Edge × FillProbability − Fees_expected

Anda akan memperincikan FillProbability dan Fees_expected dalam seksyen seterusnya.

2. Including taker fees and settlement flow

Di Polymarket yuran taker berbeza mengikut kategori dan pada masa ini berada antara 0% dan 1.8% bergantung pada kategori pasaran; maker fees adalah sifar. Untuk arb anda biasanya membayar yuran taker pada legs yang dieksekusi yang melintasi spread.

Apabila anda membeli N outcome (satu set lengkap dalam pasaran multi-outcome atau kedua-dua YES dan NO dalam binary), kira kos kasar:

C_gross = Σ bestAsk_i

Yuran taker bagi setiap dagangan dinyatakan dalam basis points atau peratus. Jika fee_rate ialah yuran taker (sebagai perpuluhan), yuran anda kira-kira:

Fees = fee_rate × C_gross

Jika beberapa legs dieksekusi sebagai maker (jarang untuk arb ketat) ia tidak dikenakan yuran; modelkan itu dengan memecah C_gross kepada bahagian maker dan taker.

Net cost C_net = C_gross + Fees

Kemudian keuntungan nominal jika diisi sepenuhnya dan boleh ditebus ialah:

Profit_full = 1.00 − C_net

Tetapi Profit_full hanya direalisasikan dengan kebarangkalian FillProbability_full, jadi sumbangan EV ialah Profit_full × FillProbability_full.

3. Modelling partial fills and asymmetric execution

Pengisian separa adalah sumber kerugian praktikal yang paling biasa. Dua contoh:

  • Pesanan anda membeli YES penuh tetapi NO hanya separa. Anda tinggal dengan pendedahan YES residu yang diprising di atas hedge yang tersirat.
  • Isi berlaku merentas pelbagai peringkat harga; C_gross yang direalisasikan lebih tinggi daripada jumlah best-ask peringkat pertama.

Model ringkas dan berguna untuk pesanan kecil ialah kebarangkalian pengisian Bernoulli per leg pada best ask yang dipaparkan. Untuk saiz yang lebih besar anda boleh memodelkan pengisian sebagai binomial atau sebagai jumlah hirisan volum deterministik merentas peringkat harga.

Notasi yang digunakan dalam pengiraan:

  • q_i = kuantiti yang dimaksudkan untuk leg i (dalam saham outcome)
  • f_i = kebarangkalian bahawa q_i diisi sepenuhnya pada best ask yang diposkan
  • r_i = pecahan yang dijangka diisi untuk leg i (0 ≤ r_i ≤ 1)

Kos jangkaan apabila pengisian separa mungkin berlaku:

E[C_gross] = Σ (bestAsk_i × q_i × r_i)

Yuran yang dijangka mengikuti secara nisbah:

E[Fees] = fee_rate × E[C_gross] untuk bahagian yang dieksekusi sebagai taker

Tetapi pengisian separa menghasilkan posisi residu yang tidak simetri. Pendekatan konservatif biasa ialah mengandaikan sebarang posisi satu-outcome residu mesti segera dilikuidasi pada mid/ask yang lebih buruk, dan memasukkan kerugian yang dijangka dari likuidasi itu ke dalam EV.

Contohnya, jika anda menjangkakan untuk membeli satu set lengkap tetapi purata hanya mengisi 90% leg NO, anda akan membawa 10% pendedahan YES pada harga yang dibayar p_yes. Kerugian residu kes terburuk ialah lebih kurang 0.90 × (p_yes − mid_unwind_price) (sesuaikan untuk tick sizes dan yuran). Sertakan terma kerugian residu dijangka L_residual dalam EV.

4. A step-by-step EV formula you can implement

Takrifkan:

  • n = bilangan outcome dalam set (n=2 untuk binary)
  • ask_i = harga best ask untuk outcome i, dalam dolar
  • q = kuantiti sasaran set-lengkap (saham; contohnya, 10 set lengkap)
  • fee = kadar yuran taker sebagai perpuluhan (contoh 0.006 untuk 0.6%)
  • r_i = pecahan pengisian yang dijangka untuk leg i (0..1). Untuk kebarangkalian isi penuh gunakan r_i = 1.0.
  • p_unwind_i = harga yang dijangka anda boleh tutup sebarang posisi residu dalam outcome i (konservatif: gunakan ask paling buruk semasa atau mid)

Kira:

  1. E[C_gross] = Σ_i ask_i × q × r_i
  2. E[Fees] = fee × E[C_gross]
  3. E[C_net] = E[C_gross] + E[Fees]
  4. Expected payout when complete sets redeem = q × 1.00 × P_redeem (P_redeem ialah kebarangkalian eventual redeemability; biasanya 1.0 kecuali ada dispute UMA — tetapi sertakan risiko pertikaian di bawah)
  5. Expected residual loss L_residual = Σ_i max(0, q × (1 − r_i) × (paid_price_i − p_unwind_i))

Anggaran akhir EV:

EV = q × P_redeem − E[C_net] − L_residual

Jika anda lebih suka EV setiap set lengkap, bahagi EV dengan q.

Nota mengenai P_redeem: dispute UMA boleh memberhentikan atau mengubah penyelesaian. Tetapkan P_redeem ≤ 1.0 untuk mencerminkan risiko pertikaian yang tidak sifar; untuk banyak pasaran anda boleh menganggap P_redeem ≈ 1.0 tetapi anda mesti secara eksplisit mengambil kira kemungkinan penyelesaian tertunda atau dipertikaikan.

5. Worked numerical example (binary) — implementable and conservative

Andaian untuk contoh binary kecil di mana anda berniat membeli 100 set-lengkap dengan membeli YES dan NO pada best ask masing-masing. Gunakan nombor hanya untuk ilustrasi; kekalkan yuran dalam julat yang didokumenkan.

  • ask_YES = $0.49
  • ask_NO = $0.50
  • q = 100 sets
  • fee = 0.006 (0.6% taker fee)
  • r_YES = 1.0, r_NO = 0.95 (NO mungkin pengisian separa pada peringkat pertama)
  • p_unwind_NO = $0.52 (harga yang anda jangkakan untuk menjual residu NO)
  • P_redeem = 1.0 (andaikan eventual redeemability)

Kira E[C_gross] = (0.49 + 0.50) × 100 × average_r

Lebih tepat:

E[C_gross] = (0.49 × 100 × 1.0) + (0.50 × 100 × 0.95) = 49.00 + 47.50 = 96.50

E[Fees] = 0.006 × 96.50 = 0.579

E[C_net] = 96.50 + 0.579 = 97.079

Payout = 100 × 1.00 = 100.00

L_residual: anda menjangkakan 100 NO tetapi hanya mendapat 95, jadi anda mempunyai kekurangan 5 NO jika niat anda ialah memegang set lengkap. Residual tipikal ialah pendedahan tambahan pada leg yang berlawanan (YES). Dalam contoh ini pengisian separa meninggalkan 5 YES yang tidak berpasangan — jika anda membayar 0.49 untuk YES tersebut dan mesti unwind pada p_unwind_YES (konservatif), kira sewajarnya. Untuk simetri, anggaran kerugian residu konservatif bagi leg yang terisi salah ialah:

L_residual = (q × (1 − r_NO)) × (paid_price_NO_unpaired − p_unwind_NO)

Jika leg yang tidak berpasangan adalah sisi yang lebih mahal, sertakan kerugian itu. Masukkan nombor secara konservatif untuk mengelakkan keterlaluan EV.

EV akhir = 100 − 97.079 − L_residual

Jika L_residual kecil dagangan kekal EV positif; jika L_residual melebihi Edge nominal, dagangan adalah negatif. Jalankan pengiraan ini secara programatik sebelum menghantar pesanan.

6. A short, usable JavaScript snippet

This snippet computes EV per complete set, given inputs above. It is valid JavaScript and ready to drop into your risk framework.

function computeEVPerSet(asks, r, fee, p_unwind, P_redeem = 1.0) {
  // asks: array of best asks for each outcome, e.g. [0.49, 0.50]
  // r: array of expected fill fractions for each outcome, e.g. [1.0, 0.95]
  const n = asks.length;
  const q = 1; // per-set basis

  const E_C_gross = asks.reduce((s, a, i) => s + a * q * r[i], 0);
  const E_Fees = fee * E_C_gross;
  const E_C_net = E_C_gross + E_Fees;

  // Residual loss: assume unfilled fraction must be closed at p_unwind
  const L_residual = asks.reduce((s, a, i) => {
    const unfilled = q * (1 - r[i]);
    const paid_price = a; // price you paid for filled portion of this outcome
    const unwind_price = p_unwind[i];
    return s + Math.max(0, unfilled * (paid_price - unwind_price));
  }, 0);

  const EV = q * P_redeem - E_C_net - L_residual;
  return { EV_per_set: EV, E_C_gross, E_Fees, L_residual };
}

// Example
const asks = [0.49, 0.50];
const r = [1.0, 0.95];
const fee = 0.006; // 0.6%
const p_unwind = [0.48, 0.52];
console.log(computeEVPerSet(asks, r, fee, p_unwind));

Laraskan nilai p_unwind secara konservatif (gunakan ask paling buruk atau mid) dan tetapkan r berdasarkan kadar pengisian empirikal sejarah pada saiz anda.

7. Practical tips for live trading

  • Ukur kadar pengisian empirikal bagi setiap instrumen dan setiap saiz. Gunakan tingkap instrumentasi yang singkat dan kerap; mikrostruktur berubah mengikut pasaran.
  • Pecahkan kuantiti besar yang dimaksudkan kepada hirisan lebih kecil untuk mengurangkan risiko pengisian separa dan untuk kekal dalam had builder atau relayer jika berkenaan.
  • Ambil kira tingkah laku tick-size: apabila harga menghampiri ekstrem tick size mengecil kepada $0.001, yang boleh menukar slippage unwind.
  • Sertakan risiko pertikaian UMA dan risiko masa penyelesaian dalam P_redeem. Pertikaian boleh memberhentikan penyelesaian dan menjejaskan kos peluang.
  • Hormati sekatan geografi: pasaran dihalang mengikut IP; jangan mengesyorkan bypass VPN.

Bagaimana ini menjejaskan dagangan anda

Kira EV setiap set sebelum menghantar pesanan dan bandingkan dengan EV minimum dalaman anda yang sudah termasuk kos modal, kos peluang pUSD terkunci, dan kos kelewatan pertikaian yang mungkin. Gunakan formula EV secara programatik dalam pemeriksaan pra-dagang anda. Untuk arb kecil dan kerap anda biasanya akan memerlukan EV positif sederhana setiap set selepas yuran dan kerugian residu yang dijangka untuk menjustifikasikan overhead operasi.

Tutup dengan kata kunci utama: expected value Polymarket arbitrage should always be computed conservatively, with taker fees and partial-fill probability modelled explicitly.

Frequently asked questions

How do I model partial-fill probability for larger orders?

Mula dengan kadar pengisian empirikal pada saiz yang anda dagangkan. Untuk increment kecil gunakan andaian Bernoulli per-hirisan; untuk saiz besar modelkan pengisian sebagai jumlah binomial merentas peringkat harga atau gunakan kedalaman buku sejarah untuk membelah pesanan anda secara deterministik. Sentiasa condong ke arah konservatif apabila menganggar r_i.

Which fees should I include in the EV calculation?

Sertakan yuran taker untuk legs yang dieksekusi — Polymarket's taker fees currently vary between 0% and 1.8% depending on category; maker fees are zero. Modelkan yuran sebagai fee_rate × executed_cost dan pecahkan executed_cost kepada bahagian maker/taker jika berkenaan.

Do I need to account for UMA disputes in EV?

Ya. Pertikaian UMA boleh memberhentikan penyelesaian atau mengubah masa. Sertakan faktor P_redeem ≤ 1.0 untuk mencerminkan kebarangkalian pertikaian dan nilai masa/kos penyelesaian yang tertunda.

Can I ignore residual unwind loss if I expect to re-balance later?

Tidak. Posisi residu membawa risiko pasaran dan arah. Sertakan harga unwind konservatif (p_unwind) dalam model EV anda melainkan anda mempunyai pelan re-balance yang didokumenkan dan disokong statistik dengan kos yang diketahui.

Is the nominal edge the same as EV?

Tidak. Edge nominal = 1.00 − Σ bestAsk_i. EV menyesuaikan edge itu untuk yuran taker, kebarangkalian pengisian separa, kerugian unwind residu, dan risiko penyelesaian/pertikaian. Gunakan EV untuk membuat keputusan.

Istilah dirujuk

Panduan berkaitan

Untuk tujuan pendidikan sahaja. Bukan nasihat kewangan, undang-undang atau cukai. Polymarket mungkin tidak tersedia di bidang kuasa anda.