سهشنبهای، ساعت 00:05 بهوقت UTC، راهبرد رمزارزی مقطعی ما 40 قرارداد دائمی را بر اساس امتیاز روند کوتاهمدت رتبهبندی کرد و 10 قرارداد برتر را با وزن برابر وارد پرتفوی کرد. بکتست فاصله مطلوبی میان برندگان و بازندگان نشان میداد. اما وقتی خواستیم با 250,000 دلار سرمایه معامله کنیم، منحنی جذاب شروع به فروپاشی کرد.
مشکل در سیگنال پنهان نشده بود. مشکل در بازتنظیمی بود: 10 خرید، 10 فروش و چند قراردادی که عمق نمایشی دفتر سفارششان سخاوتمندانه به نظر میرسید، تا وقتی سفارشها همزمان از راه رسیدند. راهبرد، تغییر پرتفوی را مثل بهروزرسانی قیمت در نظر گرفته بود. اما برای صرافی، این تغییر صفی از سفارشهای واقعی است.
آن سهشنبه را بهترتیب بازسازی کردیم. اول باید موقعیتهای قبلی را کوچک میکردیم. بعد باید موقعیتهای جدید را باز میکردیم. وزنهای هدف ساده بودند؛ مسیری که باید تا رسیدن به آنها طی میشد، ساده نبود.
هزینه 8 واحد پایه برای هر سمت، از یک برآورد میانگینِ واحد به دست آمده بود. این برآورد کارمزد صرافی و مقداری لغزش قیمت را پوشش میداد. در نتیجه، هزینه همه سفارشها یکسان بود؛ چه قراردادی نقدشونده در زمانی آرام، چه قراردادی کمعمق بلافاصله پس از موجی از نوسان.
از بزرگترین سفارش شروع کردیم. هدف 25,000 دلاری معادل 0.4% از حجم معاملات روزانه بود؛ نسبتی که بیخطر به نظر میرسید. اما حجم روزانه نمیگوید در همان چند ثانیهای که باید معامله کنید، چه مقدار دارایی در دسترس است. عمق بهترین قیمت خریدوفروش کم بود و فاصله قیمتها در چند سطح بعدی بهسرعت بیشتر میشد. خرید یا فروش فوریِ کل مقدار، چند سطح قیمتی را مصرف میکرد. سفارش محدود فقط در صورتی باعث صرفهجویی در فاصله قیمت خریدوفروش میشد که اجرا میشد؛ و راهبرد هیچ تضمینی نداشت که پیش از تصمیم بعدیاش سفارش پر شود.
پس سفارش را به 5 بخش 5,000 دلاری تقسیم کردیم. این کار اثر فوری سفارش را کمتر کرد، اما زمانبندی و مسیر بازار را هم وارد ماجرا کرد: هر بخش ممکن بود با قیمتی متفاوت اجرا شود و حرکت سریع بازار میتوانست موقعیت را نیمهکاره بگذارد. هر دو حالت را ثبت کردیم. بکتست اولیه هیچکدام را ثبت نکرده بود.
و این فقط یک سمت معامله بود. راهبرد موقعیتهایی را که از جمع 10 قرارداد برتر خارج شده بودند میفروخت و جایگزینهایشان را میخرید. خالص مواجهه نزدیک به هدف میماند، اما گردش ناخالص معاملات تقریباً دو برابر سرمایه تخصیصیافته بود. اگر هزینه را فقط برای تغییر نهایی پرتفوی حساب میکردیم، معاملات لازم برای رسیدن به آن را نادیده میگرفتیم.
| روش اجرا | چه چیزی را کاهش میداد | چه ریسکی داشت |
|---|---|---|
| یک سفارش بازار | زمان و ابهام درباره تکمیل سفارش | مصرف بیشتر عمق دفتر سفارش در یک نوبت |
| 5 بخش سفارش بازار | اثر فوری کمتر | تغییر قیمت میان بخشها |
| سفارش محدود | احتمال پرداخت فاصله قیمت کمتر | اجرای ناقص یا اجرا نشدن کامل |
همان بعدازظهر، کمکهزینه ثابت لغزش قیمت را با یک مدل ساده مشارکت در حجم جایگزین کردیم. اثر مورد انتظار هر سفارش با افزایش اندازه آن نسبت به حجم معاملات اخیر بیشتر میشد و مشارکت شبیهسازیشده را سقفگذاری کردیم تا راهبرد نتواند سهمی نامعقول از بازار را مصرف کند. این مدل همچنان تقریبی بود: حجم تجمیعی، صف زنده سفارشها نیست و یک کندل همه قیمتهای طی مسیر را نشان نمیدهد. اما بکتست را وادار میکرد بپذیرد که هزینه اجرای یک سیگنال واحد، در اندازههای مختلف فرق میکند.
در اجرای بازنگریشده، کارمزد taker را برای سفارشهایی که از فاصله قیمت عبور میکردند حساب کردیم و کارمزد maker را فقط زمانی در نظر گرفتیم که شبیهسازی واقعاً فرض میکرد یک سفارشِ در انتظار اجرا شده است. فاندینگ همچنان هزینه نگهداری جداگانهای بود و به هزینه بازتنظیمی تعلق نداشت. جدا نگهداشتن این ردیفهای هزینه، دلیل افت را روشن کرد. پیشبینی راهبرد ناگهان بدتر نشده بود؛ گردش معاملاتش در مقایسه با مزیتی که پیشبینی میکرد، پرهزینه بود.
تا پایان هفته، دفعات بازتنظیمی را کاهش دادیم و قراردادهایی را که عمق موجودشان وزن هدف را غیرواقعبینانه میکرد، کنار گذاشتیم. بازده بکتست پایین آمد. اما فرضهای اجرای آن توضیحپذیرتر شدند؛ نتیجهای مفیدتر از یک عدد بزرگتر.
هنگام بررسی یک راهبرد پرتفوی، یک بازتنظیمی را تا انتها دنبال کنید: از وزنهای هدف تا سفارشهای تکی، از سفارشها تا اجراهای محتمل، و از اجراها تا کارمزد و اثر بازار. اگر این مسیر بررسی نشده باشد، منحنی ارزش پرتفوی، عملکرد پرتفویی را نشان میدهد که هیچوقت ناچار به معامله نشده است.
← همهٔ مطالب


