पॉलीमार्केट बॉट ट्यूटोरियल · अध्याय 18 / 32

पॉलीमार्केट पर UMA विवाद-भविष्यवाणी बॉट: ऑप्टिमिस्टिक ऑरेकल के प्रस्तावों को पहचानें, विवाद की संभावना का अनुमान लगाएँ, विवाद से पहले और बाद की कीमत विषमता का फायदा उठाएँ, और विवादित बाज़ारों के मौत-चक्र से बचें।

यह अध्याय क्या कवर करता है

UMA का ऑप्टिमिस्टिक ऑरेकल (OO) पॉलीमार्केट के बाज़ारों को सुलझाता है, और विवाद भड़कने से पहले तथा बाद में कीमत में विसंगतियाँ पैदा होती हैं। विवाद के दोनों पक्षों पर ऐसे पैटर्न मौजूद हैं जिन पर ट्रेड किया जा सकता है, लेकिन यह रणनीति परिचालन की दृष्टि से जटिल है, और इसने जितने बॉट को कमाई दी है उससे कहीं ज़्यादा को तबाह किया है। यह अध्याय एक ईमानदार प्लेबुक है।

  • UMA ऑप्टिमिस्टिक ऑरेकल कैसे काम करता है
  • ऑन-चेन प्रस्ताव को पहचानना
  • विवाद के संकेतक (वॉल्यूम, अस्पष्टता, इतिहास)
  • विवाद से पहले की कीमत विषमता
  • विवाद के बाद के ट्रेड सेटअप
  • विवादित बाज़ारों में कब ट्रेड नहीं करना चाहिए
  • कोड: UMA के प्रस्ताव/विवाद इवेंट्स को सब्सक्राइब करना

UMA ऑप्टिमिस्टिक ऑरेकल कैसे काम करता है

UMA का ऑप्टिमिस्टिक ऑरेकल (OO) पॉलीमार्केट के लिए विवाद-निपटान की परत है। हर बाज़ार का रिज़ॉल्यूशन OO से होकर गुजरता है; ज़्यादातर बिना चुनौती वाले होते हैं और अपने आप निपट जाते हैं। जिन पर चुनौती दी जाती है, यानी विवाद, वे 24-72 घंटे की मतदान अवधि शुरू कर देते हैं, जिसमें UMA टोकन धारक परिणाम तय करते हैं।

जीवनचक्र इस तरह है: पॉलीमार्केट का रिज़ॉल्वर एक कीमत का प्रस्ताव देता है (0 = नहीं जीता, 1 = हाँ जीता)। 2 घंटे की चुनौती-अवधि के बाद, अगर कोई विवाद नहीं करता, तो कीमत अंतिम हो जाती है और CTF कॉन्ट्रैक्ट भुगतान बाँट देता है। अगर कोई विवाद करता है, तो बाज़ार मतदान-अवधि में चला जाता है; UMA धारक अपने वोट डालते हैं और बहुमत जीतता है।

एक बॉट के लिए प्रासंगिक इवेंट्स हैं ProposePrice (प्रस्ताव दर्ज हुआ, चुनौती-अवधि खुलती है) और DisputePrice (विवाद दर्ज हुआ, मतदान-अवधि शुरू होती है)। बाज़ार के रिज़ॉल्यूशन की स्थिति को वास्तविक समय में ट्रैक करने के लिए इन्हें सब्सक्राइब करें।

ऑन-चेन प्रस्ताव को पहचानना

Polygon पर UMA OO कॉन्ट्रैक्ट ProposePrice इवेंट उत्सर्जित करता है, इन पैरामीटर के साथ (requester, identifier, timestamp, ancillaryData, proposer, proposedPrice)। सिर्फ़ प्रासंगिक प्रस्तावों तक सीमित रहने के लिए पॉलीमार्केट के ज्ञात requester पते से फ़िल्टर करें।

