Polymarket বট তৈরি করা: স্ক্যানার, সাইজিং, এক্সিকিউশন আর্কিটেকচার
একজন ডেভেলপারের নির্দেশিকা—Polymarket বট তৈরি করার জন্য: স্ক্যানার, রিস্ক সাইজিং, এক্সিকিউটর এবং মনিটরিং। ব্যবহারিক আর্কিটেকচার ও API রেফারেন্স।
Polymarket বট তৈরি করুন: স্ক্যানার, সাইজিং, এক্সিকিউশন, মনিটরিং
এই নির্দেশিকায় দেখানো আছে কিভাবে একটি Polymarket বট তৈরি করবেন যা ধারাবাহিকভাবে মার্কেট স্ক্যান করে, সুযোগগুলো সাইজ করে, CLOB এর মাধ্যমে এক্সিকিউট করে এবং পারফরম্যান্স মনিটর করে। এটা আর্কিটেকচার ও ডেভেলপার প্যাটার্নগুলিতে ফোকাস করে যা আপনি Polymarket-এর পাবলিক API এবং Relayer মডেল ব্যবহার করে বাস্তবায়ন করতে পারেন।
প্রধান takeaway
- বটকে চারটি স্বাধীন সার্ভিস হিসেবে আর্কিটেকচার করুন: scanner, sizer, executor, এবং monitor.
- লিস্টিং ও অর্ডার প্লেসমেন্টের জন্য Polymarket-এর Gamma এবং CLOB API ব্যবহার করুন; রিয়েল-টাইম বুক আপডেটের জন্য WebSocket ব্যবহার করুন.
- দ্রুত এক্সিকিউশনের জন্য FAK মার্কেট অর্ডার প্রাধান্য দিন, কিন্তু সর্বদা স্লিপেজ ও ফিগুলি বিবেচনা করুন।
- ওরাকল বিতর্ক, নিষ্পত্তি বিলম্ব, বা অপ্রত্যাশিত ফিল ঘটলে মনিটরিং এবং দ্রুত kill-switch ইনস্ট্রুমেন্ট করুন।
কেন এই কাঠামো
যখন দায়িত্বগুলো আলাদা করা থাকে, ট্রেডিং সিস্টেমগুলো বোঝা সহজ হয়। একটি scanner প্রার্থী edge খুঁজে বের করে, একটি sizer edge কে পজিশনে রূপান্তর করে, একটি executor CLOB-এর মাধ্যমে অর্ডার প্লেস করে, এবং একটি monitor সঠিকতা ও সেফটি নিশ্চিত করে। এই বিভাজন আপনাকে latency এবং রিস্ক আলাদা করে স্কেল, টেস্ট, এবং বিশ্লেষণ করতে দেয়।
H2: ডেটা সোর্স ও API
আপনার সার্ভিসগুলিতে নিচের Polymarket এন্ডপয়েন্টগুলো সংযুক্ত করে শুরু করুন:
- Gamma (মার্কেট মেটাডেটা): https://gamma-api.polymarket.com — markets, events, tags, series। after_cursor দিয়ে পেজিনেশন ব্যবহার করুন; offset এড়িয়ে চলুন।
- CLOB (অর্ডার বুক ও ট্রেডিং): https://clob.polymarket.com — অর্ডারবুক রিড পাবলিক; ট্রেডিং API key + HMAC প্রয়োজন। CLOB SDK গুলো অর্ডার প্লেসমেন্ট পরিচালনা করে।
- Market WebSocket (রিয়েল-টাইম বুক): wss://ws-subscriptions-clob.polymarket.com/ws/market — book, price_change, best_bid_ask, এবং tick_size_change সাবস্ক্রাইব করুন। PING প্রতি 10 সেকেন্ডে পাঠান।
- Data API (পোস্ট-ট্রেড অ্যানালিটিক্স): https://data-api.polymarket.com — positions, open interest ইত্যাদি।
ডিজাইন নোট: কার্যকর লাইভ স্ক্যানিংয়ের জন্য Gamma লিস্টিংগুলো WebSocket ফিডের সাথে কম্বাইন করুন। Gamma রেট লিমিট (যেমন /markets ক্যাপ) এবং CLOB কী চাহিদা সম্মান করুন।
H2: Scanner — প্রার্থী সুযোগগুলো খোঁজা
ফাংশন
Scanner আপনার স্ট্র্যাটেজি অনুযায়ী সুযোগগুলো আবিষ্কার করে: intra-market binary spreads, multi-outcome sums, বা endgame প্যাটার্ন। এটি স্টেটলেস, অনুভূমিকভাবে স্কেলেবল এবং কাঁচা edge হিসাব করায় মনোনিবেশ করা উচিত।
ইনপুট ও কিডেন্স
- best_bid_ask এবং tick পরিবর্তন পেতে Market WebSocket-এ custom_feature_enabled: true সহ সাবস্ক্রাইব করুন।
- নতুন ইনস্ট্রুমেন্ট প্রথমবার দেখলে Gamma /markets দিয়ে ব্যাকফিল করুন যাতে মেটাডেটা ও আউটকামস পাওয়া যায়।
- প্রতিটি আউটকামের জন্য best asks/bids-এর একটি ছোট in-memory ভিউ বজায় রাখুন।
Edge গণনা
- Binary intra-market: edge = 1.00 - (bestAsk(YES) + bestAsk(NO)) হিসাব করুন। ধনাত্মক edge হলে এটা একটি প্রার্থী।
- Multi-outcome: edge = 1.00 - sum(bestAsk(outcomes))।
থ্রেশহোল্ড ও ফিল্টার
- ন্যূনতম edge থ্রেশহোল্ড (যেমন > কনফিগার করা সেন্ট) যাতে taker ফি ও এক্সিকিউশন রিস্ক কভার হয়।
- ন্যূনতম লিকুইডিটি চেক: best ask এ depth অবশ্যই নির্দিষ্ট মিনিমাম ফিল সাইজ পূরণ করতে হবে।
- Tick-size সচেতনতা: tick_size_change ইভেন্টগুলো বিবেচনা করুন — প্রাইস গ্র্যানুলারিটি এক্সট্রিমসে $0.001-এ পরিবর্তিত হতে পারে।
H2: Sizing — রিস্ক ও ক্যাপিটাল বরাদ্দ
লক্ষ্য
Sizing কাঁচা edge-কে একটি অর্ডার পরিকল্পনায় রূপান্তর করে: প্রতিটি আউটকামে কত শেয়ার কিনবেন এবং স্লিপেজ সীমিত করতে কিভাবে অর্ডারগুলো ভাগ করবেন।
কম্পোনেন্ট
- Exposure caps: প্রতিটি মার্কেট এবং গ্লোবাল pUSD exposure সীমা।
- Depth-limited sizing: ask সাইডে ক্রমাগত প্রাইস স্তরে উপলব্ধ কিউমুলেটিভ ভলিউম গণনা করুন; কেবল সেই ভলিউম অনুযায়ী সাইজ করুন যা প্রত্যাশিত স্লিপেজ টলারেন্সের মধ্যে রাখে।
- Fee allowance: গ্রস edge থেকে প্রত্যাশিত taker fee বিয়োগ করুন (ক্যাটেগরিতে পরিবর্তনশীল, সর্বোচ্চ 1.8% পর্যন্ত) এবং তারপর ট্রেড করার সিদ্ধান্ত নিন।
প্রাকটিক্যাল প্যাটার্ন
- রক্ষণশীল ফিল দিয়ে শুরু করুন: বড় একক অর্ডারের বদলে একাধিক ছোট FAK মার্কেট অর্ডার পছন্দ করুন, যতক্ষণ না আপনি বুক কন্ট্রোল করেন।
- যদি আপনি CTF split/merge ফ্লো দিয়ে একটি complete set কিনেন, তাহলে split/merge গ্যাস (Relayer দ্বারা হ্যান্ডেল করা হয়) এবং tick size-এ রাউন্ডিংয়ের সম্ভাব্য খরচ অন্তর্ভুক্ত করুন।
H2: Executor — অর্ডার প্লেস করা ও fills হ্যান্ডল করা
অর্ডার টাইপ ও সীমাবদ্ধতা
- অর্ডার প্লেসমেন্টের জন্য CLOB ট্রেডিং এন্ডপয়েন্ট ব্যবহার করুন: https://clob.polymarket.com। CLOB SDK এবং Relayer ওয়ালেট ডিপ্লয়মেন্ট, approvals, এবং অর্ডার সাইনিং পরিচালনা করে।
- গতি বাড়াতে প্রয়োজন অনুযায়ী FAK (Fill-And-Kill) মার্কেট অর্ডার ব্যবহার করুন। FAKs তাৎক্ষণিকভাবে এক্সিকিউট করে অথবা বাতিল করে; এগুলি আক্ষেপী এক্সপোজার এড়াতে সাহায্য করে কিন্তু পার্শিয়াল-ফিল হতে পারে।
এক্সিকিউশন ফ্লো
- ট্রেড ইন্টার্ট প্রস্তুত করুন: sizer থেকে রিটার্ন হওয়া আউটকাম টোকেন আইডি ও টার্গেট পরিমাণগুলোর তালিকা।
- যদি multi-outcome complete-set এক্সিকিউট করেন, আপনি পরিবর্তে একটি CTF split (complete set mint) করে তারপর লেগগুলো বিক্রি করতে পারেন — Relayer ও SDK CTF অপসভার আবস্ট্রাকশন করে।
- Builder Program-এর অংশ হলে সঠিক attribution হেডারসহ CLOB ট্রেডিং API দিয়ে অর্ডার সাবমিট করুন।
- WebSocket last_trade_price ও best_bid_ask আপডেট অথবা CLOB ট্রেড রেসপন্স থেকে fills পর্যবেক্ষণ করুন।
সেফটি ও রিকনসিলিয়েশন
- পার্শিয়াল ফিল ট্র্যাক করুন এবং অবশিষ্ট অংশ ক্যানসেল করুন অথবা তাত্ক্ষণিকভাবে পুনরামূল্য নির্ধারণ করুন।
- ফিলের পরে on-chain CTF ব্যালান্স (Data API-এর মাধ্যমে) রিকনসিল করুন যাতে নিশ্চিত হন যে আপনি প্রত্যাশিত আউটকাম টোকেনগুলো বাস্তবে ধারণ করছেন।
- অর্ডার রিট্রাইয়ের জন্য idempotency কী এবং nonce হ্যান্ডলিং বাস্তবায়ন করুন।
H2: মনিটরিং ও অপারেশনাল সেফটি
কী মনিটর করবেন
- Fill রেট, গড় স্লিপেজ বনাম প্রত্যাশিত, ফি বিয়োগের পরে বাস্তবায়িত edge।
- WebSocket আপডেট এবং অর্ডার সাবমিশনের মধ্যে latency।
- অস্বাভাবিক ইভেন্ট: UMA বিতর্ক, tick_size_change, মার্কেটপ্লেস-ওয়াইড আউটেজ।
অ্যালার্ট ও কিল-সুইচ
- অটোমেটেড সফট কিল: নেট বাস্তবায়িত P&L একটি থ্রেশহোল্ডের নীচে গেলে বা ফিল স্লিপেজ লিমিট ছাড়ালে নতুন অর্ডার প্লেস করা বন্ধ করুন।
- হার্ড কিল: আপনি যদি কোনো মার্কেটে পজিশন রাখেন এবং UMA বিতর্ক রিপোর্ট করে, অথবা Relayer নিষ্পত্তি সমস্যার সংকেত দেয়, তাহলে সমস্ত ট্রাফিক তৎক্ষণাৎ বন্ধ করুন।
অডিট লগ ও অবজার্ভেবিলিটি
- সমস্ত অর্ডার ইন্টেন্ট, র মোট মার্কেট স্ন্যাপশট এবং এক্সিকিউটেড ফিল সংরক্ষণ করুন। পোস্ট-মর্টেম ও ব্যাকটেস্টিংয়ের জন্য এই লগগুলো ব্যবহার করুন।
- Gamma এবং CLOB রেকর্ডের সাথে মিলানোর জন্য লগগুলোতে market id, condition_ids, এবং request ids ট্যাগ করুন।
H2: Builder Program, ক্রেডেনশিয়াল, ও রেট লিমিট
আপনি যদি attribution দিয়ে অর্ডার রুট করতে চান, Builder Program-এ যোগ দিন এবং Polymarket সেটিংসে কীসমূহ পরিচালনা করুন। Builder টিয়ারগুলো দৈনিক relayer লিমিট এবং পুরস্কার নিয়ন্ত্রণ করে। CLOB দিয়ে ট্রেড করার জন্য API key + HMAC প্রয়োজন এবং রেট লিমিট ও relayer কোটা সম্মান করতে হবে।
H2: সাধারণ ঝুঁকি ও প্রশমন
গণিতীয় edgeকে নিশ্চিত বলে ধরে নেবেন না। বিবেচ্য ঝুঁকিগুলো:
- Resolution risk: UMA বিতর্ক পেংলা বা পেংলা পরিবর্তন করতে পারে।
- Slippage ও পার্শিয়াল ফিল: FAKs পার্শিয়াল ফিল হতে পারে; অবশিষ্ট এক্সপোজারের পরিকল্পনা রাখুন।
- ফি: টেকার ফি ক্যাটেগরিভিত্তিকভাবে পরিবর্তিত হয় এবং ছোট edge কে ক্ষয় করতে পারে (Geopolitics ক্যাটেগরি fee-free)।
- নিষ্পত্তি সময়: redeem/merge সময় এবং ওরাকল রেজোলিউশন বিলম্ব ক্যাপিটাল আটকে রাখতে পারে।
- স্মার্ট-কন্ট্র্যাক্ট বা Relayer ব্যর্থতা: ব্যাকআপ প্ল্যান ও মানব এলার্টিং ইনস্ট্রুমেন্ট করুন।
এটা আপনার ট্রেডিংকে কিভাবে প্রভাবিত করে
আপনার বট ডিজাইন করুন যাতে প্রতিটি ট্রেড ইউনিট ছোট, পর্যবেক্ষণযোগ্য এবং আপনার রিস্ক লিমিটের মধ্যে উল্টানো যায়। রক্ষণশীল সাইজিং, দ্রুত মনিটরিং এবং স্পষ্ট কিল কনডিশন টেইল রিস্ক কমায়। নির্ধারিত মার্কেট স্টেটের জন্য Gamma এবং CLOB এন্ডপয়েন্ট ব্যবহার করুন এবং দ্রুত এক্সিকিউশনের জন্য FAK অর্ডার পছন্দ করুন, তবে সবসময় বাস্তবায়িত স্লিপেজকে প্রত্যাশার সাথে পরিমাপ করুন।
ক্লোজিং
উপরের আর্কিটেকচার একটি ব্যবহারিক ব্লুপ্রিন্ট দেয় Polymarket ট্রেডিং বট তৈরির জন্য: একটি উচ্চ-থ্রুপুট স্ক্যানার, রক্ষণশীল sizer, CLOB ও Relayer ব্যবহার করে দৃঢ় executor, এবং স্তরভিত্তিক মনিটরিং। ছোট থেকে শুরু করুন, তীব্র ইনস্ট্রুমেন্টেশন করুন, এবং লাইভ ডেটা জমা হওয়ার সাথে সাথে সাইজিং ও ফিল্টারগুলিতে পুনরাবৃত্তি করুন।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
কোন API গুলো ব্যবহার করা উচিত মার্কেট লিস্টিং ও লাইভ বুক ডেটা পাওয়ার জন্য?
রিয়েল-টাইম অর্ডার বুক ও best_bid_ask ইভেন্টের জন্য ব্যবহার করুন wss://ws-subscriptions-clob.polymarket.com/ws/market এবং মার্কেট মেটাডেটার জন্য https://gamma-api.polymarket.com (/markets)। অর্ডার-বুক রিড ও ট্রেডিংয়ের জন্য https://clob.polymarket.com ব্যবহার করুন; রিড পাবলিক কিন্তু ট্রেডিংয়ের জন্য API key + HMAC প্রয়োজন।
Arbitrage এর জন্য কি আমাকে limit অর্ডার ব্যবহার করা উচিত না market (FAK) অর্ডার?
গতি এবং স্থায়ী এক্সপোজার এড়াতে FAK (Fill-And-Kill) মার্কেট অর্ডার সাধারণত ব্যবহৃত হয়। এগুলো পার্শিয়াল-ফিল হতে পারে, তাই সাইজিং ও রিকনসিলিয়েশন সেই অনুযায়ী ডিজাইন করুন। CLOB SDK FAK মার্কেট অর্ডার তৈরির হেল্পার সরবরাহ করে।
সাইজিং ট্রেডের সময় ফিগুলো কিভাবে হিসাব করব?
গ্রস edge থেকে প্রত্যাশিত taker ফি বিয়োগ করুন ট্রেড করার আগে। টেকার ফি ক্যাটেগরিভিত্তিকভাবে পরিবর্তিত হয় (বর্তমানে 0% থেকে 1.8% পর্যন্ত)। ফি, প্রত্যাশিত স্লিপেজ এবং মনিটরিং বাফার কভার করার জন্য একটি নেট-এজ থ্রেশহোল্ড ব্যবহার করুন।
লাইভ বটের জন্য কোন মনিটরিং অপরিহার্য?
Fill রেট, বাস্তবায়িত স্লিপেজ, latency, UMA বিতর্ক নোটিস, tick_size_change ইভেন্ট এবং Relayer স্বাস্থ্য মনিটর করুন। বড় স্লিপেজ, P&L ড্রডাউন বা ওরাকল বিতর্কের জন্য সফট ও হার্ড কিল-সুইচ বাস্তবায়ন করুন।
কি আমি Builder Program এর মাধ্যমে অর্ডার রুট করতে পারি?
হ্যাঁ। Builder Program তৃতীয় পক্ষকে attribution দিয়ে অর্ডার রুট করতে এবং builder ফি আর্ন করতে দেয়। টিয়ারগুলো দৈনিক relayer লিমিট ও পুরস্কার নিয়ন্ত্রণ করে; ক্রেডেনশিয়ালগুলি polymarket.com/settings-এ পাওয়া যায়।
রেফারেন্স করা পরিভাষা
সম্পর্কিত গাইডসমূহ
শিক্ষামূলক উদ্দেশ্যে בלבד। আর্থিক, আইনি বা কর-সম্পর্কীয় পরামর্শ নয়। হতে পারে আপনার এলাকা/নির্ধারিত অঞ্চলে Polymarket উপলব্ধ না থাকে।