پولی مارکیٹ بوٹ ٹیوٹوریل · باب 13 از 32
پولی مارکیٹ پر مارکیٹ میکنگ: bid اور ask کو کیسے کوٹ کریں، اسپریڈ کیپچر کریں، میکر ریبیٹس کمائیں (ٹیکر فیس کا 20-25%)، انوینٹری رسک ریاضی، اور پیشگوئی مارکیٹس پر MM کب کام کرتا ہے۔
اس باب میں کیا شامل ہے
پولی مارکیٹ پر مارکیٹ میکنگ کا مطلب ہے مارکیٹ کی آرڈر بُک کے دونوں سائیڈز کو مسلسل کوٹ کرنا اور ہر راؤنڈ ٹرپ پر اسپریڈ کمانا۔ یہ حکمتِ عملی روایتی فنانس میں اچھی طرح سمجھی جاتی ہے؛ پولی مارکیٹ کے مخصوص فرق میکر-ریبیٹ پروگرام اور پیشگوئی مارکیٹس کی adverse-selection پروفائل ہیں، جو CFD مقامات سے زیادہ ہوتی ہے۔ یہ باب خالص ریاضی ہے۔
- سادہ زبان میں مارکیٹ میکنگ
- اسپریڈ + ریبیٹ ایج
- انوینٹری رسک اور جھکاؤ
- پولی مارکیٹ پر MM کب کام کرتا ہے (اور کب نہیں)
- کوڈ ڈھانچہ: دونوں سائیڈز کو +/- N سینٹس پر کوٹ کرنا
- خبروں کے بہاؤ کے مطابق کوٹس ایڈجسٹ کرنا
- Adverse selection میں اچانک اضافہ ہونے پر بوٹ بند کرنا
سادہ زبان میں مارکیٹ میکنگ
ایک مارکیٹ میکر مسلسل دونوں سائیڈز کوٹ کرتا ہے: خریداری قیمت (bid) اور فروخت قیمت (ask)، جو mid سے ایک مقررہ اسپریڈ کے ساتھ چوڑے ہوتے ہیں۔ جب کوئی bid کو hit کرتا ہے تو میکر سستا خریدتا ہے؛ جب کوئی ask کو lift کرتا ہے تو میکر مہنگا بیچتا ہے؛ bid اور ask کے درمیان فرق میکر کی راؤنڈ ٹرپ آمدنی ہوتی ہے۔
یہ حکمتِ عملی آرڈر-فلو پر مبنی ہوتی ہے، سمتی نہیں۔ میکر اس بارے میں کوئی رائے نہیں رکھتا کہ YES جیتے گا یا نہیں؛ وہ یہ پوزیشن لیتا ہے کہ فلو آتا رہے گا اور اسپریڈ ادا ہوتا رہے گا۔
رسک adverse selection ہے: جو لوگ آپ کی bid hit کر رہے ہیں ان کے پاس وہ معلومات ہو سکتی ہیں جو آپ کے پاس نہیں۔ وقت کے ساتھ MM منافع اس بات پر منحصر ہوتے ہیں کہ اسپریڈ باخبر تاجروں کی سلپیج کو پورا کرنے کے لیے کافی چوڑا ہے یا نہیں۔
اسپریڈ + ریبیٹ ایج
پولی مارکیٹ میکر کے لیے آمدنی کے دو ذرائع ہیں۔
اسپریڈ کیپچر: 0.46 mid کے ارد گرد bid 0.45 اور ask 0.47 کوٹ کریں۔ bid پر ہر فِل جسے آپ بعد میں ask پر exit کر سکیں، 2 سینٹس کماتا ہے۔ خالص ایج فِل عدم توازن اور قیمت drift پر منحصر ہوتا ہے۔
میکر ریبیٹ: پولی مارکیٹ کا لیکویڈیٹی-rewards پروگرام اہل مارکیٹس میں میکر فِلز پر per-share ریبیٹ دیتا ہے۔ اعداد بدلتے رہتے ہیں؛ موجودہ اقدار کے لیے سرکاری rewards صفحہ چیک کریں۔ ریبیٹ ٹریڈ سے الگ، وقفے وقفے سے pUSD میں ادا کیا جاتا ہے۔
زیادہ تر مارکیٹس میں اسپریڈ کیپچر بڑی آمدنی کا ذریعہ ہوتی ہے۔ ریبیٹ اس وقت بامعنی ہوتا ہے جب آپ چوڑی مارکیٹس کوٹ کر سکیں (انتخابی سال، بڑے اسپورٹس playoffs) جہاں پولی مارکیٹ لیکویڈیٹی متوجہ کرنے کے لیے ریبیٹس بڑھاتا ہے۔
انوینٹری رسک اور جھکاؤ
ایک MM جو بار بار bid پر hit ہوتا ہے، long پوزیشن جمع کرتا ہے۔ رسک یہ ہے کہ mid نیچے آ جائے جبکہ انوینٹری long ہو؛ میکر اسپریڈ آمدنی کے باوجود پوزیشن پر نقصان اٹھاتا ہے۔
دفاع: کوٹ جھکاؤ (جب انوینٹری long ہو تو bid کو نیچے کریں، short ہو تو ask کو اوپر کریں، تاکہ یک طرفہ فِلز کی حوصلہ شکنی ہو); انوینٹری حد (اس سائیڈ پر کوٹنگ روک دیں جہاں آپ پہلے ہی بہت زیادہ long ہیں); فعال ری بیلنسنگ (جب انوینٹری حد پر ہو تو پوزیشن کم کرنے کے لیے کبھی کبھار اسپریڈ پار کریں)۔
ریاضی: اگر bid پر ہونے والے 60% فِلز قیمت کے 2 سینٹس منفی حرکت کرنے سے پہلے exit ہی نہیں کرتے، تو حکمتِ عملی صرف انہی فِلز پر نقصان میں ہے۔ جب فِل عدم توازن > 65/35 ہو تو جارحانہ طور پر جھکاؤ دیں۔
پولی مارکیٹ پر MM کب کام کرتا ہے (اور کب نہیں)
MM پولی مارکیٹ پر تب کام کرتا ہے جب تین شرائط پوری ہوں۔
- لیکویڈ book: اتنی کوٹ مسابقت کہ آپ کا اسپریڈ مسابقتی ہو مگر صفر نہ ہو۔ 2024 انتخابی مارکیٹس، بڑے NFL/NBA میچز، BTC up/down 5m سب اہل قرار پاتے ہیں۔
- دو طرفہ فلو: خریدار اور فروخت کنندہ دونوں فعال ہوں۔ یک طرفہ مارکیٹس (0.95+ کے قریب تقریباً resolved) میں میکر کے لیے کیپچر کرنے کو کچھ نہیں ہوتا۔
- محدود قیمت حرکات: اسپریڈ کیپچرز کو 5-سینٹ اچھال کھا جائیں۔ مستحکم درمیانی حد کی مارکیٹس (0.40-0.60) سب سے موزوں ہوتی ہیں۔
MM ان صورتوں میں ناکام ہوتا ہے: خبروں سے چلنے والی مارکیٹس جہاں mid آپ کے دوبارہ کوٹ کرنے سے پہلے ہی اچھل جائے؛ غیر لیکویڈ books جہاں آپ ہی واحد کوٹ ہوں اور اگلی ٹریڈ 5 سطحوں تک چلی جائے؛ ریزولوشن-قریب مارکیٹس جہاں ایک سائیڈ 0 یا 1 کی طرف بڑھ رہی ہو۔
کوڈ ڈھانچہ: دونوں سائیڈز کو +/- N سینٹس پر کوٹ کرنا
سب سے سادہ قابلِ عمل میکر کے لیے سیوڈوکوڈ۔
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)
پروڈکشن میکرز یہ شامل کرتے ہیں: فی-سائیڈ انوینٹری ٹریکنگ، cancel-before-place ترتیب، دوبارہ-کوٹ وقفے پر جٹر تاکہ آپ قابلِ پیش گوئی نہ بنیں، adverse selection کے لیے kill-switch (اگلا حصہ)۔
خبروں کے بہاؤ کے مطابق کوٹس ایڈجسٹ کرنا
جب کوئی خبر کا واقعہ رونما ہوتا ہے، منصفانہ قیمت آپ کے کوٹس سے پہلے بدل جاتی ہے۔ جو MM خبروں کے بہاؤ کے دوران کوٹس واپس نہیں لیتا وہ چن لیا جاتا ہے۔
سگنل: آنے والی فِلز کی منسوخی کی شرح 30 سیکنڈز میں بنیادی سطح کے مقابلے میں تقریباً 3x سے اوپر اچھلنا، یا ایک وسیع تر event-stream کراس-چیک (پولی مارکیٹ Twitter/Discord، Bloomberg سرخی feed)۔ جب پتا چل جائے تو میکر 60-120 سیکنڈز کے لیے تمام کوٹس واپس لیتا ہے، نئے mid کو مستحکم ہونے دیتا ہے، پھر نئے مرکز کے گرد دوبارہ کوٹ کرتا ہے۔
سب سے سادہ عمل درآمد token کے لیے last-ٹریڈ-price stream دیکھتی ہے۔ rolling-window mean سے 2 standard deviations سے زیادہ اچھال ایک وقفہ متحرک کرتا ہے۔ بوٹ تب دوبارہ فعال ہوتا ہے جب قیمت 30+ سیکنڈز تک مستحکم ہو جائے۔
Adverse selection میں اچانک اضافہ ہونے پر بوٹ بند کرنا
سخت exit۔ اگر بوٹ کا آخری 50 فِلز کا فِل PnL اچانک منفی ہو جائے، تو کچھ نہ کچھ غلط ہے: یا تو مارکیٹ اب خبروں سے چلنے والی ہے اور آپ کو مارکیٹ میکنگ نہیں کرنی چاہیے، یا آپ کا اسپریڈ موجودہ adverse-selection سطح کے لیے بہت تنگ ہے۔
جو بند کرنے کی شرائط کوڈ میں شامل کرنی چاہئیں:
- 5 مسلسل bid فِلز مگر کوئی ask فِل نہیں، اور پہلی فِل کے بعد mid > 1c نیچے ہو۔
- آخری 25 راؤنڈ-ٹرپ فِلز پر حاصل شدہ PnL متوقع کے -25% سے نیچے ہو۔
- WebSocket منقطع ہو یا باسی book کا پتا چلے۔
- کسی بھی سائیڈ پر انوینٹری حد پر > 5 منٹ رہے۔
متحرک ہونے پر سب کچھ منسوخ کریں، انوینٹری کو مارکیٹ پر صاف کریں، 15+ منٹ کے لیے روک دیں۔ جس مارکیٹ میکر کے پاس kill switch نہیں ہوتا وہ اتار چڑھاؤ کے ادوار میں دستی اطلاع آنے تک نقصان کرتا رہے گا - اور یہ ہمیشہ آپ کے اندازے سے زیادہ وقت لیتا ہے۔