POLY_REQUESTER = "0x..."  # पॉलीमार्केट Adjudicator
filt = oo_contract.events.ProposePrice.create_filter(
    fromBlock="latest",
    argument_filters={"requester": POLY_REQUESTER}
)
for event in filt.get_new_entries():
    market_id = decode_ancillary(event.args.ancillaryData)
    proposed = "YES" if event.args.proposedPrice == 1e18 else "NO"
    print(f"PROPOSE: market {market_id} → {proposed}")

ancillaryData फ़ील्ड hex-एन्कोडेड JSON होता है जो बाज़ार के सवाल का वर्णन करता है। इसे डिकोड करने पर आपको बाज़ार का पहचानकर्ता मिलता है, जिसका मिलान आप अपनी खुली पोज़ीशनों से कर सकते हैं।

विवाद के संकेतक (वॉल्यूम, अस्पष्टता, इतिहास)

विवाद से पहले के तीन संकेत बाद में होने वाले असल विवादों से मेल खाते हैं।

  • कुल वॉल्यूम: जिन बाज़ारों का जीवनकाल वॉल्यूम > $1M है, उनमें छोटे बाज़ारों की तुलना में विवाद 4 गुना दर पर होते हैं। जितनी ज़्यादा पूँजी दाँव पर हो, चुनौती देने की उतनी ही ज़्यादा प्रेरणा।
  • अस्पष्ट शब्दावली: जिन बाज़ारों में "or similar," "officially confirmed," या मिश्रित शर्तें (तारीख और कोई खास परिणाम) हों, उनमें विवाद की दर ज़्यादा होती है।
  • उसी घटना पर पिछले विवाद: अगर पहले का प्रस्ताव पहले ही विवादित होकर दोबारा प्रस्तावित हुआ था, तो दूसरा प्रस्ताव सामान्य दर से 2-3 गुना विवादित होता है।

एक बॉट इन विशेषताओं से "विवाद-संभावना" स्कोर निकाल सकता है और रिज़ॉल्यूशन के करीब तय सीमा से ऊपर वाले बाज़ारों में पोज़ीशन लेने से बच सकता है।

विवाद से पहले की कीमत विषमता

संभावित विवाद से पहले के घंटों में बाज़ार की कीमत अक्सर विषम हलचल दिखाती है: प्रस्तावक ने जिस पक्ष को हाँ बताया था, वह नीचे की ओर खिसकता है (क्योंकि ट्रेडरों को डर होता है कि विवाद उसे पलट देगा), और दूसरा पक्ष ऊपर की ओर खिसकता है।

अगर आपके पास इस बारे में दिशात्मक राय है कि विवाद किस तरफ़ सुलझेगा, तो यह ट्रेड करने लायक अवसर है। जोखिम: अगर विवाद नहीं होता, तो चुनौती-अवधि बिना किसी दिक्कत के बंद होने पर यह विषमता उलट जाती है और कीमतें प्रस्तावित दिशा की ओर वापस लौट आती हैं।

सच यह है: विवाद-पूर्व विषमता वाले ज़्यादातर ट्रेड घाटे के ट्रेड होते हैं, क्योंकि ज़्यादातर चुनौतियाँ मूल प्रस्ताव के पक्ष में सुलझती हैं। यह रणनीति तभी काम करती है जब आपके पास इस बारे में खास जानकारी हो कि यह विवाद टिकने की संभावना क्यों है।

विवाद के बाद के ट्रेड सेटअप

विवाद दर्ज होने के बाद बाज़ार 24-72 घंटे तक "अधर" में ट्रेड करता है, यानी विवाद ज्ञात है पर परिणाम वोट से तय होना है। दो सेटअप मौजूद हैं।

