Polymarket Bot Tutorial · 32টির মধ্যে 13তম অধ্যায়

Polymarket-এ market making: কীভাবে bid এবং ask quote করতে হয়, spread capture করতে হয়, maker rebates (taker fees-এর 20-25%), inventory risk math, এবং prediction markets-এ কখন MM কাজ করে।

এই অধ্যায়ে কী কী covered আছে

Polymarket-এ market making মানে হলো market book-এর দুই পাশই continuously quote করা এবং প্রতিটি round trip-এ spread earning করা। Traditional finance-এ এই strategy well-understood; Polymarket-এর জন্য আলাদা জিনিস হলো maker-rebate program এবং prediction markets-এর adverse-selection profile, যা CFD venues-এর তুলনায় বেশি। এই অধ্যায়টি হলো honest math।

  • সহজ বাংলায় market making
  • Spread + rebate edge
  • Inventory risk এবং skew
  • Polymarket-এ কখন MM works করে (এবং কখন না)
  • Code skeleton: উভয় পাশকে +/- N cents-এ quote করা
  • News flow অনুযায়ী quotes adjust করা
  • Adverse selection spike করলে bot kill করা

সহজ ভাষায় market making

একজন market maker continuously একটি buy price (bid) এবং একটি sell price (ask) quote করে, যা mid-এর চেয়ে fixed spread-এ wider থাকে। কেউ যখন bid hit করে, maker সস্তায় buy করে; কেউ যখন ask lift করে, maker বেশি দামে sell করে; bid এবং ask-এর পার্থক্যটাই হলো প্রতি round trip-এ maker-এর revenue।

এই strategy order-flow-driven, directional নয়। Maker-এর কোনো opinion থাকে না যে YES জিতবে কি না; তারা এই position নেয় যে flow চলতেই থাকবে এবং spread paid হতে থাকবে।

রিস্ক হলো adverse selection: যারা আপনার bid hit করছে, তাদের কাছে এমন information থাকতে পারে যা আপনার নেই। সময়ের সঙ্গে MM profit নির্ভর করে spread কি যথেষ্ট wide যাতে informed traders-এর slippage cover করা যায় কি না।

Spread + rebate edge

একজন Polymarket maker-এর জন্য দুটি revenue stream।

Spread capture: ধরুন mid 0.46-এর আশেপাশে bid 0.45 এবং ask 0.47 quote করা হলো। Bid-এ যেকোনো fill, যা আপনি পরে ask-এ exit করতে পারেন, 2 cents earn করে। Net edge fill imbalance এবং price drift-এর ওপর depend করে।

Maker rebate: Polymarket-এর liquidity-rewards program eligible markets-এ maker fills-এর ওপর per-share rebate দেয়। সংখ্যা বদলাতে পারে; বর্তমান values-এর জন্য official rewards page দেখুন। Rebate trade নিজে থেকে আলাদা, periodicভাবে pUSD-এ paid হয়।

বেশিরভাগ market-এ spread capture-ই বড় revenue stream। Rebate তখন meaningful যখন আপনি wide markets quote করতে পারেন (election year, major sports playoffs), যেখানে liquidity attract করতে Polymarket rebate বাড়ায়।

Inventory risk এবং skew

একজন MM যে বারবার bid-এ hit হচ্ছে, সে long position accumulate করে। রিস্ক হলো mid নিচে নেমে যাওয়া যখন inventory long; maker spread revenue পেলেও position-এ loss realize করে।

প্রতিরক্ষা: quote skew (inventory long হলে bid lower করা, short হলে ask higher করা, যাতে one-sided fills discourage হয়); inventory cap (যে side-এ আপনি already too long, সেখানে quoting বন্ধ রাখা); active rebalancing (inventory limit-এ থাকলে position কমাতে কখনও spread cross করা)।

Math: যদি bid-এ 60% fills price 2 cents adverse move হওয়ার আগে exit না করে, তাহলে শুধু ওই fills-এই strategy loss-making। fill imbalance > 65/35 হলে aggressively skew করুন।

