با اعداد شروع میکنیم، چون کل استدلال همین اعداد است. یک معاملهٔ رفتوبرگشت taker در یک صرافی پرپ بزرگ حدود 0.10% of notional کارمزد میبرد. فاندینگ روی یک پوزیشن لانگِ شلوغ میتواند 10-30% annualized علیه شما تمام شود. یک سفارش مارکت که نسبت به عمق سر دفتر سفارشها بزرگ باشد، علاوه بر اسپرد، اثر بازار با قانون جذر را هم میپردازد. و بکتستی که نسخهٔ امروزِ دادهٔ دیروز را میخواند، لبهای به ارزش چند درصد در سال به دست میآورد که هرگز وجود نداشته است.
عدد شگفتانگیز، همان اولی است. نه به این دلیل که بزرگ است — به این دلیل که چه بلایی سر تعداد معاملات میآورد. همه با شنیدن «کارمزد را لحاظ کن» سر تکان میدهند و بعد استراتژیای را تست میکنند که روزی چهل بار معامله میکند. با 0.10% در هر رفتوبرگشت، چهل معامله یعنی 4% of notional per day هزینه. هیچ سیگنالی روی یک پرپ میانرده وجود ندارد که از این سد عبور کند. آن استراتژی حتی نزدیک به قابلاجرا بودن هم نبود، اما بکتستِ بدون کارمزد میگفت درخشان است.
کارمزد یک فیلتر است، نه یک کسر ساده
مدل ذهنی اکثر آدمها این است که کارمزد فقط منحنی را میتراشد: همان شکل، کمی پایینتر. این اشتباه است. کارمزد یک فیلتر فرکانس است. نسخههای پرتکرار یک لبه را کاملاً محو میکند و نسخههای کند را تقریباً دستنخورده باقی میگذارد. وقتی خط لولهٔ ما شروع به اعمال جدول واقعی maker/taker هر صرافی کرد، استراتژیهایی که مردند ایدههای بد نبودند — ایدههای خوبی بودند که بیش از حد معامله میکردند. راهحل معمولاً یک تایمفریم بلندتر بود، نه یک سیگنال بهتر. حالا هر چیزی را که میانگین بازدهی هر معاملهاش زیر 0.15% نوشنال باشد کنار میگذاریم، چون بعد از هزینهٔ دوطرفه چیزی برای مرکبشدن باقی نمیماند.
فاندینگ مالیاتی بر پوزیشن است که حافظه دارد
فیوچرزهای دائمی هر یک یا هشت ساعت فاندینگ پرداخت میکنند و این نویز نیست: بهشکل ساختاری دقیقاً با همان معاملاتی همبسته است که سیستمهای مومنتوم دنبالشان هستند. وقتی همه لانگ هستند، فاندینگ مثبت است و پوزیشن لانگِ مومنتومی شما آن را میپردازد. بکتستی که فاندینگ را انباشت نکند، بهطور سیستماتیک ترندفالویینگ روی پرپها را زیباتر از واقعیت نشان میدهد. ما این را به شکل شرمآوری یاد گرفتیم — یک خانوادهٔ کامل از استراتژیهای funding-carry بهطور خودکار کنار گذاشته شدند، چون موتور فاندینگی را که قرار بود همانها برداشت کنند به حسابشان نمیگذاشت. سیگنال سالم بود. حسابداری غایب بود.
اثر بازار با جذر حجم شما بزرگ میشود
افسانهٔ مؤدبانهٔ بکتست مبتنی بر کندل این است که در قیمت بستهشدن پر میشوید. برای سفارشهای کوچک تقریباً درست است. برای هر حجم قابلتوجهی، مدل پذیرفتهشده این است که اثر بازار با جذر اندازهٔ سفارش نسبت به حجم رشد میکند و هیچوقت هم برنمیگردد. ما یک برآورد اثر بازار مبتنی بر قانون جذر را در هر فیل و در خودِ منحنی سرمایه لحاظ میکنیم. این موضوع دقیقاً در ناخوشایندترین جا بیشترین اهمیت را دارد: ظرفیت. یک استراتژی میتواند در $50k واقعاً سودده و در $5M بهشکل ساختاری زیانده باشد، و فقط منحنیِ آگاه به اثر بازار این مرز را نشان میدهد.
نگاه به آینده در داده پنهان میشود، نه در کد
هیچکس if tomorrow_close > today_close: buy() نمینویسد. نگاه به آینده از مسیر لولهکشی داده نفوذ میکند: احساسات خبری که با زمان انتشار مهر میخورد بهجای زمان دریافت، نرخهای فاندینگ که به دورهٔ تحت پوشششان الحاق میشوند بهجای لحظهای که معلوم شدند، جهانبینیِ «فعلی» نمادها که به تاریخ اعمال میشود (سوگیری بقا)، و ارقام اقتصادی تجدیدنظرشده که جای عددی مینشینند که واقعاً روی تابلو رفت. قاعدهٔ ما همهجا point-in-time است: هر سری دادهٔ مکمل با زمانی مهر میخورد که ما میتوانستیم از آن باخبر باشیم، و یک بکتست فقط میتواند چیزی را بخواند که در آن نانوثانیه وجود داشته است.
محک یک بکتست این نیست که منحنی بالا میرود یا نه. این است که آیا همان کد، با همان سیگنالها در محیط زنده، همان معاملات را تولید میکند — و این را فقط با بررسی روزانه و همیشگی میفهمید.
این جملهٔ آخر یک فرایند واقعی است، نه یک شعار. هر روز پنجرهٔ هر استراتژیِ در حال پیپر تریدینگ را دوباره از موتور بکتست میگذرانیم و معاملات را یکییکی مقایسه میکنیم. وقتی پیپر و بازپخش با هم نمیخوانند، یکی از آن دو دارد دروغ میگوید و معمولاً پای یک هزینه یا یک تایماستمپ در میان است. چهار قلمی که بالا آمد، فقط آنهایی هستند که زودتر از بقیه به ما دروغ گفتند.
← همهٔ مطالب