صادقانهترین مدل لغزش اغلب عمداً نادرست است. بکتستی که بر پایه دادههای تاریخی کمدقت یک هزینه اجرای دقیق گزارش میکند، ادعایی دارد که دادهها از آن پشتیبانی نمیکنند.
شاید این حرف به معنای دفاع از فرضهای خام به نظر برسد. درست برعکس: از مدلی ساده و قابلتوضیح استفاده کنید و بعد کاری کنید که با خودش اختلاف پیدا کند. اگر استراتژی فقط با یک برآورد خوشبینانه و بهنفعش از قیمت اجرا جواب میدهد، این عدمقطعیت هم بخشی از نتیجه است.
چرا برآورد دقیق لغزش میتواند گمراهکننده باشد؟
فرض کنید کندلهای OHLCV یکدقیقهای دارید و برای 2,000 سهم سفارش بازار میفرستید. کندل، دامنه قیمت و حجم کل را در طول یک دقیقه نشان میدهد. اما نمیگوید هنگام رسیدن سفارش شما قیمت خرید و فروش چه بوده، چه صفی جلوی شما قرار داشته، حجم در طول آن دقیقه چطور توزیع شده یا سفارش شما چه مقدار از آن را مصرف میکرده است.
با این حال میتوانید برای لغزش عددی تعیین کنید. مثلاً سفارش را در قیمت بازشدن کندل بعدی بهعلاوه هزینه ثابت بر حسب واحد پایه اجرا کنید، یا هزینه را متناسب با نسبت اندازه سفارش به حجم کندل افزایش دهید. اینها تقریبهای مفیدیاند، اما مشاهده واقعی نیستند. گزارش نتیجه با عبارت «لغزش: 3.2 واحد پایه» باعث میشود انتخاب مدل شبیه اندازهگیری به نظر برسد.
برای نمونهای محاسباتی، فرض کنید استراتژی در هر سفارش $20,000 از سهامی معامله میکند که حجم کندل بعدی آن $400,000 است. نرخ مشارکت 5% است. مدلی با هزینه 2 واحد پایه، برای هر سفارش $4 هزینه دارد؛ مدلی با هزینه 10 واحد پایه، $20. در 500 رفتوبرگشت، پیش از کمیسیونها این اختلاف به $16,000 میرسد. اگر سود ناخالص بکتست استراتژی $18,000 باشد، فرض اجرا تقریباً به اندازه سیگنال بر نتیجه اثر میگذارد.
دامنهای متناسب با آنچه دادههایتان نشان میدهند بسازید
با یک حالت مبنا شروع کنید که با نوع سفارش استراتژی و وضوح دادهها تناسب داشته باشد. سفارش بازار به اسپرد و اثر بازار نیاز دارد. سفارش محدود به قاعدهای نیاز دارد که مشخص کند اصلاً اجرا میشود یا نه؛ فرض اجرای هر قیمتی که لمس شود، خطای اجرایی متفاوتی است.
بعد همان بکتست را با چند حالت مشخص اجرا کنید. سیگنال، اندازه موقعیت و زمانمهرها را ثابت نگه دارید تا بتوانید تغییرات را به اجرا نسبت دهید:
| حالت | فرض اجرا | چه چیزی را میسنجد |
|---|---|---|
| مطلوب | اسپرد مبنا و اثر بازار کم | استراتژی تا چه حد به معامله در شرایط مساعد وابسته است؟ |
| مبنا | اسپرد معمول و اثر بازار متناسب با نرخ مشارکت | فرض کاری انتخابشده چه نتیجهای دارد؟ |
| نامطلوب | اسپرد بیشتر، اثر بازار بالاتر و اجرای با تأخیر | آیا مزیت در بازاری دشوار اما محتمل دوام میآورد؟ |
اینها بازه اطمینان نیستند، مگر اینکه از نظر آماری کالیبرهشان کرده باشید. اینها آزمون سناریو هستند. در گزارش توضیح دهید هرکدام چه معنایی دارند و بدون شواهدی درباره احتمال وقوعشان، آنها را میانگین نگیرید تا «لغزش مورد انتظار» ساختگی بسازید.
مدل را به سفارش وابسته کنید
هزینه ثابت بر حسب واحد پایه میتواند برای سفارشهای کوچک نقطه شروع معقولی باشد. با افزایش نرخ مشارکت، دیگر تصویر مناسبی نمیدهد. دستکم ارزش اسمی سفارش، حجم موجود در کندل و نرخ مشارکت را ثبت کنید. اگر استراتژی قراردادهای آتی معامله میکند، ارزش قرارداد و واحدهای حجم مربوط را ثبت کنید؛ اگر در بازار نقدی رمزارز معامله میکند، ارز مظنه و محل معامله را روشن کنید.
یک منحنی ساده اثر بازار میتواند فشار بر ظرفیت را آشکار کند، بیآنکه وانمود کند دفتر سفارش را بازسازی میکند. برای نمونه، هزینه را مجموع هزینه اسپرد مبنا و مؤلفهای برای اثر بازار تعریف کنید که با جذر نرخ مشارکت افزایش مییابد. پارامترهایش را فقط وقتی برازش کنید که دادههای اجرای مناسبی دارید. در غیر این صورت، پارامترها را تغییر دهید و نشان دهید نتیجه با چه سرعتی افت میکند.
همچنین اجازه ندهید مدل اجرا بیسروصدا استراتژی را نجات دهد. سیگنال خریدی که پس از جهش شدید قیمت میرسد نباید صرفاً به این دلیل با کف کندل اجرا شود که آن قیمت درون کندل قرار دارد. از قاعدهای علّی برای قیمت اجرا استفاده کنید، سپس قیمت را در شرایط تنشزا تغییر دهید و اجرا را به تأخیر بیندازید. اگر سفارش با تأخیر حرکت قیمت را از دست بدهد، این نتیجه اجراست؛ مزاحمتی نیست که باید هموارش کرد.
پرسش مفید: اسپرد، اثر بازار، تأخیر یا نرخ مشارکت در چه نقطهای باعث میشود عملکرد خالص به صفر برسد؟ این نقطه سربهسر اغلب از یک Sharpe بکتست بهتنهایی کاربردیتر است.
برای محدودتر کردن دامنه از معامله کاغذی استفاده کنید
معامله کاغذی نشان نمیدهد موتور تطبیق زنده چه قیمتی به شما میداد. با این حال میتواند نشان دهد جریان سفارشهای بکتست تا چه حد به تصمیمهای واقعی سیستم شباهت دارد: سفارشها چه زمانی ایجاد میشوند، اندازهشان چقدر است و چه مدتی قابلیت اجرا دارند.
قیمت شبیهسازیشده سفارش را با مظنههای همان زمان یا هر داده بازاری که سیستم معامله کاغذیتان ثبت میکند مقایسه کنید. اختلاف را بر اساس نماد، ساعت روز، اندازه سفارش و نوع سفارش دنبال کنید. این مشاهدات میتوانند فرضها را برای همان تنظیم محدودتر کنند. اما بهطور خودکار به محل معامله، وضعیت بازار یا سفارش بزرگتری دیگر قابل تعمیم نیستند.
منتقدان درست میگویند که سناریوهای بدبینانه میتوانند دلبخواهی باشند. مدل عمداً سختگیرانه، همانطور که یک مدل مطلوب میتواند استراتژی ضعیفی را بهتر از واقعیت جلوه دهد، ممکن است استراتژی قابلاجرا را هم رد کند. پس سختگیرانهترین حالت را حقیقت قطعی ندانید. فرضها را منتشر کنید، حساسیت نتایج را نشان دهید و دادههای لازم را جمعآوری کنید تا حدسها را با برآوردهای کالیبرهشده جایگزین کنید.
بکتست نمیتواند جایگاه تاریخی شما در صف سفارش را از روی یک کندل بداند. اما میتواند نشان دهد آیا ایده همچنان منسجم به نظر میرسد وقتی اجرا به شکلهایی بدتر میشود که دادههایتان نمیتوانند ردشان کنند. این پاسخ از یک رقم اعشار مفیدتر است.
← همهٔ مطالب


