آربیتراژ مثلثی چیست؟ Triangular Arbitrage روشی است که در آن معاملهگر از اختلاف نرخ تبدیل میان سه جفتارز استفاده میکند. در یک مسیر ساده، سرمایه از دارایی A به B تبدیل میشود، سپس از B به C و در پایان از C دوباره به A برمیگردد. اگر نرخهای قابل اجرا با یکدیگر سازگار نباشند، ممکن است مقدار نهایی A از مقدار اولیه بیشتر شود. این فرصت معمولاً در یک صرافی و میان سه بازار معاملاتی بررسی میشود و به سرعت و دقت محاسبه نیاز دارد.
آربیتراژ مثلثی از نظر ظاهری ممکن است معاملهای بدون جهت بازار به نظر برسد، اما اجرای آن تضمینشده نیست. نرخها بهسرعت تغییر میکنند و هر مرحله کارمزد، اسپرد و لغزش دارد. اگر فقط یک یا دو ضلع مسیر اجرا شود، معاملهگر ممکن است در معرض نوسان یک دارایی قرار بگیرد. بنابراین باید امکان اجرای سفارشها، موجودی هر ارز و برنامه خروج از مسیر ناقص از قبل مشخص باشد. محاسبه نظری سود بدون بررسی عمق بازار کافی نیست.
برای ساخت مسیر، سه بازار مرتبط را پیدا میکنید که امکان تبدیل زنجیرهای میان سه دارایی را فراهم کنند. برای مثال، اگر جفتهای A/B، B/C و A/C در دسترس باشند، میتوان نرخهای خرید و فروش را به شکلی بررسی کرد که در نهایت به دارایی اولیه بازگردید. جهت هر تبدیل اهمیت دارد؛ باید مشخص باشد در هر بازار خریدار هستید یا فروشنده و از کدام سمت دفتر سفارش قیمت قابل اجرا را میگیرید.
یک مسیر میتواند از A به B، سپس B به C و در پایان C به A حرکت کند؛ مسیر معکوس نیز باید جداگانه بررسی شود. قیمت خرید و فروش در یک جفتارز یکسان نیست و استفاده از نرخ میانی یا آخرین قیمت میتواند سود را بیشبرآورد کند. پیش از اجرا، نرخ تبدیل هر سه مرحله را با جهت صحیح و اندازه واقعی سفارش محاسبه کنید. همچنین بررسی کنید آیا هر سه جفتارز در همان حساب و با موجودی قابل استفاده در دسترساند.
فرض کنید با ۱۰۰۰ واحد از دارایی A شروع میکنید. در مرحله اول A را به B تبدیل میکنید و پس از آن B را به C و سپس C را به A بازمیگردانید. اگر نرخهای فرضی بهگونهای باشند که پیش از هزینهها ۱۰۰۸ واحد A دریافت کنید، سود ناخالص ۸ واحد یا ۰٫۸ درصد است. اما اگر در هر مرحله ۰٫۱ درصد کارمزد پرداخت شود، باید اثر سه بار کارمزد و اختلاف قیمت اجرا را از نتیجه کم کنید.
در محاسبه دقیق، هر تبدیل باید با نرخ قابل اجرا برای حجم موردنظر انجام شود. اگر مقدار سفارش از عمق بهترین قیمت بیشتر باشد، بخش بعدی در قیمت متفاوتی اجرا میشود و نرخ میانگین تغییر میکند. همچنین ممکن است به دلیل گرد کردن مقدار سفارش یا حداقل اندازه مجاز، تمام سرمایه در هر مرحله تبدیل نشود. محاسبه را با اعداد واقعی دفتر سفارش و قواعد دقت صرافی انجام دهید و حاشیه سود را پس از تمام هزینهها بسنجید.
آخرین قیمت معاملهشده فقط نشان میدهد یک معامله در گذشته نزدیک با چه قیمتی انجام شده است؛ اما لزوماً نشاندهنده قیمتی نیست که سفارش بعدی شما در آن اجرا میشود. برای خرید باید قیمتهای فروش موجود و برای فروش باید قیمتهای خرید را بررسی کنید. در مسیر مثلثی، هر سه مرحله ممکن است در عمق متفاوتی قرار داشته باشند. اگر سفارش شما بزرگ باشد، اجرای آن چند سطح از دفتر سفارش را مصرف میکند و نرخ متوسط را تغییر میدهد.
به همین دلیل، محاسبه آربیتراژ باید بر اساس Bid و Ask و عمق قابل استفاده انجام شود. اگر داده سه بازار در زمانهای متفاوت دریافت شود، ممکن است نرخها با یکدیگر همزمان نباشند. تأخیر شبکه یا محدودیت درخواست API میتواند فرصت ظاهری ایجاد کند که در لحظه اجرا دیگر وجود ندارد. برای درک عمق سفارشها، راهنمای دفتر سفارشات و عمق بازار را مطالعه کنید و دادهها را از یک منبع هماهنگ دریافت کنید.
هر ضلع مسیر ممکن است کارمزد معامله داشته باشد و سه بار هزینه معامله میتواند بخش مهمی از اختلاف نرخ را مصرف کند. علاوه بر آن، اندازه حداقل سفارش، تعداد اعشار مجاز، حداقل ارزش معامله و گرد کردن مقدار خروجی بر نتیجه اثر میگذارند. اگر مقدار تبدیلشده کمتر از حداقل مجاز بازار بعدی باشد، مسیر کامل اجرا نمیشود. بنابراین الگوریتم باید پیش از ارسال سفارش، اندازه نهایی هر مرحله را با قوانین همان جفتارز تطبیق دهد.
برخی جفتارزها حجم و عمق کمی دارند و نرخ اعلامی آنها برای اندازه موردنظر قابل اجرا نیست. همچنین ممکن است یکی از بازارها موقتاً در حالت محدودیت یا توقف قرار بگیرد. پیش از انتخاب مسیر، نقدشوندگی هر سه جفت را بررسی کنید و هزینهها را برای اندازههای مختلف محاسبه کنید. مسیرهایی با اختلاف نرخ زیاد اما عمق پایین میتوانند خطرناکتر از مسیرهای کمحاشیه و نقدشونده باشند. معیار انتخاب باید سود خالص قابل اجرا باشد، نه اختلاف ظاهری نرخها.
فرصتهای آربیتراژ مثلثی معمولاً کوتاهمدتاند و ممکن است با ورود سفارشهای دیگر از بین بروند. به همین دلیل، برخی سیستمها سه سفارش را با سرعت بالا و با کنترل وضعیت هر مرحله اجرا میکنند. با این حال، ارسال همزمان سفارشها بدون دانستن مقدار واقعی اجرای مرحله قبل میتواند باعث شود اندازه سفارش بعدی با موجودی واقعی هماهنگ نباشد. در مسیرهای وابسته، بهتر است مقدار مرحله بعد بر اساس حجم پرشده واقعی محاسبه شود یا از سازوکارهای اتمیک در صورت پشتیبانی استفاده شود.
اگر سفارش اول اجرا شود اما سفارش دوم رد شود، حساب شما ممکن است دارایی B نگه دارد و در معرض نوسان آن قرار بگیرد. برای مسیر ناقص باید برنامه خروج یا تبدیل اضطراری وجود داشته باشد. همچنین شناسه یکتا، ثبت پاسخ سرور و کنترل وضعیت سفارش از ارسال تکراری جلوگیری میکند. پس از هر چرخه، موجودیها باید با دفتر حساب صرافی تطبیق داده شوند. سرعت مهم است، اما نباید جایگزین کنترل خطا و مدیریت موقعیت شود.
برای آزمون، داده همزمان سه بازار را ذخیره کنید و مسیرهای ممکن را در هر دو جهت محاسبه کنید. سپس کارمزد، اسپرد، عمق و محدودیتهای سفارش را وارد مدل کنید. بکتست باید از دادهای استفاده کند که ترتیب زمانی آن حفظ شده باشد؛ استفاده از نرخهای غیرهمزمان میتواند فرصتهای غیرواقعی بسازد. بعد از آزمون تاریخی، سیستم را در محیط آزمایشی یا با اندازه بسیار کوچک اجرا کنید و نرخ موفقیت کامل چرخه را اندازه بگیرید.
شاخصهایی مانند سود خالص هر چرخه، درصد مسیرهای ناقص، زمان اجرا، لغزش، تعداد فرصتهای ردشده و تغییر موجودی را ثبت کنید. اگر سود نظری مثبت است اما اجرای واقعی اغلب زیانده میشود، مدل باید بازنگری شود. برای کنترل سوگیری و ارزیابی سیستم، بکتست استراتژی معاملاتی و بررسی اسلیپیج در اجرای سفارش را در برنامه آزمایش قرار دهید.
آیا آربیتراژ مثلثی نیازمند انتقال بین صرافیهاست؟ معمولاً مسیر کلاسیک در یک صرافی انجام میشود و همین موضوع میتواند ریسک انتقال را کاهش دهد؛ اما ریسک اجرا و نقدشوندگی همچنان وجود دارد. آیا سه معامله باید حتماً همزمان اجرا شوند؟ وابستگی مراحل به موجودی و نرخها اهمیت دارد و روش اجرا به امکانات پلتفرم بستگی دارد. آیا اختلاف نرخ مثبت به معنی سود است؟ خیر؛ هزینه سه معامله و لغزش باید کسر شود.
برای شروع، یک مسیر با جفتارزهای نقدشونده انتخاب کنید و نرخ هر سه مرحله را با جهت صحیح محاسبه کنید. پیش از سرمایه واقعی، محدودیتهای اندازه سفارش و رفتار سیستم در صورت اجرای ناقص را آزمایش کنید. برای ایدههای تحلیلی بازار میتوانید سیگنال رایگان معاملات ارز دیجیتال را جداگانه دنبال کنید؛ اما آربیتراژ مثلثی به محاسبه نرخ تبدیل و اجرای لحظهای وابسته است و از یک سیگنال جهتدار بهتنهایی نتیجه نمیگیرد.