Expected value Polymarket arbitrage: how to calculate EV correctly
Polymarket आर्बिट्रेज ट्रेडों के लिए अपेक्षित मूल्य (EV) कैसे सही तरह से गणना करें — इसमें टेकर फीस, आंशिक-फ़िल की संभावना और सेटलमेंट जोखिम शामिल हैं। चरण-दर-चरण EV सूत्र और काम करने वाला कोड उदाहरण।
Expected value Polymarket arbitrage: how to calculate EV correctly
यह गाइड आपको चरण-दर-चरण बताता है कि Polymarket पर intra-market आर्बिट्रेज ट्रेडों का expected value कैसे गणना करें, जिसमें टेकर फीस, आंशिक-फ़िल की संभावना, और सेटलमेंट जोखिम शामिल हैं। यदि आप Polymarket पर intra-market binary या combinatorial arb चलाते हैं, तो ये सूत्र नाममात्र प्राइस गैप को एक व्यावहारिक EV अनुमान में बदलते हैं।
मुख्य निष्कर्ष
- EV = (payout − cost − fees) × fill probability − आंशिक-फ़िल और सेटलमेंट समय से होने वाला नुकसान।
- हमेशा टेकर फीस और अपेक्षित आंशिक-फ़िल दरों को शामिल करें; Polymarket पर maker फीस शून्य है इसलिए यह केवल तब मायने रखती है जब आप passive liquidity को peg करें।
- छोटे आकारों पर आंशिक-फ़िल के लिए सरल प्रायिकता मॉडल (Bernoulli या binomial) उपयोगी होते हैं; जब निष्पादन कई प्राइस-स्तरों पर फैले हों तो मॉडल स्केल करें।
- किसी आर्ब ट्रेड को कभी भी बिना शर्त "risk-free" न कहें — resolution, slippage, फीस, UMA विवाद, और स्मार्ट-कॉन्ट्रैक्ट या समय-संबंधी जोखिम सूचीबद्ध करें।
1. EV के मूल सिद्धांत (prediction-market arbitrage)
पहला सिद्धांत से शुरू करें। एक पूरा, सफल आर्बिट्रेज जो outcomes का एक complete set खरीदता है उसकी लागत C है (खरीदी गई best-ask कीमतों का योग प्लस कोई भी टेकर फीस) और अंततः resolution के बाद प्रत्येक complete set के लिए $1.00 पर redeem होता है। नाममात्र edge है:
Edge = 1.00 − C
फीस और execution जोखिम से पहले अपेक्षित मूल्य बस प्रति complete set Edge है। व्यावहारिक ट्रेडिंग के लिए आपको इसे EV (अपेक्षित मौद्रिक लाभ) में बदलना होगा, यानी फीस, आपके ऑर्डर के quoted प्राइस पर भरने की संभावना, और संभावित आंशिक-फ़िल को ध्यान में रखना होगा।
EV_basic = Edge × FillProbability − Fees_expected
अगले हिस्सों में आप FillProbability और Fees_expected को परिष्कृत करेंगे।
2. टेकर फीस और सेटलमेंट फ्लो को शामिल करना
Polymarket पर टेकर फीस श्रेणी के अनुसार बदलती हैं और वर्तमान में 0% से 1.8% के बीच रहती हैं; maker फीस शून्य हैं। आर्ब में आप सामान्यतः उन executed legs पर टेकर फीस देते हैं जो spread क्रॉस करती हैं।
जब आप N outcomes खरीदते हैं (multi-outcome बाजार में एक complete set, या binary में YES और NO दोनों), तो सकल लागत निकालें:
C_gross = Σ bestAsk_i
ट्रेड पर टेकर फीस basis points या प्रतिशत के रूप में व्यक्त की जाती है। यदि fee_rate टेकर फीस है (दशमलव में), तो आपकी फीस मोटे तौर पर:
Fees = fee_rate × C_gross
यदि कुछ लेग maker के रूप में execute होते हैं (कठोर आर्ब के लिए दुर्लभ) तो उन पर शून्य फीस लागू होती है; इसे मॉडल करने के लिए C_gross को maker और taker हिस्सों में विभाजित करें।
Net cost C_net = C_gross + Fees
फिर यदि पूर्णत: भरा और redeemable हुआ तो नाममात्र लाभ है:
Profit_full = 1.00 − C_net
लेकिन Profit_full केवल FillProbability_full की संभावना के साथ वास्तविक होता है, इसलिए EV योगदान है Profit_full × FillProbability_full।
3. आंशिक-फ़िल और असममित निष्पादन का मॉडेलिंग
आंशिक-फ़िल व्यावहारिक हानि का सबसे सामान्य स्रोत है। दो उदाहरण:
- आपका ऑर्डर YES को पूरी तरह खरीद लेता है पर NO केवल आंशिक रूप से भरता है। आप उन शेष YES की वजह से अनपेक्षित दिशा-खतरे में फंस जाते हैं, जिनकी कीमत hedge के अपेक्षित स्तर से ऊपर है।
- भरतियाँ कई प्राइस-स्तरों पर होती हैं; वास्तविक C_gross पहले-स्तर के best asks के योग से अधिक होता है।
छोटी ऑर्डरों के लिए प्रत्येक लेग पर डिस्प्ले किए गए best ask पर Bernoulli भरण-प्रायिकता एक सरल और उपयोगी मॉडल है। बड़े आकारों के लिए आप भरणों को binomial के रूप में मॉडल कर सकते हैं या मूल्य-स्तरों पर deterministic volume slices का योग मान सकते हैं।
गणनाओं में प्रयुक्त संकेतन:
- q_i = लेग i के लिए इच्छित मात्रा (आउटकम शेयर में)
- f_i = प्रायिकता कि q_i पोस्ट किए गए best ask पर पूरी तरह भरेगा
- r_i = लेग i के लिए अपेक्षित भरा हुआ अंश (0 ≤ r_i ≤ 1)
जब आंशिक-फ़िल संभव हों तो अपेक्षित लागत:
E[C_gross] = Σ (bestAsk_i × q_i × r_i)
अपेक्षित फीस समानुपाती रूप से अनुसरण करती हैं:
E[Fees] = fee_rate × E[C_gross] (टेकर-निष्पादित भाग के लिए)
लेकिन आंशिक-फ़िल असममित अवशेष स्थिति बनाती है। सामान्य रूढ़िवादी तरीका यह मानना है कि कोई भी अवशिष्ट single-outcome स्थिति तुरंत सबसे खराब mid/ask प्राइस पर unwind करनी पड़ेगी, और उस unwind से होने वाला अपेक्षित नुकसान EV में शामिल करें।
उदाहरण के लिए, यदि आप अपेक्षा करते थे कि आप एक complete set खरीदेंगे पर औसतन NO का केवल 90% भरा, तो आप शेष 10% YES पकड़े रहेंगे जिनके लिए आपने p_yes दिया। worst-case residual loss लगभग 0.90 × (p_yes − mid_unwind_price) होगा (tick sizes और फीस के लिए समायोजित करें)। EV में L_residual को शामिल करें।
4. लागू करने योग्य चरण-दर-चरण EV सूत्र
परिभाषित करें:
- n = सेट में outcomes की संख्या (binary के लिए n=2)
- ask_i = outcome i के लिए best ask प्राइस, डॉलर में
- q = लक्ष्य complete-set मात्रा (शेयर; उदाहण के लिए, 10 complete sets)
- fee = टेकर फीस दर दशमलव में (उदा., 0.006 = 0.6%)
- r_i = लेग i के लिए अपेक्षित fill fraction (0..1)। पूर्ण-फ़िल संभावना के लिए r_i = 1.0 लें।
- p_unwind_i = कोई भी अवशिष्ट स्थिति बंद करने के लिए अपेक्षित प्राइस (रूढ़िवादी: वर्तमान सबसे खराब ask या mid)
गणना:
- E[C_gross] = Σ_i ask_i × q × r_i
- E[Fees] = fee × E[C_gross]
- E[C_net] = E[C_gross] + E[Fees]
- जब complete sets redeem हों तो अपेक्षित भुगतान = q × 1.00 × P_redeem (P_redeem वह संभावना है कि अंततः redeem होना संभव होगा; आमतौर पर UMA विवादों के बिना 1.0 — पर नीचे विवाद जोखिम शामिल करें)
- अपेक्षित अवशिष्ट हानि L_residual = Σ_i max(0, q × (1 − r_i) × (paid_price_i − p_unwind_i))
अंतिम EV अनुमान:
EV = q × P_redeem − E[C_net] − L_residual
यदि आप प्रति complete set EV पसंद करते हैं तो EV को q से विभाजित करें।
P_redeem पर नोट्स: UMA विवाद से सेटलमेंट रुक सकता है या बदल सकता है। गैर-शून्य विवाद जोखिम को प्रतिबिंबित करने के लिए P_redeem ≤ 1.0 रखें; कई बाजारों के लिए आप P_redeem ≈ 1.0 मान सकते हैं पर देरी या विवाद की संभावना को स्पष्ट रूप से शामिल करना चाहिए।
5. संख्यात्मक उदाहरण (binary) — लागू करने योग्य और रूढ़िवादी
मान लीजिए एक छोटा binary आर्ब है जहाँ आप 100 complete-sets खरीदने का इरादा रखते हैं, यानी YES और NO को उनके संबंधित best asks पर खरीदना। केवल उदाहरण के लिए संख्याएँ दें; फीस दस्तावेजीकृत रेंज के भीतर रखें।
- ask_YES = $0.49
- ask_NO = $0.50
- q = 100 sets
- fee = 0.006 (0.6% टेकर फीस)
- r_YES = 1.0, r_NO = 0.95 (NO संभवतः पहले स्तर पर आंशिक भरे)
- p_unwind_NO = $0.52 (अवशिष्ट NO बेचने की अपेक्षित प्राइस)
- P_redeem = 1.0 (अंततः redeemability मान लें)
E[C_gross] = (0.49 + 0.50) × 100 × average_r
अधिक सटीक रूप:
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: आपने अपेक्षा की थी 100 NO पर लेकिन केवल 95 भरे, इसलिए आपका shortfall 5 NO का है अगर आपकी मंशा complete sets रखना थी। आंशिक-फ़िल इस उदाहरण में 5 YES के अवशिष्ट के रूप में छोड़ सकती है — आपने उन YES के लिए 0.49 भुगतान किया और यदि आपको उन्हें p_unwind_YES पर unwind करना पड़े तो संबंधित नुकसान निकालें। समानता के लिए रूढ़िवादी residual loss अनुमान निम्न है:
L_residual = (q × (1 − r_NO)) × (paid_price_NO_unpaired − p_unwind_NO)
यदि unpaired लेग महंगा हो तो उस हानि को शामिल करें। संख्याएँ रूढ़िवादी रूप से प्लग करके EV की अधिकता से बचें।
अंतिम EV = 100 − 97.079 − L_residual
यदि L_residual छोटा है तो ट्रेड सकारात्मक EV रहेगा; यदि L_residual नाममात्र Edge से अधिक है तो ट्रेड नकारात्मक होगा। ऑर्डर भेजने से पहले यह गणित प्रोग्रामेटिक रूप से चलाएँ।
6. एक छोटा, उपयोगी JavaScript स्निपेट
यह स्निपेट दिए गए इनपुट के आधार पर प्रति complete set EV गणना करता है। यह वैध JavaScript है और आपके रिस्क फ्रेमवर्क में डालने के लिए तैयार है।
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));
p_unwind मानों को रूढ़िवादी रूप से समायोजित करें (सबसे खराब ask या mid का उपयोग करें) और अपने आकार पर ऐतिहासिक fill दरों के आधार पर r सेट करें।
7. लाइव ट्रेडिंग के लिए व्यावहारिक सुझाव
- प्रत्येक उपकरण और प्रत्येक आकार के लिए वास्तविक-विश्व fill दरें मापें। छोटे, बारम्बार instrumentation विंडो का उपयोग करें; माइक्रो-स्ट्रक्चर बाजार के हिसाब से बदलता है।
- बड़े इच्छित मात्राओं को छोटे स्लाइसों में तोड़ें ताकि आंशिक-फ़िल जोखिम घटे और यदि लागू हो तो builder या relayer सीमाओं के भीतर रहें।
- tick-size व्यवहार को शामिल करें: जब प्राइस एक्सट्रीम्स के पास पहुंचते हैं तो tick size $0.001 पर कस सकती है, जो unwind slippage बदल सकती है।
- P_redeem में UMA विवाद और सेटलमेंट समय जोखिम शामिल करें। विवाद से सेटलमेंट रुक सकता है और अवसर लागत प्रभावित हो सकती है।
- भौगोलिक प्रतिबंधों का सम्मान करें: बाजार IP द्वारा geo-blocked हैं; VPN बायपास कभी भी सुझाएँ नहीं।
इसका आपके ट्रेडिंग पर प्रभाव
ऑर्डर भेजने से पहले प्रति सेट EV गणना करें और इसकी तुलना अपने आंतरिक minimum-acceptable EV से करें जो पहले से ही पूंजी लागत, लॉक किए गए pUSD का अवसर लागत, और संभावित विवाद देरी की लागत शामिल करता है। छोटे, अक्सर होने वाले आर्ब में आप आम तौर पर फीस और अपेक्षित अवशिष्ट हानि के बाद प्रति सेट एक मामूली सकारात्मक EV की आवश्यकता रखेंगे ताकि संचालनात्मक ओवरहेड जायज़ ठहरे।
प्राथमिक कीवर्ड के साथ समापन: expected value Polymarket arbitrage हमेशा रूढ़िवादी तरीके से गणना किया जाना चाहिए, जिसमें टेकर फीस और आंशिक-फ़िल की संभावना स्पष्ट रूप से मॉडल की जाए।
Frequently asked questions
बड़े ऑर्डरों के लिए मैं आंशिक-फ़िल की संभावना कैसे मॉडल करूँ?
अपने ट्रेड किए गए साइज पर वास्तविक-विश्व भरण दरों से शुरू करें। छोटे increments के लिए per-slice Bernoulli धारणाएँ प्रयोग करें; बड़े आकारों के लिए भरणों को price levels में binomial योग के रूप में मॉडल करें या historical depth-of-book के आधार पर deterministic slices का उपयोग करें। r_i का अनुमान लगाते समय हमेशा रूढ़िवादी रहें।
EV गणना में मुझे कौन-कौन सी फीस शामिल करनी चाहिए?
निष्पादित लेग्स के लिए टेकर फीस शामिल करें — Polymarket की टेकर फीस वर्तमान में श्रेणी के अनुसार 0% से 1.8% तक बदलती है; maker फीस शून्य है। फीस को fee_rate × executed_cost के रूप में मॉडल करें और यदि लागू हो तो executed_cost को maker/taker हिस्सों में विभाजित करें।
क्या मुझे EV में UMA विवादों को ध्यान में रखना चाहिए?
हाँ। UMA विवाद से सेटलमेंट रुक सकता है या समय बदल सकता है। विवाद की संभावना और देरी की अवसर लागत को प्रतिबिंबित करने के लिए P_redeem फ़ैक्टर ≤ 1.0 शामिल करें।
अगर मैं बाद में री-बैलेंस करने की योजना बनाता हूँ तो क्या मैं residual unwind loss को अनदेखा कर सकता हूँ?
नहीं। अवशिष्ट स्थिति में बाज़ार और दिशा संबंधी जोखिम होता है। जब तक आपके पास सत्यापित, सांख्यिकीय रूप से समर्थित री-बैलेंस योजना न हो, EV मॉडल में एक रूढ़िवादी unwind प्राइस (p_unwind) शामिल करें।
क्या nominal edge और EV समान हैं?
नहीं। Nominal edge = 1.00 − Σ bestAsk_i। EV उस edge को टेकर फीस, आंशिक-फ़िल की संभावना, अवशिष्ट unwind हानि, और सेटलमेंट/विवाद जोखिम के अनुसार समायोजित करता है। निर्णय लेने के लिए EV का उपयोग करें।
संदर्भित शब्द
संबंधित मार्गदर्शक
सिर्फ़ शैक्षिक जानकारी। वित्तीय, कानूनी या कर संबंधी सलाह नहीं। संभावित रूप से आपका क्षेत्र Polymarket के लिए उपलब्ध नहीं हो सकता।