[TOC]

पॉलीमार्केट एक पूर्वानुमान बाजार है जहां प्रत्येक प्रश्न के केवल दो ही परिणाम होते हैं—हां या ना, वृद्धि या गिरावट, जीत या हार। बीटीसी के 15 मिनट के मूल्य परिवर्तन अनुबंध को उदाहरण के तौर पर लें, तो प्रत्येक दौर में…Up और Downदो अनुबंध, जिनमें यह शर्त लगाई जाती है कि अगले 15 मिनट में बिटकॉइन का समापन मूल्य उसके शुरुआती मूल्य से अधिक होगा या कम। सही शर्त पर 1 डॉलर का भुगतान होता है, गलत शर्त पर कुछ नहीं मिलता।

इस बाजार की एक बहुत ही खास विशेषता है:दोनों परिणामों की संयुक्त संभावना 100% है, इसलिए सैद्धांतिक रूप से ऊपर जाने की कीमत और नीचे आने की कीमत का योग ठीक 1 के बराबर होना चाहिए।
[ ऊपर की कीमत + नीचे की कीमत = 1 (सैद्धांतिक मान) ]
यह विशेषता सामान्य अनुबंध बाजारों में मौजूद नहीं है, जो हमें निश्चितता का एक स्वाभाविक आधार प्रदान करती है।
क्वांटिटेटिव ट्रेडिंग हमेशा से एक ही बात पर केंद्रित रही है: अनिश्चितताओं से भरे बाजार में अपेक्षाकृत निश्चित अवसरों की खोज करना।
पॉलीमार्केट की द्विआधारी संरचना ऐसा आधार प्रदान करती है:इन 15 मिनटों में बीटीसी की कीमत बढ़े या घटे, दोनों ही स्थितियों में $1 का भुगतान होना तय है।इस एंकर पॉइंट का उपयोग करके, हमें दिशा निर्धारित करने की आवश्यकता नहीं है; हमें केवल एक ऐसा अवसर ढूंढना है जहां अप और डाउन खरीदने की कुल लागत 1 से कम हो, और लाभ की गारंटी हो।
समस्या यह है कि अधिकतर समय, दोनों कीमतों का योग 1 के करीब होता है, जिससे प्रत्यक्ष आर्बिट्रेज के अवसर खोजना मुश्किल हो जाता है। तो आखिर ये अवसर हैं कहाँ?
अवसर यहीं से आता हैबाजार की अतिप्रतिक्रिया के कारण कीमतों में असंतुलन。
इस परिदृश्य की कल्पना कीजिए: 15 मिनट की अवधि में, बीटीसी की कीमत अचानक तेज़ी से गिरती है, जिससे बाज़ार में अफरा-तफरी मच जाती है और अप कॉन्ट्रैक्ट्स की भारी बिकवाली शुरू हो जाती है, और कीमत 0.5 से गिरकर 0.35 हो जाती है। सैद्धांतिक रूप से, अप की कीमत जितनी गिरती है, डाउन की कीमत उतनी ही बढ़नी चाहिए, और दोनों का योग हमेशा 1 के बराबर होता है। हालांकि, बाज़ार की प्रतिक्रिया अलग-अलग गति से होती है। अप की कीमत पहले ही तेज़ी से नीचे गिर चुकी है, जबकि डाउन की कीमत अभी भी 0.5 से 0.65 की ओर बढ़ रही है और शायद पूरी तरह से ऊपर नहीं आ पाई है।
परिवर्तन के इस महत्वपूर्ण क्षण में, उतार-चढ़ाव का योग केवल 0.93 हो सकता है, जिसके परिणामस्वरूप कीमतों में थोड़े समय के लिए असंतुलन उत्पन्न हो सकता है।
[ \text{Up}(0.35) + \text{Down}(0.58) = 0.93 < 1 ]
यह आर्बिट्रेज विंडो है: एक ऐसा संयोजन जिसे खरीदने में \(0.93 का खर्च आता है और जिससे अनिवार्य रूप से \)1 का लाभ मिलता है, और लाभ खरीद के समय ही निर्धारित हो जाता है।
यह मूल विचार ट्विटर उपयोगकर्ता @the_smart_ape से आया था, और यह बहुत संक्षिप्त है, जिसमें केवल चार पैरामीटर हैं:
| पैरामीटर | अर्थ |
|---|---|
SHARES |
प्रति लेग शेयर खरीदें |
SUM_TARGET |
दोनों चरणों के लिए संयुक्त लक्ष्य मूल्य (ऊपरी सीमा) |
MOVE_PCT |
गिरावट की तीव्रता |
WINDOW_MIN |
निगरानी विंडो समय |
प्रक्रिया इस प्रकार है: प्रत्येक दौर की शुरुआत में निगरानी अवधि के दौरान, कीमतों पर लगातार नज़र रखी जाती है। जब किसी निश्चित दिशा में कीमत में ट्रिगर सीमा से अधिक की तीव्र गिरावट आती है, तो उस दिशा में पहली खरीद की जाती है। फिर, विपरीत दिशा में कीमत के वापस गिरने का इंतज़ार किया जाता है। जब दोनों चरणों की संयुक्त कीमत लक्ष्य कीमत से कम हो जाती है, तो दूसरे चरण में खरीद की जाती है और आर्बिट्रेज बंद कर दिया जाता है। निपटान और निकासी 15 मिनट में पूरी हो जाती है।
यह दृष्टिकोण स्पष्ट और सरल है, लेकिन यदि इसे सीधे लाइव ट्रेडिंग पर लागू किया जाए, तो इसमें कई स्पष्ट समस्याएं आएंगी।
मूल विचार यह थानिष्क्रिय प्रतीक्षापहले चरण में निवेश करें, फिर देखें कि विपरीत दिशा में कीमत कब गिरती है। दूसरे चरण में निवेश तभी करें जब दोनों चरणों की संयुक्त कीमत लक्ष्य कीमत से कम हो।
सुधार के प्रति हमारे दृष्टिकोण अलग-अलग हैं।अचानक गिरावट आने पर, इस बात की प्रबल संभावना होती है कि ऊपर और नीचे के संकेतक अलग-अलग गति से चलेंगे। हम इस असामंजस्य की अवधि के दौरान एक साथ कार्रवाई करते हैं:
SUM_TARGET - 第一腿价格रिवर्स प्राइस लिमिट लागू करके, हम विपरीत ट्रेंड के चरम पर पहुंचने से पहले ही कीमत को लॉक कर सकते हैं।जब दोनों ऑर्डर एक साथ सबमिट किए जाते हैं, तो आर्बिट्रेज का अवसर ऑर्डर देते ही पक्का हो जाता है। बाजार द्वारा शर्तों के अनुकूल होने का निष्क्रिय रूप से इंतजार करने के बजाय, हम बाजार को अपने पास आने देते हैं।
कोर कोड का कार्यान्वयन इस प्रकार है:
function executeBothLegs(symbols, dumpSide, dumpAsk) {
var leg1Symbol = (dumpSide === "Up") ? symbols.up : symbols.down
var leg2Symbol = (dumpSide === "Up") ? symbols.down : symbols.up
leg1Price = _N(dumpAsk + SLIPPAGE, 4)
// 第二腿限价:SUM_TARGET - leg1Price,确保两腿合计 <= SUM_TARGET 即有利润
leg2Price = _N(SUM_TARGET - leg1Price, 4)
// 并发提交两个限价单
var goLeg1 = exchange.Go("CreateOrder", leg1Symbol, "buy", leg1Price, SHARES)
var goLeg2 = exchange.Go("CreateOrder", leg2Symbol, "buy", leg2Price, SHARES)
var id1 = goLeg1.wait()
var id2 = goLeg2.wait()
leg1OrderId = id1
leg2OrderId = id2
state = STATE.BOTH_PENDING
}
शुरुआती विचार यह था कि दूसरा चरण जल्दी पूरा हो जाएगा, लेकिन वास्तविकता में अक्सर ऐसा होता है कि ऊपर की ओर जाने वाले चरण की कीमत नीचे धकेल दिए जाने के बाद, नीचे की ओर जाने वाले चरण की कीमत वापस नीचे नहीं गिरती, बाजार का माहौल निराशावादी बना रहता है, और दोनों चरणों की संयुक्त कीमत कभी भी लक्ष्य तक नहीं पहुंच पाती है।
इस अवधि के दौरान, यदि आप एकतरफा ऊपर की ओर रुख रखते हैं, तो कीमत तब तक गिरती रह सकती है जब तक कि वह शून्य पर स्थिर न हो जाए।स्टॉप-लॉस ऑर्डर देना आवश्यक है।
हमने दो पैरामीटर जोड़े:
FLOOR_PRICE(न्यूनतम मूल्य)एक न्यूनतम स्तर निर्धारित करें (उदाहरण के लिए, 0.05)। यदि होल्डिंग मूल्य इस स्तर तक गिर जाता है, तो यह दर्शाता है कि बाजार ने यह निर्धारित कर लिया है कि इस दिशा में गिरावट आने की संभावना है, इसलिए नुकसान को रोकें और बाजार से बाहर निकल जाएं।EARLY_TAKE_PROFIT(प्रारंभिक लाभ-ग्रहण अनुपात)अनुबंध के पहले चरण को खरीदने के बाद, यदि कीमत लाभ लक्ष्य तक बढ़ जाती है, तो दूसरे चरण की प्रतीक्षा किए बिना, लाभ प्राप्त करने के लिए इसे सीधे बेच दें।function handleLeg1OnlyRisk(symbols, upBid, downBid, isLastMin) {
var holdBid = (leg1Side === "Up") ? upBid : downBid
var profitLine = leg1EntryAsk * (1 + EARLY_TAKE_PROFIT)
var stopLine = leg1EntryAsk * (1 - LAST_MIN_STOP_LOSS)
var needClose = false
var reason = ""
if (holdBid <= FLOOR_PRICE) {
needClose = true; reason = "止损(保底)"
} else if (!isLastMin && holdBid >= profitLine) {
needClose = true; reason = "前期止盈"
} else if (isLastMin && holdBid <= stopLine) {
needClose = true; reason = "末段止损"
}
if (needClose) {
// 先撤对侧挂单,再平仓
cancelAndConfirmUntilClear(leg2OrderId)
closePosition(holdSymbol, holdBid, reason)
}
}
एक निचली सीमा की गारंटी देता है, और दूसरा ऊपरी सीमा को निर्धारित करता है, इस प्रकार मूल रूप से असीमित एकतरफा स्थिति पर एक सीमा लगाता है।
मूल दृष्टिकोण में समय के आयाम को अलग नहीं किया गया था, लेकिन निपटान चरण के निकट आने पर स्थिति पूरी तरह से बदल जाती है: निपटान जल्द ही होने वाला है, और भले ही कीमत में गिरावट न आई हो, फिर भी प्रतीक्षा करने का समय नहीं है। इसके अलावा, निपटान जितना करीब आता है, कीमतों में उतार-चढ़ाव उतना ही तीव्र होने की संभावना होती है।
हमने जोड़ाLAST_MIN_S(अंतिम समय सीमा को समायोजित किया जा सकता है।) अंतिम चरण में प्रवेश करने के बाद स्विचिंग लॉजिक:
LAST_MIN_STOP_LOSS(ट्रेडिंग सत्र के अंत में स्टॉप-लॉस प्रतिशत), यदि पोजीशन की कीमत स्टॉप-लॉस लाइन से नीचे गिर जाती है तो बाजार मूल्य पर बाहर निकलें।var isLastMin = (remaining <= LAST_MIN_S)
// BOTH_PENDING 状态下
if (isLastMin) {
Log("⏰ 最后1分钟,撤销未成交挂单")
cancelAllPending("最后1分钟")
}
शुरुआती दौर में, कीमतों के बढ़ने का इंतज़ार करें; बाद के दौर में, कीमतों को शून्य तक गिरने से बचाएं। ये दोनों तर्क एक दूसरे के विपरीत नहीं हैं।
पॉलीमार्केट एक ऑन-चेन मार्केट है, और ऑर्डर की स्थिति और पोजीशन की जानकारी मिलने में कभी-कभी देरी हो सकती है; ऑर्डर देने के बाद पुष्टि प्राप्त करने में कई सेकंड लग सकते हैं। इसलिए, इस रणनीति में ऑर्डर टाइमआउट का पता लगाने और पुनः प्रयास करने की व्यवस्था शामिल है:
function placeOrderAndConfirm(symbol, side, price, amount) {
var orderId = exchange.CreateOrder(symbol, side, orderPrice, amount)
var deadline = Date.now() + ORDER_TIMEOUT_S * 1000
while (Date.now() < deadline) {
var order = exchange.GetOrder(orderId)
if (order && order.Status === 1) {
return { orderId: orderId, avgPrice: order.AvgPrice } // 成交
}
if (order && (order.Status === 2 || order.Status === 4)) {
return { orderId: orderId, avgPrice: null } // 已撤销
}
Sleep(1000)
}
// 超时后执行撤单
exchange.CancelOrder(orderId)
// ... 继续轮询确认最终状态
}
साथ ही जोड़ा गयाSLIPPAGE(स्लिपेज पैरामीटर) खरीद ऑर्डर के निष्पादित होने की संभावना को बढ़ाता है। खरीद के समय वास्तविक ऑर्डर मूल्य लक्ष्य मूल्य और स्लिपेज के योग के बराबर होता है।
पॉलीमार्केट की एक अनूठी कार्यप्रणाली है: अनुबंध निपटान के बाद भुगतान की गई राशि स्वचालित रूप से शेष राशि में वापस नहीं आती है।धनराशि केवल रिडीम एपीआई को सक्रिय रूप से कॉल करके ही जारी की जा सकती है।यदि यह चरण छूट जाता है, तो खाते में मौजूद धनराशि पहले से निपटाई गई स्थितियों में फंसी रह जाएगी।
यह रणनीति प्रत्येक स्विचओवर के दौरान स्वचालित रूप से बैचों में रिडीम करने की प्रक्रिया शुरू करती है ताकि समय पर धनराशि वापस मिल सके।
function doRedeem() {
var positions = exchange.GetPositions()
for (var i = 0; i < positions.length; i++) {
var pos = positions[i]
if (pos.Info && pos.Info.redeemable) {
var result = exchange.IO("redeem", pos.Symbol, true)
Log("Redeem 结果:", result)
}
}
}
// 每轮结算前(840s 后)自动触发
if (!redeemDone && elapsed >= 840) {
doRedeem()
redeemDone = true
}

