مسیر Quant Developer · بخش ۶: Hedging و بازار مشتقات · درس ۲۳
Basis و Cross-Venue Arbitrage
Basis چیست و چطور روی هج اثر میگذارد، شهود Cash-and-Carry، و حساب کامل یک اختلاف قیمت بین دو صرافی که نشان میدهد چرا بیشتر آربیتراژهای ظاهری واقعی نیستند.
۱. Basis: فاصله قرارداد آتی از Spot
در درس ۲۱ فرض کردیم ابزار هج دقیقاً همقیمت Spot است و در درس ۲۲ دیدیم Funding سعی میکند Perp را نزدیک Index نگه دارد. «نزدیک» اما «برابر» نیست. به اختلاف قیمت قرارداد آتی (یا Perp) و Spot، Basis میگوییم:
که F قیمت قرارداد و S قیمت Spot است. اگر قرارداد گرانتر از Spot باشد (Basis مثبت)، به این وضعیت Contango میگویند و اگر ارزانتر باشد، Backwardation. در بازار رمزارز Basis بیشتر وقتها مثبت است، چون تقاضا برای Long اهرمی معمولاً بیشتر از Short است؛ ولی این قاعده نیست و در سقوطها برعکس میشود.
Basis چطور هج را خراب میکند
هج درس ۲۲ را به یاد بیاور: 0.5 BTC Spot خریدهایم و 0.5 BTC Perp فروختهایم. سود و زیان مجموع:
یعنی وقتی هج کامل است، ریسک قیمت به ریسک Basis تبدیل میشود. مثال: هنگام باز کردن هج، Spot برابر 100,000 و Perp برابر 100,050 است (Basis پنجاه دلار). چند ساعت بعد در یک سقوط، Spot به 95,000 و Perp به 94,900 میرسد (Basis صد دلار منفی):
| پایه | تغییر قیمت | سود و زیان |
|---|---|---|
| Spot (Long 0.5) | از 100,000 به 95,000 | 2,500 دلار زیان |
| Perp (Short 0.5) | از 100,050 به 94,900 | 2,575 دلار سود |
| جمع | Basis از ۵۰ مثبت به ۱۰۰ منفی | ۷۵ دلار سود |
اینجا تغییر Basis به نفع ما بود، ولی همین حرکت در جهت مخالف، زیان است. Basis معمولاً دقیقاً در لحظههای پرتنش بیشترین حرکت را دارد. برای هج کوتاهمدت بازارساز این نوسان کوچک است؛ برای هج چندروزه، باید جزو ریسک دیده شود.
۲. Cash-and-Carry: شهود یک معامله Basis
حالا Basis را از زاویه دیگری ببینیم: اگر قرارداد آتی گرانتر از Spot است، آیا میشود از خود این اختلاف سود برد؟
فرض کن یک قرارداد آتی با سررسید ۹۰ روز در 101,500 معامله میشود و Spot در 100,000 است (اعداد فرضی). معامله Cash-and-Carry این است: Spot را بخر، همان مقدار قرارداد آتی را بفروش، و تا سررسید نگه دار. روز سررسید قرارداد با قیمت Spot تسویه میشود؛ پس هر قیمتی که BTC داشته باشد، سود دو پایه با هم برابر Basis اولیه است:
Basis ۱.۵ درصد در ۹۰ روز، بهصورت سالانه (ساده):
این عدد سرخط است. حالا هزینهها و سرمایه را اضافه کنیم:
- کارمزد: چهار معامله (خرید Spot، فروش قرارداد، فروش Spot در سررسید، تسویه قرارداد)، هر کدام با کارمزد فرضی ۰.۰۵٪ روی حدود ۵۰,۰۰۰ دلار: حدود ۱۰۰ دلار.
- سرمایه: پایه Spot کل ۵۰,۰۰۰ دلار را میخواهد. پایه قرارداد هم وجه تضمین میخواهد، و طبق درس ۲۲ نباید با اهرم بالا Short بمانی؛ با اهرم ۳، حدود ۱۶,۹۱۷ دلار.
از ۶ درصد سرخط به حدود ۴ درصد رسیدیم؛ و این بازده رایگان نیست. پاداش این است که سرمایه را سه ماه قفل کردهای، ریسک دو صرافی را پذیرفتهای، و اگر BTC تند بالا برود، باید وجه تضمین پایه Short را بهموقع شارژ کنی در حالی که سود پایه Spot جای دیگری نشسته است (همان مشکل بخش ۵ درس ۲۲). عدد نهایی را باید با بازده بدون ریسکتری که همین سرمایه جای دیگر میگیرد مقایسه کرد.
با Perp ماجرا فرق دارد: سررسیدی نیست که همگرایی را تضمین کند. درآمد از Funding میآید که مثبت ماندنش تضمینی ندارد، و موقع بستن موقعیت، Basis میتواند از روز ورود بدتر باشد.
۳. اختلاف قیمت بین صرافیها
یک دارایی در چند صرافی معامله میشود و قیمتها هیچوقت دقیقاً برابر نیستند. نقدشوندگی پراکنده است، کاربران هر صرافی متفاوتاند، و اطلاعات با تأخیر بین صرافیها جابهجا میشود. صرافی A همان دفتر سفارش درس ۱ را دارد (Best Ask برابر 100,010). دفتر سفارش فرضی صرافی B در همان لحظه:
Best Bid صرافی B از Best Ask صرافی A، ۱۵۰ دلار (۰.۱۵٪) بالاتر است. ایده Cross-Venue Arbitrage این است: در A بخر، در B بفروش، اختلاف را بردار. روی صفحه بیریسک به نظر میرسد. بیا کامل حسابش کنیم.
۴. حساب کامل یک «آربیتراژ»
حجم 0.5 BTC را در نظر بگیر. خرید در A دو سطح را مصرف میکند (0.3 در 100,010 و 0.2 در 100,020) و فروش در B هم دو سطح (0.2 در 100,160 و 0.3 در 100,150). کارمزد Taker هر طرف ۰.۰۵٪ و هزینه متعادلسازی موجودی بین دو صرافی (کارمزد انتقال و برداشت، تقسیم بر تعداد معاملات) ۲۰ دلار فرض شده است:
| مورد | مقدار |
|---|---|
| میانگین قیمت خرید در A | 100,014 |
| میانگین قیمت فروش در B | 100,154 |
| سود ناخالص (اختلاف ۱۴۰ دلار برای 0.5 BTC) | ۷۰ دلار سود |
| کارمزد Taker در A | ۲۵.۰۰ دلار هزینه |
| کارمزد Taker در B | ۲۵.۰۴ دلار هزینه |
| هزینه متعادلسازی (فرضی) | ۲۰ دلار هزینه |
| نتیجه خالص | ۰.۰۴ دلار زیان |
اختلاف ۱۵۰ دلاری بالای دفتر بعد از اسلیپیج ۱۴۰ دلار شد، و کارمزد دو طرف بهتنهایی ۱۰۰ دلار به ازای هر BTC (۰.۱٪) را میخورد. قاعده سرانگشتی: اختلاف قیمت باید از مجموع کارمزد دو طرف بیشتر باشد تا اصلاً بحث شروع شود.
اندازه معامله هم مهم است. هزینه متعادلسازی تقریباً ثابت است و اسلیپیج با حجم بالا میرود:
def vwap(levels, qty):
"""Average price for taking qty from a list of (price, size), best level first."""
left, cost = qty, 0.0
for price, size in levels:
take = min(left, size)
cost += take * price
left -= take
if left <= 1e-12:
return cost / qty
raise ValueError("not enough depth")
asks_a = [(100_010, 0.3), (100_020, 0.5), (100_030, 0.9)] # venue A: we buy here
bids_b = [(100_160, 0.2), (100_150, 0.6), (100_130, 1.0)] # venue B: we sell here
fee = 0.0005 # taker fee per side, hypothetical
transfer = 20.0 # rebalancing cost per trade in USDT, hypothetical
for qty in [0.1, 0.2, 0.3, 0.5, 0.8, 1.0]:
buy, sell = vwap(asks_a, qty), vwap(bids_b, qty)
gross = (sell - buy) * qty
fees = fee * qty * (buy + sell)
net = gross - fees - transfer
print(f"qty {qty:.1f}: buy {buy:,.0f} sell {sell:,.0f} "
f"gross {gross:6.2f} fees {fees:6.2f} net {net:+7.2f}")
qty 0.1: buy 100,010 sell 100,160 gross 15.00 fees 10.01 net -15.01
qty 0.2: buy 100,010 sell 100,160 gross 30.00 fees 20.02 net -10.02
qty 0.3: buy 100,010 sell 100,157 gross 44.00 fees 30.02 net -6.02
qty 0.5: buy 100,014 sell 100,154 gross 70.00 fees 50.04 net -0.04
qty 0.8: buy 100,016 sell 100,152 gross 109.00 fees 80.07 net +8.93
qty 1.0: buy 100,019 sell 100,148 gross 129.00 fees 100.08 net +8.92
بهترین حالت حدود ۹ دلار سود روی حدود ۸۰,۰۰۰ دلار معامله است: حدود ۱ واحد پایه (basis point). و این تازه قبل از ریسکهایی است که در هیچ جدولی نمیآیند.
۵. چرا آربیتراژ ظاهری اغلب آربیتراژ نیست
تأخیر و ریسک یکپایه ماندن
دو سفارش همزمان به دو صرافی میروند، ولی همزمان نمیرسند (تأخیر را در درس ۱۹ دیدیم). اختلاف ۱۵۰ دلاری را بقیه هم دیدهاند. اگر خرید در A پر شود ولی Bid صرافی B قبل از رسیدن سفارش تو برداشته شود، یکپایه ماندهای (Legging Risk). در حالت 0.8 BTC، اگر تصمیم بگیری فوراً در همان صرافی A برگردی و به Bidهای درس ۱ بفروشی (0.4 در 99,990 و 0.4 در 99,980)، اسلیپیج و کارمزد دو طرف حدود ۱۰۵ دلار زیان میسازد. احتمال شکست پایه دوم که در آن امید ریاضی صفر میشود:
اگر پایه دوم بیشتر از حدود یک بار در ۱۳ تلاش جا بماند، این «آربیتراژ» بهطور متوسط زیانده است. و بدترین بخش این است که شکست پایه دوم تصادفی نیست: دقیقاً وقتی رخ میدهد که رقیب سریعتری همان فرصت را دیده است.
زمان انتقال
اگر BTC از قبل در صرافی B نباشد، باید بعد از خرید آن را منتقل کنی. انتقال روی بلاکچین و تأییدهای صرافی مقصد ممکن است دهها دقیقه طول بکشد. با نوسان روزانه فرضی ۳٪، در ۳۰ دقیقه:
یک انحراف معیار ریسک قیمت ۲۱۶ دلار است، در حالی که بهترین سود مورد انتظار جدول بالا حدود ۹ دلار بود. به همین دلیل کسانی که این کار را جدی انجام میدهند، از قبل در هر دو صرافی موجودی دارند (USDT در A و BTC در B) و بعداً، آرام و با هزینه، دوباره متعادلش میکنند. یعنی سرمایه در چند صرافی قفل میشود؛ موضوع تخصیص سرمایه در درس ۲۴.
محدودیت برداشت و ریسک صرافی
- محدودیت برداشت: سقف روزانه، توقف موقت برداشت یک شبکه، یا بررسی دستی برداشتهای بزرگ. اگر نتوانی موجودی را متعادل کنی، بعد از چند معامله یک طرف خالی میشود و بازی تمام است.
- ریسک طرف مقابل: پولی که در یک صرافی است، دارایی تو نیست؛ طلب تو از آن صرافی است. صرافی میتواند برداشت را متوقف کند یا ورشکست شود.
- اختلاف ماندگار یک هشدار است: وقتی یک صرافی برای مدت طولانی گرانتر یا ارزانتر از بقیه است، اغلب دلیلش این است که پول بهراحتی از آن خارج یا به آن وارد نمیشود. آن اختلاف، قیمت همین ریسک است، نه پول روی زمین.
۶. تمرین این درس
گزینه مناسب هر سؤال را انتخاب کن و در پایان نتیجه را ببین. همه نرخها فرضیاند.
درس بعدی
در درس ۲۴، بخش ششم را با سؤالی میبندیم که همه این درسها به آن رسیدند: چقدر موجودی مجاز است و سرمایه را چطور بین جفتارزها و صرافیها تقسیم کنیم؟ از نوسان و تحمل زیان به Inventory Limit میرسیم، محدودیت نرم و سخت را جدا میکنیم، ریسک تمرکز را میسنجیم و بافر وجه تضمین Perp را با یک مثال Python حساب میکنیم.
این مطلب صرفاً آموزشی است و توصیه خرید، فروش یا سرمایهگذاری نیست.