Polymarket-এ কখন MM works করে (এবং কখন না)

যখন তিনটি শর্ত পূরণ হয়, Polymarket-এ MM works করে।

  • Liquid book: যথেষ্ট quote competition আছে যাতে আপনার spread competitive থাকে কিন্তু zero না হয়। 2024 election markets, major NFL/NBA games, BTC up/down 5m - সবই qualify করে।
  • Two-sided flow: buyer এবং seller - দু’পক্ষই active। One-sided markets (0.95+ এ resolve-ish) market maker-এর জন্য capture করার মতো কিছুই দেয় না।
  • Bounded price moves: spread captures 5-cent jumps-এ eaten up হয় না। Stable mid-range markets (0.40-0.60) সবচেয়ে friendly।

MM fail করে news-driven markets-এ, যেখানে mid আপনি re-quote করার আগেই jump করে; illiquid books-এ, যেখানে আপনি একাই quote দেন এবং next trade 5 levels walk করে; resolution-imminent markets-এ, যেখানে এক side 0 বা 1-এর দিকে converge করছে।

Code skeleton: উভয় পাশকে +/- N cents-এ quote করা

সবচেয়ে সহজ viable maker-এর pseudocode।

SPREAD_CENTS = 2
INVENTORY_CAP_SHARES = 50

def make_loop(token_id):
    while True:
        book = fetch_book(token_id)
        mid = (book.best_bid + book.best_ask) / 2
        inv = chain_balance(token_id)

        # Skew: pull the side we are too long on
        bid_px = mid - SPREAD_CENTS/200 - (0.005 if inv > INVENTORY_CAP_SHARES * 0.6 else 0)
        ask_px = mid + SPREAD_CENTS/200 + (0.005 if inv < -INVENTORY_CAP_SHARES * 0.6 else 0)

        cancel_my_existing_quotes(token_id)
        if inv < INVENTORY_CAP_SHARES:
            place_gtc(token_id, side="BUY", price=bid_px, size=5)
        if inv > -INVENTORY_CAP_SHARES:
            place_gtc(token_id, side="SELL", price=ask_px, size=min(5, inv))
        time.sleep(2)

Production makers আরও যোগ করে: per-side inventory tracking, cancel-before-place ordering, re-quote interval-এ jitter, adverse selection-এর ওপর kill-switch (next section)।

News flow অনুযায়ী quotes adjust করা

যখন কোনো news event hit করে, fair value আপনার quotes-এর আগে move করে। যে MM news flow-এর সময় quotes pull করে না, সে picked off হয়।

Signal: 30 সেকেন্ডের মধ্যে incoming fills-এর cancel rate baseline-এর প্রায় 3x-এর ওপরে jump করা, অথবা আরও বিস্তৃত event-stream cross-check (Polymarket Twitter/Discord, Bloomberg headline feed)। ধরা পড়লে maker 60-120 সেকেন্ডের জন্য সব quotes pull করে, নতুন mid stabilize হতে দেয়, তারপর নতুন center-এর চারপাশে re-quote করে।

সবচেয়ে সহজ implementation token-এর last-trade-price stream watch করে। rolling-window mean থেকে 2 standard deviations-এর বেশি jump হলে pause trigger হয়। Price 30+ সেকেন্ড stable থাকলে bot আবার engage করে।

Adverse selection spike করলে bot kill করা

Hard exit। যদি bot-এর শেষ 50 fills-এর fill PnL sharply negative হয়ে যায়, তাহলে কিছু না কিছু ভুল আছে: হয় market এখন news-driven এবং আপনাকে make করা উচিত নয়, অথবা current adverse-selection level-এর জন্য আপনার spread খুব tight।