इस रणनीति में एक रीयल-टाइम डैशबोर्ड शामिल है जो खाते की इक्विटी, वर्तमान स्थिति, मूल्य निगरानी और पोजीशन लाभ/हानि को एक टेबल फॉर्मेट में प्रदर्शित करता है, जिससे आप लाइव ट्रेडिंग के दौरान रणनीति की प्रगति को आसानी से ट्रैक कर सकते हैं। डैशबोर्ड में चार टेबल हैं:

लाइव ट्रेडिंग का उदाहरण:
एक नया दौर शुरू होता है और रणनीति पर निगरानी रखी जा रही है। डाउन कॉन्ट्रैक्ट में 18.60% की गिरावट देखी गई, जो 0.43 से घटकर 0.35 हो गई, जिससे एक सिग्नल मिला। साथ ही, दो लिमिट ऑर्डर दिए गए: पहला डाउन ऑर्डर 0.37 पर और दूसरा अप ऑर्डर 0.60 पर, कुल मिलाकर 0.97, जो लक्ष्य मूल्य से नीचे था। दोनों ऑर्डर एक साथ सबमिट किए गए और बाद में पूरे हुए। वास्तविक औसत निष्पादन मूल्य: पहला चरण 0.34, दूसरा चरण 0.60, कुल वास्तविक लागत।0.94लाभ अपेक्षा से अधिक था, जो कि पूर्व निर्धारित सीमा 0.97 से कम था।
यह रणनीति अपनी अवधारणा में अपेक्षाकृत सुदृढ़ है और बाजार की अनुकूल परिस्थितियों में अच्छा प्रतिफल दे सकती है। हालांकि, इसमें तीन कमियां हैं जिन्हें स्पष्ट रूप से स्वीकार करना आवश्यक है:
खामी 1: बाजार स्थिर होने पर पोजीशन खोलने के अवसर खोजना मुश्किल होता है।आर्बिट्रेज के अवसर बाजार की अतिप्रतिक्रिया पर निर्भर करते हैं; जब बाजार स्थिर होता है, तो अचानक गिरावट की संभावना बहुत कम होती है, और यह रणनीति केवल एकांत में ही काम कर सकती है। ट्रिगर रेंज को बढ़ाने से अवसर बढ़ सकते हैं, लेकिन प्रवेश की गुणवत्ता कम हो जाएगी।
दोष 2: किसी एक पद पर बने रहने के जोखिमों से पूरी तरह बचना मुश्किल है।पहले चरण के पूरा होने के बाद, यदि कीमत में सुधार होने के बजाय गिरावट जारी रहती है, तो दूसरा चरण कभी पूरा नहीं होगा और कीमत तब तक गिरती रहेगी जब तक कि वह स्टॉप-लॉस लाइन तक न पहुंच जाए और ट्रिगर न हो जाए। स्टॉप-लॉस सीमा निर्धारित करना एक दुविधा है: यदि यह बहुत सख्त है, तो सामान्य उतार-चढ़ाव से भी यह आसानी से ट्रिगर हो जाएगा; यदि यह बहुत ढीला है, तो कीमत में भारी गिरावट आने पर नुकसान बहुत अधिक होगा।
खामी 3: दोनों चरणों के संयुक्त लक्ष्य मूल्य के लिए सीमा एक समझौता है।थ्रेशहोल्ड को बहुत ऊँचा रखने से अवसर तो बढ़ते हैं, लेकिन हर बार लाभ कम होता जाता है; इसे बहुत नीचा रखने से लाभ तो बढ़ता है, लेकिन किसी बड़े अवसर के लिए लंबा इंतजार करना पड़ सकता है। यह रणनीति का चुनाव है: बार-बार छोटे पैमाने पर संचय करना, या कम थ्रेशहोल्ड बनाए रखना और कभी-कभार मिलने वाले बड़े अवसर की प्रतीक्षा करना।
यह रणनीति एक ढांचा है, और इसमें तीन ऐसे पहलू हैं जिनका गहराई से अध्ययन करना महत्वपूर्ण है:
विकल्प 1: बाहरी बीटीसी मूल्य डेटा प्रस्तुत करें।यह रणनीति सीमित दायरे वाले बाजारों के लिए अधिक उपयुक्त है; रुझान वाले बाजारों में, स्टॉप-लॉस ऑर्डर बार-बार ट्रिगर होंगे। इसे एक्सचेंजों से वास्तविक समय के बीटीसी मूल्यों के साथ एकीकृत किया जा सकता है, जिससे स्पष्ट रुझान उभरने पर पोजीशन खोलने को रोका जा सकता है, इस प्रकार अनावश्यक नुकसान को कम किया जा सकता है।
दिशा 2: गणितीय मॉडलिंग।ऊपर और नीचे मूल रूप से दो बाइनरी विकल्प हैं। ऑप्शंस के क्षेत्र में कई परिपक्व मूल्य निर्धारण मॉडल मौजूद हैं, जो निश्चित सीमाओं पर मनमाने निर्णय लेने के बजाय, आर्बिट्रेज विंडो की संभावना और इष्टतम प्रवेश बिंदु को सैद्धांतिक रूप से अधिक सटीक रूप से मॉडल कर सकते हैं।
विकल्प 3: गतिशील पैरामीटर समायोजन।वर्तमान में, सभी पैरामीटर स्थिर हैं, लेकिन बाजार की अस्थिरता बदलती रहती है। उच्च और निम्न अस्थिरता की अवधि के दौरान पैरामीटरों के एक ही सेट का उपयोग करना स्पष्ट रूप से अनुचित है। वास्तविक समय की बाजार स्थितियों के आधार पर पैरामीटरों को स्वचालित रूप से समायोजित करने से रणनीति की अनुकूलन क्षमता में काफी वृद्धि होती है।
इस रणनीति का मूल सिद्धांत—बाइनरी बाजारों में मूल्य असंतुलन के क्षणों को खोजना—केवल पॉलीमार्केट के बीटीसी अनुबंधों तक सीमित नहीं है। बाइनरी संरचना और अल्पकालिक मूल्य विसंगतियों वाले किसी भी बाजार में इसी तरह के दृष्टिकोण का उपयोग करके अवसरों को उजागर किया जा सकता है। हमने बस इस विचार को एक व्यावहारिक ढांचे में ढाला है; असली दिलचस्प हिस्सा तो अभी आना बाकी है।
रणनीति स्रोत कोड: पॉलीमार्केट बीटीसी 15-मिनट टू-लेग्ड हेजिंग आर्बिट्रेज रोबोट (टू-वे हेजिंग वर्जन)