بکتست ممکن است بعد از بدتر کردن دادههایش قانعکنندهتر به نظر برسد. دادههای نازیبا را حذف کنید، شکافها را با قیمتهای مرتب پُر کنید و شاید شارپ بالاتر برود. این بهبود میتواند هشداری باشد: قاعده پاکسازی شاید دقیقاً شرایط بازاری را پاک کرده باشد که استراتژی شما برای دوام آوردن باید از سر بگذراند.
کیفیت داده اهمیت دارد. مظنهای که دو سوی آن از هم عبور کردهاند یا معاملهای تکراری میتواند معاملهای ایجاد کند که هیچکس نمیتوانست با آن اجرا بگیرد. اما فیلتری که مشاهدات ناخوشایند را ناپدید میکند هم یک انتخاب مدلسازی است. با همان بدگمانیای با آن برخورد کنید که درباره یک ویژگی سیگنال جدید دارید.
چه زمانی یک قیمت بد واقعاً دادهای نادرست است؟
با این پرسش شروع کنید که آن مشاهده چه چیزی را نشان میدهد. معاملهای بسیار دور از بازار رایج ممکن است رکوردی خراب، عبوری واقعی از نقدشوندگی کم یا رویدادی مختص یک محل معاملاتی باشد. کندل 1دقیقهای با حجم صفر شاید یعنی معاملهای انجام نشده، در حالی که کندلِ غایب ممکن است نشان دهد فید از کار افتاده است. این موارد باید به شکلهای متفاوتی مدیریت شوند.
یک استراتژی ساده بازگشت به میانگین را در نظر بگیرید که وقتی قیمت 1% پایینتر از میانگین متحرک کوتاهمدت میرود میخرد و در میانگین خارج میشود. در یک بازه کمنقدشونده شبانه، معاملهای با قیمتی 1.2% پایینتر از قیمت قبلی ثبت میشود و بعد بازار بهسرعت برمیگردد. اگر ثبت قیمت واقعی باشد، ممکن است استراتژیای با سفارش محدودِ در انتظار اجرا شده باشد. اگر آن تیک نادرستی باشد که هیچ مظنه قابل اجرایی از آن پشتیبانی نمیکرده، شمردن این اجرا مزیتی ساختگی ایجاد میکند.
حذف کندل لزوماً ایمنتر نیست. ممکن است سفارش استراتژی همچنان در بازار در انتظار اجرا بوده باشد و معامله واقعی بعدی آن را پُر کند. بازپخش قابل دفاع باید شبیهسازی کند که استراتژی چه چیزی را میتوانسته ببیند و سفارش آن بهطور معقول با چه چیزی میتوانسته اجرا شود.
قاعده پاکسازی چه تغییری در نتیجه ایجاد میکند؟
استراتژی را با روشهای مشخص پردازش داده اجرا کنید و تغییرات را مقایسه کنید. منبع خام را نگه دارید و هر مورد حذف یا اصلاح را همراه با دلیل ثبت کنید. سپس گزارش دهید چه مقدار از نتیجه به این تصمیمها وابسته است.
| روش پردازش داده | فایده احتمالی | ریسک برای بکتست |
|---|---|---|
| حذف ثبت قیمتی خارج از دامنه خطای مستندشده صرافی | جلوگیری از تعیین قیمت افراطی با یک رکورد نامعتبرِ شناختهشده | ممکن است قاعده در بازار پرشتاب، معاملات معتبر را اشتباه دستهبندی کند |
| تکرار آخرین قیمت در بازه زمانیِ بدون داده | جلوگیری از خطای اندیکاتورها هنگام وجود شکاف | ایجاد قیمتی که ممکن است هیچ معاملهای در آن انجام نشده باشد |
| استفاده از مظنههای تجمیعشده بهجای آخرین معاملات | نمای بهتر از قیمتهای اجرای اعلامشده | اندازه مظنه، دسترسی به محل معاملاتی و جایگاه در صف همچنان اهمیت دارند |
| حذف همه کندلهای پرت با استفاده از یک آستانه آماری | کاهش حساسیت به مقادیر افراطی | ممکن است دورههای بحرانی واقعی را حذف کند که بیشترین زیان استراتژی در آنها رخ میدهد |
فرض کنید اجرای بدون فیلتر نسبت شارپ 0.9 دارد، در حالی که با حذف 0.8% از کندلها این نسبت به 1.4 میرسد. این بهتنهایی به معنی پیروزی در کیفیت داده نیست. بررسی کنید آیا کندلهای حذفشده حول جهشهای نوسان خوشهبندی شدهاند، آیا سهم معناداری از سود و زیان (P&L) را تشکیل میدهند و آیا قاعده حذف پیش از دیدن نتیجه تعریف شده بود.
دفتر ثبت استثناهای داده نگه دارید: منبع، زمان ثبت، فیلدهای تحتتأثیر، دلیل اقدام و اینکه تصمیم پیش یا پس از بررسی عملکرد استراتژی گرفته شده است.
چطور بررسی کنم که پاکسازی مزیت معاملاتی را تغییر داده است؟
استراتژی را ثابت نگه دارید و چند روش معقول پردازش داده را برای همان تاریخها مقایسه کنید. در صورت امکان، بازپخش داده خام، مجموعه اصلاحات مستندشده و حالت اجرای محافظهکارانه برای مشاهداتی را وارد کنید که همچنان مبهماند. برای هر اجرا، تعداد معاملات، گردش معاملات، افت سرمایه و سهم سود و زیان (P&L) بازههای تحتتأثیر را در کنار شارپ گزارش کنید.
سپس معاملاتِ تغییرکرده را بررسی کنید. اگر با حذف گروه کوچکی از ثبتهای قیمتی مشکوک، برندگان برتر استراتژی ناپدید میشوند، آن رکوردها را تکتک بخوانید. اگر بهجایش زیانها ناپدید میشوند، همانقدر دقیق بررسی کنید. قاعدهای که فقط وقتی به بکتست آسیب میزند با دقت بررسی شود، خودش در حال اثرگذاری بر پژوهش است.
برای مطالعهای بازتولیدپذیر، فایلهای فروشنده یا چکسامهای آنها، کد پاکسازی و فهرست استثناها را نسخهبندی کنید. فروشنده ممکن است تاریخچه را بازبینی کند؛ اجرای بعدی شما باید امکان تشخیص این را بدهد که استراتژی تغییر کرده یا ورودیها.
اما مگر پاکسازی ضروری نیست؟
چرا، هست. نگه داشتن یک رکورد آشکارا خراب میتواند معاملهای ساختگی ایجاد کند، نوسان را تحریف کند یا اندیکاتوری را از کار بیندازد. هیچکس هم نباید وانمود کند فید خام حقیقت محض است. نکته عملی محدودتر است: پاکسازی به شواهد، قاعدهای ثابت و بررسی حساسیت نیاز دارد، چون میتواند بازاری را که بکتست ادعا میکند نماینده آن است تغییر دهد.
وقتی اصلاح داده عملکرد را بهتر میکند، بپرسید کدام مشاهده حذف شده و آیا بدون دیدن منحنی سرمایه هم همین تصمیم را میگرفتید. اگر پاسخ روشن نیست، هر دو نسخه را در سوابق پژوهش نگه دارید. تفاوت میان آنها بخشی از نتیجه است.
← همهٔ مطالب


