بازده سالانهشدهٔ بکتست 20٪ بود. از 8 سال داده، 1,640 معامله و یک تفکیک تمیز واکفوروارد استفاده کرد. سپس تاریخچهٔ فعلی فروشنده را با مقادیری که در همان زمان ثبت شده بودند جایگزین کردیم و مزیت به 3٪ رسید.
عدد غافلگیرکننده بازده اولیه نبود؛ 17 واحد درصدی بود که به دادههای بازبینیشده وابسته بود. چنین نگاهِ پسنگرانهای میتواند در انتشارهای اقتصادی، بنیادهای شرکتها، عضویت در شاخصها و حتی فیلدهای ظاهراً سادهٔ بازار پنهان شود. دادهٔ تاریخی نشان میدهد منبع اکنون چه میگوید. مجموعهدادهٔ نقطهدرزمان نشان میدهد استراتژی شما آن زمان چه چیزی میتوانست بداند.
چرا دادههای تاریخی پس از وقوع رویداد تغییر میکنند؟
بعضی مقادیر ابتدا تخمینی هستند و بعد اصلاح میشوند. ممکن است یک آمار اقتصادی که جمعه منتشر شده، ماه بعد بازبینی شود. یک شرکت میتواند رقم سود را دوباره اعلام کند. فروشندهٔ داده ممکن است یک قیمت اشتباه را اصلاح کند، فاصلهٔ زمانیِ خالی را پر کند یا مقدار اولیه را با مقدار نهایی جایگزین کند. پایگاهدادهای که فقط آخرین مقدار را نگه میدارد، همهٔ این تغییرها را طوری نشان میدهد که انگار از ابتدا درست بودهاند.
این موضوع زمانی اهمیت دارد که استراتژی بر اساس درآمد گزارششده شرکتها را رتبهبندی میکند یا پس از انتشار زمانبندیشدهٔ داده در بازار معامله میکند. اگر ماهها زودتر عدد اصلاحشده را ببیند، بکتست اطلاعاتی را در اختیارش گذاشته که هنگام تصمیمگیری در بازار وجود نداشته است. محاسبهٔ سیگنال میتواند بینقص باشد؛ اما ورودی آن همچنان از نسخهٔ اشتباه تاریخچه آمده است.
اینجا یک دام ساده وجود دارد: فیلدی با نام date اغلب دورهای را توصیف میکند که مقدار به آن مربوط است، نه زمانی را که در دسترس قرار گرفته است. ممکن است ردیف درآمد سهماهه با تاریخ 31 مارس، تا ماه مه منتشر نشده باشد. این برچسب به دورهٔ فعالیت شرکت اشاره دارد، نه مجموعهٔ اطلاعاتی که استراتژی در اختیار داشته است.
بکتست باید از کدام مهر زمانی استفاده کند؟
دورهٔ اثرگذاری مقدار و زمان در دسترس قرار گرفتن آن را جداگانه ثبت کنید. در صورت امکان، زمان انتشار و زمان ورود به سیستم را هم نگه دارید. استراتژی فقط پس از انتشار و دریافت مقدار توسط سیستم میتوانسته از آن استفاده کند؛ اگر این زمانها متفاوتاند، برای بازپخش محافظهکارانهتر، زمان دیرتر را ملاک بگیرید.
| مهر زمانی | چه چیزی را توصیف میکند | کاربرد |
|---|---|---|
| زمان اثرگذاری | دوره یا رویدادی که مقدار به آن مربوط است | مشاهدهها را بر اساس موضوع اندازهگیریشده گروهبندی میکند |
| زمان انتشار | زمانی که منبع این نسخه را منتشر کرده است | مانع از آن میشود که داده پیش از انتشار در دسترس به نظر برسد |
| زمان ورود به سیستم | زمانی که سیستم شما این نسخه را دریافت کرده است | تأخیر در تحویل و تکمیلهای دیرهنگام را ثبت میکند |
برای نمونه، فرض کنید فروش سهماههٔ شرکتی مربوط به ژانویه تا مارس است، در 8 مه ساعت 16:15 به وقت شرق آمریکا گزارش میشود و ساعت 16:17 به مخزن پژوهشی شما میرسد. اگر استراتژی در قیمت پایانی 8 مه تصمیم میگیرد، نمیتواند از آن گزارش استفاده کند، چون تصمیمگیری در زمان بستهشدن بازار ساعت 16:00 انجام شده است. اما استراتژیای که صبح روز بعد تصمیم میگیرد میتواند از آن استفاده کند. تاریخ پایان سهماهه بهتنهایی پاسخ هیچکدام از این پرسشها را نمیدهد.
چطور بررسی کنم که آیا بازبینیها نتیجه را رقم میزنند؟
استراتژی یکسان را 2 بار اجرا کنید: یک بار با نسخهٔ دادهای که هنگام هر تصمیم تاریخی در دسترس بوده و بار دیگر با آخرین تاریخچهٔ بازبینیشده. فرضهای اجرا، مجموعهٔ نمادها و کد را ثابت نگه دارید. تفاوت، نتیجهٔ حساسیت به بازبینی است، نه مقایسهٔ یک استراتژی جدید با استراتژی قبلی.
بعد بررسی کنید اختلاف از کجا میآید. آیا عملکرد در روزهای انتشار تغییر میکند؟ آیا بزرگترین تفاوتها در چند شرکتِ دارای صورتهای مالی اصلاحشده یا چند مشاهدهٔ تصحیحشده متمرکزند؟ آیا استراتژی پیش از زمان انتشار مربوطه معامله میکند؟ یک بررسی کوچک در سطح رویداد اغلب بیش از یک نمودار دیگر از بازده تجمعی توضیح میدهد.
این اعداد صرفاً نمونهاند و جریمهای همگانی نیستند. خروجی مفید، نتیجهای جفتشده برای استراتژی خودتان است که تا جای ممکن معاملات و هزینهها در آن یکسان باشند. اگر نسخهٔ بازبینیشده با اختلاف زیادی بهتر عمل میکند، پیش از اعتماد به نتیجهٔ اصلی بکتست، مشخص کنید کدام فیلدها و تاریخها این اختلاف را ایجاد کردهاند.
در بررسی دادههای نقطهدرزمان چه چیزهایی را باید ثبت کرد؟
از فیلدهایی شروع کنید که استراتژیتان واقعاً از آنها استفاده میکند. برای هر فیلد، منبع، معنای مهر زمانی، سیاست بازبینی و امکان بازیابی نسخههای قبلی را مشخص کنید. از فروشنده بپرسید اصلاحها چطور ثبت میشوند: با بازنویسی ردیفها، افزودن ردیفهای نسخهٔ جدید یا در یک گزارش جداگانهٔ تغییرات. عبارت «تاریخی» در صفحهٔ محصول بهتنهایی چیزی را روشن نمیکند.
- هر نسخه را همراه با زمان انتشار یا نخستین زمان در دسترس بودن ذخیره کنید.
- ویژگیها را بر اساس زمان در دسترس بودن به تصمیمها وصل کنید، نه بر اساس برچسب دوره.
- برای اجرای بازتولیدپذیر، یک نسخهٔ ثابت یا نسخهٔ منبع را نگه دارید.
- مقادیر دیررس، بازبینیشده یا فاقد تاریخچهٔ قابلاتکا را علامتگذاری کنید.
و دامنهٔ بررسی را عملی نگه دارید. اگر استراتژی شما فقط از معاملات و کندلهای صرافی استفاده میکند، ممکن است بازبینی دادههای اقتصادی بیربط باشد. اما اصلاح کندلها و تکمیلهای بعدی فروشنده همچنان میتوانند اهمیت داشته باشند، بهویژه وقتی سیگنال به بازاری کمعمق یا پنجرهٔ زمانی دقیق یک رویداد وابسته است.
وقتی تاریخچهٔ نقطهدرزمان در دسترس نیست
بیسروصدا مقدار امروز را بهجای مقدار دیروز نگذارید. این فیلد را بهعنوان یک محدودیت مشخص کنید، آن را از ادعاهایی که به در دسترس بودن تاریخی وابستهاند کنار بگذارید، یا با یک تأخیر محافظهکارانه اجرا کنید و میزان تغییر نتیجه را نشان دهید. یک جانشینِ دارای تأخیر میتواند برای پژوهش مفید باشد، به شرط آنکه تأخیر صریح باشد و محدودیت همراه نتیجه باقی بماند.
وظیفهٔ بکتست بازسازی تصمیم با استفاده از مجموعهٔ اطلاعاتی است که در آن زمان وجود داشته است. اگر دادهٔ شما فقط آخرین نسخه را نشان میدهد، نتیجه محدودیتی روشن دارد: میتواند استراتژی را در برابر تاریخچهٔ بازسازیشدهٔ امروز آزمایش کند، اما نمیتواند دقیقاً ثابت کند که یک عامل تاریخی چه چیزی میتوانسته ببیند.
← همهٔ مطالب

