یک استراتژی در ساعت 10:00 سفارش limit ثبت میکند. سیگنال آن در 10:03 تغییر میکند. بکتست بیسروصدا در 10:04 سفارش را جایگزین میکند و بعد در 10:05 برایش پرشدن ثبت میکند. در معاملهگری کاغذی، ممکن است سفارش اصلی همچنان در صرافی باز باشد. اگر آن سفارش در حالی پر شود که سفارش جایگزین هم فعال است، استراتژی دو سفارش دارد و یک مدل موقعیت که وانمود میکند فقط یکی وجود داشته است.
سفارشهای باز به وضعیت و ساعت مخصوص خودشان نیاز دارند. بکتست باید بداند هر سفارش چه زمانی ثبت شده، از چه زمانی امکان لغوش وجود داشته، آیا درخواست لغو به صرافی رسیده و اگر پرشدن سفارش با لغو آن همزمان شود چه اتفاقی میافتد. 3 میانبر رایج این جزئیات را نادیده میگیرند.
اشتباه 1: فرضکردن اینکه سیگنال جدید فوراً سفارش را لغو میکند
بسیاری از بکتستها در هر کندل موقعیت هدف را دوباره محاسبه میکنند و بعد سفارش باز را با چیزی که آخرین سیگنال میخواهد جایگزین میکنند. در نتیجه، درست در لحظهای که استراتژی نظرش عوض میشود، سفارش ناپدید میشود. صرافیهای واقعی اینطور کار نمیکنند. لغو سفارش زمان میبرد و ممکن است سفارش پیش از پردازش درخواست لغو اجرا شود.
یک سفارش خرید limit برای 100 سهم با قیمت $50.00 را در نظر بگیرید. در 10:03 سیگنال ضعیف میشود و استراتژی درخواست لغو میفرستد. در 10:03:00.080 سفارش 60 سهم را پر میکند؛ لغو در 10:03:00.110 تأیید میشود. 40 سهم باقیمانده لغو میشوند، اما حالا موقعیت شامل 60 سهم است. بکتستی مبتنی بر کندل که سفارش را در 10:03 حذف کند ممکن است عدد صفر را گزارش دهد. بکتستی که لغو فوری را فرض کند و با این حال بعدتر پرشدنی ثبت کند، در جهت مخالف میزان مواجههای خیالی ساخته است.
چرخه عمر سفارش را صریح ثبت کنید: ثبتشده، تأییدشده، تا حدی پرشده، در انتظار لغو، لغوشده یا کاملاً پرشده. پرشدنهایی را که پیش از تأیید لغو رخ میدهند حفظ کنید. برای شبیهسازی تقریبی با کندل، وقتی هر دو رویداد ممکن است درون یک کندل رخ دهند، یک قاعده ترتیبدهی محافظهکارانه انتخاب کنید و آن را توضیح دهید.
اشتباه 2: در نظر گرفتن عمر نامحدود برای سفارش باز
سفارش limit که در 10:00 بر پایه یک سیگنال قیمتگذاری شده، حتی اگر سیگنال قاعده خروج مشخصی نداشته باشد، ممکن است بهمرور نامعتبر شود. دفتر سفارش تغییر میکند، نوسان عوض میشود و ارزش بازار ابزار مالی میتواند جابهجا شود. با این حال، شبیهسازی که سفارش را تا زمان پرشدن فعال نگه میدارد، ممکن است ماهها بعد آن را پرشده بداند و این پرشدن را به فرضیهای نسبت دهد که دیگر وجود ندارد.
سیاست زمان اعتبار سفارش را با استراتژی هماهنگ کنید. سیگنال 1 دقیقهای ممکن است انقضای 30 ثانیهای داشته باشد؛ بازتنظیم روزانه هم شاید سفارش را تا زمان بستهشدن بازار فعال نگه دارد. اینها انتخابهای استراتژیاند، نه پیشفرضهای همگانی. اگر استراتژی در هر کندل قیمتگذاری را بهروز میکند، توالی لغو و جایگزینی را مدل کنید، نه اینکه سفارش را بهشکلی جادویی به قیمت تازهاش منتقل کنید.
| سیاست سفارش | کاربرد معمول | پرسش بکتست |
|---|---|---|
| فوری یا لغو | نقدینگی موجود را بگیرید و سپس متوقف شوید | هنگام ثبت سفارش چه بخشی میتوانست پر شود؟ |
| انقضای کوتاه | سیگنال سریع با پنجره اجرای کوتاه | وقتی قیمت برگشت، سفارش هنوز معتبر بود؟ |
| تا پایان جلسه | بازتنظیم کند یا قصد شرکت در حراج پایانی | آیا صرافی واقعاً از این مدت اعتبار پشتیبانی میکند؟ |
اشتباه 3: ثبت پرشدن برای هر برخورد قیمت
اگر کمترین قیمت کندل به قیمت سفارش خرید limit برسد، لزوماً سفارش پر نشده است. ممکن است سفارشهای دیگری در صف جلوتر باشند، حجم معاملهشده در آن قیمت کم باشد یا معاملهای گذرا پیش از رسیدن سفارش انجام شده باشد. مدل قدیمی سفارش اغلب هر 3 خطا را با هم دارد: سفارش را بیش از حد فعال نگه میدارد، فرض میکند در ابتدای صف بوده و بعد با برخورد قیمت، پرشدن کامل برایش ثبت میکند.
دستکم، از ثبت پرشدن پیش از زمان رسیدن سفارش جلوگیری کنید و مقدار شبیهسازیشده را به حجم معاملاتی معقول در قیمت limit محدود کنید. برای استراتژیهایی که جایگاه در صف اهمیت دارد، از داده معاملات و دفتر سفارش استفاده کنید یا مدلی عمداً محافظهکارانه برای صف بسازید. ثبت پرشدن بر مبنای برخورد قیمت همچنان برای غربالگری اولیه مفید است، اما آن را تقریب خوشبینانه بنامید و با فرضی سختگیرانهتر مقایسه کنید.
یک ممیزی کاربردی: زمان ایجاد، بازه فعالبودن، درخواست لغو و تأیید آن، زمان پرشدن، مقدار پرشده و مقدار باقیمانده هر سفارش را ثبت کنید. سپس چند معامله را در حوالی تغییر جهت سیگنال بازپخش کنید. اگر نمیتوانید توضیح دهید چرا هر سفارش هنگام پرشدن هنوز فعال بوده، شمارش پرشدنهای بکتست نیاز به بازبینی دارد.
سفارشی را مدل کنید که قصد دارید با آن معاملهگری کاغذی کنید
وضعیت سفارش، قصد استراتژی را به میزان مواجهه واقعی آن وصل میکند. موقعیت باید با پرشدن سفارش تغییر کند، نه با اهداف سیگنال یا درخواستهای لغو. جایگزینیها باید ردپایی قابلممیزی باقی بگذارند و پرشدنهای جزئی باید تا تصمیم بعدی حفظ شوند. این کار بکتست را پیچیدهتر میکند، اما مقایسه با معاملهگری کاغذی را هم معنادار میسازد: میتوان اختلاف اجرای دو سیستم را به دلایل مشخص نسبت داد.
وقتی مدل سفارش نامطمئن است، این عدمقطعیت را در نتیجه حفظ کنید. سفارشهای کوتاهعمر و بلندعمر را اجرا کنید، تأخیر لغو را تغییر دهید و نشان دهید چه مقدار از عملکرد به فرضهای خوشبینانه درباره صف وابسته است. شاید خود استراتژی خوب باشد. اما ممکن است برتری ظاهری آن از سودی آمده باشد که سفارشی برایش ایجاد کرده که سیستم واقعی ساعتها پیش لغوش میکرد.
← همهٔ مطالب