UMA सहमति की ओर अभिसरण: अगर विवाद के रिज़ॉल्यूशन का संकेत जल्दी मिल जाए (जैसे कोई प्रमुख UMA मतदाता सार्वजनिक रूप से एक पक्ष ले ले), तो कीमत उस रिज़ॉल्यूशन की ओर बढ़ती है। UMA के Discord / Twitter संकेतों और कीमत की चाल पर नज़र रखने वाला बॉट इस मौके को 30-60% बार पकड़ सकता है।

उतार-चढ़ाव की खेती: अधर की अवधि में स्प्रेड चौड़े होते हैं। एक धैर्यवान मार्केट मेकर मतदान-अवधि के दौरान कई ट्रेडरों के अंदर-बाहर आने-जाने पर स्प्रेड-कर कमा सकता है। इन्वेंटरी का जोखिम ऊँचा है; आकार उसी हिसाब से रखें।

दोनों के लिए यह मानसिक तैयारी ज़रूरी है कि रिज़ॉल्यूशन आपकी पोज़ीशन के खिलाफ़ भी जा सकता है। विवाद-अवधि की इन्वेंटरी को अधिकतम आधे आकार का ही मानें।

विवादित बाज़ारों में कब ट्रेड नहीं करना चाहिए

तीन स्थितियाँ जहाँ विवाद-ट्रेड डिफ़ॉल्ट रूप से गलत होता है।

  • आपके पास UMA से जुड़ी कोई खास राय नहीं है। अगर आपकी एकमात्र बढ़त (edge) बस यह है कि "मूल प्रस्ताव मुझे सही लगता है," तो मूल प्रस्तावक के मुकाबले आपके पास कोई बढ़त नहीं है, और विवाद दर्ज करने वाले को इसका उल्टा लगता है। मतदान का परिणाम एक सिक्का उछालने जैसा है जिसका आप अनुमान नहीं लगा सकते।
  • विवाद अस्पष्ट शब्दावली पर है। UMA मतदाता आम तौर पर सवाल की सख्त व्याख्या के पक्ष में होते हैं। अगर बाज़ार ने "by January 31" कहा था और घटना 1 फ़रवरी को हुई, तो UMA नहीं में सुलझाएगा, चाहे ट्रेडर समुदाय की सहज समझ कुछ भी हो।
  • आपके पास विवाद से पहले की इन्वेंटरी है। अधर के दौरान मौजूदा पोज़ीशन में "औसत घटाने" के लिए और जोड़ना पूँजी नष्ट करने का जाना-पहचाना ढर्रा है। पकड़े रहें या बाहर निकलें, पर कभी और न जोड़ें।

कोड: UMA के प्रस्ताव/विवाद इवेंट्स को सब्सक्राइब करना

संदर्भ: UMA OO इवेंट्स की WebSocket सब्सक्रिप्शन, पॉलीमार्केट के requester फ़िल्टर के साथ।

from web3 import Web3
w3 = Web3(Web3.WebsocketProvider(POLYGON_WSS))
oo = w3.eth.contract(address=UMA_OO_ADDR, abi=UMA_OO_ABI)
POLY = "0x...".lower()

dispute_filter = oo.events.DisputePrice.create_filter(fromBlock="latest")
propose_filter = oo.events.ProposePrice.create_filter(fromBlock="latest")

while True:
    for event in dispute_filter.get_new_entries():
        if event.args.requester.lower() == POLY:
            on_dispute(event)
    for event in propose_filter.get_new_entries():
        if event.args.requester.lower() == POLY:
            on_propose(event)
    time.sleep(2)

def on_dispute(event):
    market_q = decode_ancillary_to_question(event.args.ancillaryData)
    send_telegram(f"DISPUTE: {market_q}")
    # If we hold a position in this market, alert + consider exit
    if market_q in our_positions:
        flag_position_for_review(market_q)

तरीका यह है: सब्सक्राइब करें, डिकोड करें, सूचित करें। विवादों पर एल्गोरिद्म के भरोसे कार्रवाई करना बहुत जोखिम भरा है; बॉट का काम आम तौर पर इवेंट को किसी मानव समीक्षक तक पहुँचाना होता है।

