पॉलीमार्केट बॉट ट्यूटोरियल · अध्याय 15 / 32
पॉलीमार्केट पर स्पोर्ट्स माइक्रोस्ट्रक्चर बॉट: इन-गेम बढ़त, स्कोरलाइन से आई ग़लत प्राइसिंग, NBA टैग (745) और टेनिस टैग (864), लाइव डेटा सोर्स, और हाई-फ़्रीक्वेंसी स्पोर्ट्स मार्केट के लिए एग्ज़ीक्यूशन पैटर्न।
यह अध्याय क्या कवर करता है
स्पोर्ट्स मार्केट पॉलीमार्केट पर सबसे लगातार सक्रिय ग़ैर-राजनीतिक सेगमेंट हैं। जो बॉट काम करते हैं, वे दो साफ़ श्रेणियों में आते हैं: प्री-गेम लाइन-कैचर जो लाइन सेट होने के बाद ट्रेड करते हैं, और इन-गेम माइक्रोस्ट्रक्चर बॉट जो खेल के दौरान ऑर्डर-बुक की चाल पर प्रतिक्रिया करते हैं। यह अध्याय दोनों को कवर करता है, उन खास टैग ID, डेटा सोर्स, और लेटेंसी बजट के साथ जो हर एक पर लागू होते हैं।
स्पोर्ट्स मार्केट पॉलीमार्केट पर सबसे व्यस्त ग़ैर-राजनीतिक सेगमेंट हैं। जो एग्ज़ीक्यूशन पैटर्न काम करता है, वह लाइव-स्कोर फ़ीड (ESPN, PandaScore) को ऑर्डर-बुक माइक्रोस्ट्रक्चर सिग्नल के साथ जोड़ता है। यह अध्याय बताता है कि NFL, NBA, सॉकर, और टेनिस के लिए क्या काम करता है, और ईस्पोर्ट्स कहाँ अलग है।
- स्पोर्ट्स मार्केट ट्रेड करने लायक क्यों हैं
- प्री-गेम बनाम इन-गेम (अलग बॉट)
- वेरिफ़ाइड टैग ID (745 NBA, 864 टेनिस)
- डेटा सोर्स: ESPN, आधिकारिक API, ऑन-स्क्रीन
- इन-गेम के लिए लेटेंसी बजट
- 0.99 / 0.01 जाल
- कोड: गेम की बुक सब्सक्राइब करें और प्रतिक्रिया दें
स्पोर्ट्स मार्केट ट्रेड करने लायक क्यों हैं
स्पोर्ट्स मार्केट तय समय-सीमा (घंटों से दिनों) में सेटल होते हैं, पब्लिक लाइव डेटा होती है, और गेम के दौरान लगातार ऑर्डर फ़्लो आकर्षित करते हैं। ट्रेड करने लायक मार्केट के लिए ये तीनों ज़रूरी हैं - राजनीतिक मार्केट में "तय समय-सीमा" ग़ायब होती है, मौसम के मार्केट में "लगातार फ़्लो" ग़ायब होता है, और गुमनाम टूर्नामेंट में "पब्लिक लाइव डेटा" ग़ायब होती है।
स्पोर्ट्स मार्केट पर ट्रेडर आबादी भी, मान लीजिए चुनावी मार्केट के मुकाबले, ज़्यादा विविध होती है। आम स्पोर्ट्स सट्टेबाज भावनाओं के आधार पर प्राइस करते हैं; जानकार ट्रेडर गेम के दौरान फ़ेयर वैल्यू की तरफ सुधारते हैं। इन दोनों के बीच का अंतर ही बॉट की बढ़त है।
वॉल्यूम का बँटवारा असमान होता है: NFL संडे पर पॉलीमार्केट स्पोर्ट्स मार्केट में सैकड़ों-करोड़ डॉलर घूम सकते हैं; मंगलवार रात के Saudi Pro League मुक़ाबले में शायद $50k से कम रह जाए। अपनी रणनीति को उस जगह के हिसाब से साइज़ करें जहाँ एक्शन सच में है।
प्री-गेम बनाम इन-गेम (अलग बॉट)
दो बुनियादी रूप से अलग बॉट डिज़ाइन।
प्री-गेम लाइन-कैचर: अभी-अभी खुले मार्केट स्कैन करें, अपने मॉडल या किसी ज़्यादा तेज़ वेन्यू के नंबर के मुकाबले ग़लत प्राइस वाली लाइनें पहचानें, FOK ख़रीद लगाएँ। इन-प्ले तक होल्ड करें, कभी-कभी रिज़ॉल्यूशन तक। रफ़्तार: मिनट, सेकंड नहीं। बढ़त: मॉडल + लाइन-शॉपिंग।
इन-गेम माइक्रोस्ट्रक्चर: लाइव गेम के ऑर्डर बुक WebSocket को सब्सक्राइब करें, स्कोर इवेंट + असंतुलन सिग्नल पर सेकंड के भीतर प्रतिक्रिया करें। रफ़्तार: सेकंड, मिनट नहीं। बढ़त: लेटेंसी + ऑर्डर फ़्लो पढ़ना।
दोनों का कोड लगभग साझा नहीं होता। इनके रिस्क प्रोफ़ाइल अलग हैं, डेटा सोर्स अलग हैं, एग्ज़िट रणनीतियाँ अलग हैं। जो बॉट दोनों करने की कोशिश करता है, वह अंत में दोनों को ठीक से नहीं करता; एक चुनें।
वेरिफ़ाइड टैग ID (745 NBA, 864 टेनिस)
प्रमुख स्पोर्ट्स श्रेणियों के लिए मई 2026 में वेरिफ़ाइड प्रोडक्शन टैग ID। इन्हें /events कॉल को कुशलता से फ़िल्टर करने के लिए इस्तेमाल करें।
| स्पोर्ट / लीग | टैग ID | टैग slug | नोट्स |
|---|---|---|---|
| NBA | 745 | nba | सबसे ज़्यादा वॉल्यूम अक्टूबर-जून |
| NFL | 450 | nfl | पीक रवि/सोम सितंबर-फ़रवरी |
| टेनिस (सभी) | 864 | tennis | साल भर, टूर्नामेंट के हिसाब से |
| सॉकर (सामान्य) | 1059 | soccer | नीचे दिए सब-टैग के साथ जोड़ें |
| EPL | 739 | epl | |
| UCL | 2186 | uefa-champions-league | |
| ईस्पोर्ट्स (सभी) | 702 | esports | LoL+CS2+Valorant+Dota |
| MLB | 1245 | mlb | पीक अप्रैल-अक्टूबर |
| NHL | 823 | nhl | पीक अक्टूबर-जून |
टैग ID साल दर साल स्थिर रहते हैं। नए टैग जोड़े जाते हैं (Saudi Pro League, IPL), लेकिन पुराने टैग का नंबर दोबारा नहीं बदलता।
डेटा सोर्स: ESPN, आधिकारिक API, ऑन-स्क्रीन
पारंपरिक स्पोर्ट्स के लिए मुफ़्त ESPN स्कोरबोर्ड API आपकी ज़रूरत की सब चीज़ें कवर करता है: स्कोर, पीरियड/क्लॉक, जीत की संभावना, और कभी-कभी शॉट लोकेशन। कोई key ज़रूरी नहीं; रेट लिमिटिंग सिर्फ IP स्तर पर होती है। एंडपॉइंट पैटर्न: https://site.api.espn.com/apis/site/v2/sports/<sport>/<league>/scoreboard।
ईस्पोर्ट्स के लिए ESPN कवरेज नहीं देता। विकल्प: PandaScore ($30-60/mo, इंडस्ट्री स्टैंडर्ड), HLTV (सिर्फ़ CS2, स्क्रैप किया जा सकता है, कोई API नहीं), Liquipedia (समुदाय द्वारा मेंटेन, स्क्रैप किया जा सकता है, धीमी अपडेट रफ़्तार)।
ऑन-स्क्रीन फ़ीड (TV स्ट्रीम के लिए पैसे देकर स्कोरबग को OCR से पढ़ना) काम करते हैं, लेकिन ऑपरेशनली भारी हैं। इन्हें केवल तभी सुझाया जाता है जब आपकी रणनीति को ऐसे स्पोर्ट पर सब-3-सेकंड अपडेट चाहिए हों, जहाँ कोई API रियल टाइम में कवर नहीं करती।
इन-गेम के लिए लेटेंसी बजट
इन-गेम रिएक्टिव बॉट के लिए एंड-टू-एंड लेटेंसी बजट।
- स्कोर इवेंट होता है: t=0
- सोर्स फ़ीड दिखाता है: t+3-15s (ESPN: ~10s; PandaScore: ~3s)
- आपका बॉट फ़ीड पढ़ता है: t+10-16s
- बॉट एक्शन तय करता है: +50ms
- FOK ऑर्डर लगता है: +200-500ms
- CLOB पर मैच होता है: +300-1000ms (नेटवर्क + मैचिंग)
कुल: 11-17 सेकंड। सबसे तेज़ पेशेवर फ़र्में पेड प्रीमियम फ़ीड और को-लोकेटेड VPS के साथ एंड-टू-एंड 3-5 सेकंड हासिल करती हैं। स्टैंडर्ड होस्ट और मुफ़्त ESPN पर चलने वाले रिटेल बॉट धीमे सिरे पर होते हैं।
जिन रणनीतियों को सब-5s चाहिए, वे रिटेल के लिए व्यवहार्य नहीं हैं। जिन रणनीतियों का 10-17s विंडो में काम बनता है, वे हैं: स्कोर के बाद लाइन-कैचिंग, ओवररिएक्शन के उलट ट्रेड करना, गेम के आख़िर में तय नतीजों वाले दांव।
0.99 / 0.01 जाल
सबसे आम इन-प्ले स्पोर्ट्स बॉट की नाकामी: एक मिनट बचा रहते हुए पक्के फ़ेवरिट को 0.99 पर ख़रीदना, और आसान +1¢ की उम्मीद करना। यह तीन कारणों से नाकाम होता है।
पहला, अंडरडॉग की 1% इंप्लाइड प्रोबेबिलिटी शून्य नहीं होती - देर से वापसी ठीक-ठाक बार होती है। 99.5% पक्की जीत को 200 बार खेला जाए, तो पूरे पोज़ीशन साइज़ पर एक घाटा देती है।
दूसरा, 0.99/0.01 पर स्प्रेड का मतलब है कि आप शेयर के लिए 99c चुकाते हैं, सफलता पर 1c जीतते हैं, और दुर्लभ उलटफेर पर 99c गँवाते हैं। रिस्क-रिवॉर्ड बहुत बेरहम है।
तीसरा, 0.999 पर GTC बेच इस्तेमाल करने वाला बॉट शायद ही फ़िल होगा - उस प्राइस पर ख़रीदार नहीं होते। पोज़ीशन रिज़ॉल्यूशन तक चलती है। अगर वह जीतता है, आपको 1c मिला। अगर उलटफेर हुआ, तो आप 99c हार गए।
यह जाल असली पैसा उन बिल्डर से गँवाता है जिन्होंने गणित नहीं किया। 0.95+ प्राइस वाले मार्केट से दूर रहें, जब तक आपकी रणनीति खास तौर पर रिडेम्प्शन-आर्बिट्राज प्रोफ़ाइल के लिए न बनी हो।
कोड: गेम की बुक सब्सक्राइब करें और प्रतिक्रिया दें
रेफ़रेंस: किसी खास NBA गेम के WebSocket को सब्सक्राइब करें, बुक अपडेट लॉग करें, असंतुलन सिग्नल पर FOK चलाएँ।
import websocket, json
THRESHOLD = 0.5 # imbalance level to trigger
def on_message(ws, message):
msg = json.loads(message)
if msg.get("event_type") != "book": return
bids = msg.get("bids", [])
asks = msg.get("asks", [])
bid_depth = sum(float(b["price"]) * float(b["size"]) for b in bids[:5])
ask_depth = sum(float(a["price"]) * float(a["size"]) for a in asks[:5])
total = bid_depth + ask_depth
if total < 100: return # too illiquid
imb = (bid_depth - ask_depth) / total
if abs(imb) > THRESHOLD:
print(f"signal imb={imb:.2f} bid={bid_depth:.0f} ask={ask_depth:.0f}")
# fire FOK here
ws = websocket.WebSocketApp(
"wss://ws-subscriptions-clob.polymarket.com/ws/market",
on_open=lambda ws: ws.send(json.dumps({"type":"Market","markets":["<CONDITION_ID>"]})),
on_message=on_message
)
ws.run_forever()
प्रोडक्शन में जोड़ने लायक: fire के बीच कूलडाउन, प्रति-टोकन इन्वेंटरी कैप, बासी बुक पर बंद कर देना (30s में कोई मैसेज नहीं)।


