পলিমার্কেট বট টিউটোরিয়াল · অধ্যায় 13 / 32

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

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

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

  • সহজ বাংলায় মার্কেট মেকিং
  • স্প্রেড + রিবেট প্রান্ত
  • ইনভেন্টরি ঝুঁকি ও স্কিউ
  • পলিমার্কেট-এ কখন MM কাজ করে (এবং কখন না)
  • Code skeleton: উভয় পাশকে +/- N cents-এ quote করা
  • নিউজ ফ্লো অনুযায়ী কোট সমন্বয় করা
  • অ্যাডভার্স সিলেকশন বেড়ে গেলে বট বন্ধ করা

সহজ ভাষায় মার্কেট মেকিং

একজন 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 করা যায় কি না।

স্প্রেড + রিবেট প্রান্ত

একজন পলিমার্কেট 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: পলিমার্কেট-এর 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 করতে পলিমার্কেট rebate বাড়ায়।

ইনভেন্টরি ঝুঁকি ও স্কিউ

একজন 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 করুন।

পলিমার্কেট-এ কখন MM কাজ করে (এবং কখন না)

যখন তিনটি শর্ত পূরণ হয়, পলিমার্কেট-এ 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 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 (পলিমার্কেট 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 করে।

অ্যাডভার্স সিলেকশন বেড়ে গেলে বট বন্ধ করা

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 কি সত্যিই পলিমার্কেট-এ market-making করে money make করতে পারে?
কিছু নির্দিষ্ট market-এ, কখনও কখনও পারে। Maker rebate (taker fees-এর 20-25%) plus প্রতি round trip-এ 1-3 cent spread একসাথে real return-এ compound করতে পারে। কিন্তু পলিমার্কেট-এ news flow কয়েক সেকেন্ডে market 20+ cents move করাতে পারে - fast news feed না থাকলে market maker adversely selected হবে। Pre-game এবং low-news period-এ liquid sports markets-এর জন্য সবচেয়ে ভালো।
পলিমার্কেট-এ কতটা 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%+ ধরতে দেবেন না।
পলিমার্কেট market-make করতে কি fast VPS লাগে?
হ্যাঁ। Market making হলো পলিমার্কেট-এর সবচেয়ে 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 থেকে পলিমার্কেট MM কীভাবে আলাদা?
দুটি বড় পার্থক্য: (1) পলিমার্কেট-এ hard outcome event (news, sports finales) আছে, যা price 30-100 cents instantaneously move করাতে পারে - crypto-এর চেয়ে অনেক sharper। (2) পলিমার্কেট markets eventually resolve হয়, তাই crypto pairs-এর মতো নয়, MM positions-এর hard expiration আছে। দুটোই আপনাকে shorter holds এবং tighter risk limits-এর দিকে ঠেলে দেয়।
আমি কি পলিমার্কেট-এ 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 করা হবে।