Encode করার জন্য kill conditions:

  • টানা 5টি bid fill, কোনো ask fill নেই, এবং first fill-এর পর থেকে mid > 1c down।
  • শেষ 25টি round-trip fills-এর realized PnL expected-এর -25%-এর নিচে।
  • WebSocket disconnect বা stale book detected।
  • কোনো এক side-এ inventory cap-এ 5 মিনিটের বেশি।

Trigger হলে সব cancel করুন, market-এ inventory flatten করুন, 15+ মিনিট halt করুন। যেসব market maker-এর kill switch নেই, তারা volatile period-এ manual notice হওয়া পর্যন্ত টাকা হারাবে - আর সেটা সবসময়ই আপনি যতটা ভাবেন তার চেয়ে বেশি সময় নেয়।

সচরাচর জিজ্ঞাসিত প্রশ্ন

রিটেইল bot কি সত্যিই Polymarket-এ market-making করে money make করতে পারে?
কিছু নির্দিষ্ট market-এ, কখনও কখনও পারে। Maker rebate (taker fees-এর 20-25%) plus প্রতি round trip-এ 1-3 cent spread একসাথে real return-এ compound করতে পারে। কিন্তু Polymarket-এ news flow কয়েক সেকেন্ডে market 20+ cents move করাতে পারে - fast news feed না থাকলে market maker adversely selected হবে। Pre-game এবং low-news period-এ liquid sports markets-এর জন্য সবচেয়ে ভালো।
Polymarket-এ কতটা wide quote করা উচিত?
কমপক্ষে, worst expected adverse-selection cover করার জন্য যতটা spread দরকার। Liquid sports/politics-এর জন্য: mid থেকে side-প্রতি 1-3 cents। Thin markets-এর জন্য: 5+ cents। যদি অন্য makers-এর সঙ্গে compete করার মতো tight, আবার move survive করার মতো wide - দুটোই করতে না পারেন, তাহলে marketটি আপনার জন্য market-makeable নয়।
কী ধরনের inventory limits সেট করা উচিত?
Months ধরে profitability প্রমাণ না হওয়া পর্যন্ত প্রতি market hard cap 50-200 USD রাখুন। Inventory neutral-এর দিকে যেতে quote skew করুন - যদি আপনি Yes accumulate করেন, তাহলে Yes bid lower করুন এবং No ask lower করুন, যাতে No buys ফিরে আসে। কখনও কোনো single market-কে আপনার bankroll-এর 20%+ ধরতে দেবেন না।
Polymarket market-make করতে কি fast VPS লাগে?
হ্যাঁ। Market making হলো Polymarket-এর সবচেয়ে latency-sensitive strategy। Jittery VPS stale quote তৈরি করে, যেগুলো pick off হয়ে যায়। আমরা আমাদের MM bots-এর জন্য TradingVPS ব্যবহার করি বিশেষ করে কারণ jitter consistently low। Commodity cloud (DO/Vultr) paper trading MM-এর জন্য কাজ করতে পারে, live-এর জন্য নয়।
Crypto MM থেকে Polymarket MM কীভাবে আলাদা?
দুটি বড় পার্থক্য: (1) Polymarket-এ hard outcome event (news, sports finales) আছে, যা price 30-100 cents instantaneously move করাতে পারে - crypto-এর চেয়ে অনেক sharper। (2) Polymarket markets eventually resolve হয়, তাই crypto pairs-এর মতো নয়, MM positions-এর hard expiration আছে। দুটোই আপনাকে shorter holds এবং tighter risk limits-এর দিকে ঠেলে দেয়।
আমি কি Polymarket-এ 5-minute crypto markets market-make করতে পারি?
সম্ভব, কিন্তু খুব কঠিন। 5-minute markets-এ pair প্রতি day-এ প্রায় 288 expirations হয়, এগুলো faster bots দ্বারা dominated, এবং spread-ও tighter। বেশিরভাগ রিটেইল MM bot সেখানে adverse selection-এর কারণে টাকা হারায়। এই series-এর 23তম অধ্যায়ে 5-minute crypto strategy যথাযথভাবে cover করা হবে।