अक्सर पूछे जाने वाले प्रश्न

UMA ऑप्टिमिस्टिक ऑरेकल क्या है?
UMA का ऑप्टिमिस्टिक ऑरेकल वह प्रणाली है जो पॉलीमार्केट के बाज़ारों को सुलझाती है। एक प्रस्तावक कोई प्रस्तावित उत्तर पेश करता है; अगर कोई तय अवधि के भीतर विवाद नहीं करता, तो वह उत्तर अंतिम हो जाता है। अगर विवाद हो जाए, तो UMA टोकन धारक वोट (DVM) करके फ़ैसला करते हैं। ज़्यादातर पॉलीमार्केट बाज़ार बिना विवाद के सुलझते हैं, विवाद तो अपवाद हैं।
मैं वास्तविक समय में UMA प्रस्ताव कैसे पहचान सकता हूँ?
Polygon पर UMA ऑप्टिमिस्टिक ऑरेकल V2 कॉन्ट्रैक्ट को ProposePrice इवेंट्स के लिए सब्सक्राइब करें, पॉलीमार्केट के अडैप्टर पते से फ़िल्टर करके। प्रस्ताव 2 घंटे की विवाद-अवधि शुरू कर देता है, जिसके दौरान बाज़ार की कीमत अक्सर 1.00 / 0.00 से हट जाती है क्योंकि ट्रेडर विवाद के जोखिम को कीमत में शामिल कर लेते हैं।
UMA विवाद का संकेतक क्या है?
तीन संकेत: (1) वॉल्यूम - ऊँचे वॉल्यूम वाले बाज़ार (>$10M) ज़्यादा विवाद खींचते हैं क्योंकि इनाम बड़ा होता है। (2) रिज़ॉल्यूशन की कसौटी में अस्पष्टता - अगर बाज़ार का शीर्षक धुँधला है, तो विवाद का जोखिम बढ़ता है। (3) प्रस्तावक के वॉलेट का पिछला विवाद-इतिहास। इन्हें लॉजिस्टिक रिग्रेशन में मिलाकर एक बुनियादी विवाद-संकेतक बनाया जा सकता है।
क्या मैं विवाद दर्ज होने के बाद ट्रेड कर सकता हूँ?
कर सकते हैं, लेकिन यह जोखिम भरा है। एक बार विवादित होने के बाद बाज़ार DVM मतदान में चला जाता है, जिसमें करीब 48-72 घंटे लगते हैं और परिणाम द्विआधारी (और अंतिम) होता है। कीमत आम तौर पर मतदान से पहले एक पक्ष की ओर सिमट जाती है। जो बॉट कानूनी/तथ्यात्मक विश्लेषण के आधार पर पक्ष चुनते हैं वे मुनाफ़ा कमा सकते हैं, लेकिन गलत फ़ैसला पूरा नुकसान है।
क्या UMA विवाद-रणनीति में भीड़ है?
मार्केट मेकिंग से कम। UMA विवाद-भविष्यवाणी के लिए कानूनी और राजनीतिक संदर्भ पढ़ना पड़ता है, जो ज़्यादातर क्वांट बॉट नहीं करते। इस रणनीति में मानवीय विवेक के साथ-साथ क्वांट ढाँचे की गुंजाइश है, जो हाइब्रिड बॉट के लिए अच्छी है।
UMA विवाद-बॉट के लिए सबसे बुरी स्थिति क्या है?
जब DVM आपकी पोज़ीशन के उलट वोट करे, तब भी पोज़ीशन पकड़े रहना। हर विवादित बाज़ार के लिए जोखिम की सीमा तय करें - विश्वास चाहे जितना हो, हम एक विवादित बाज़ार पर अधिकतम 50 USD ही लगाते हैं, क्योंकि हर "पक्का" लगने वाला फ़ैसला आखिरकार कभी न कभी चूकता है।