بکتست (Backtest) فرایندی حیاتی در توسعه و اعتبارسنجی استراتژیهای معاملاتی است. این روش به شما امکان میدهد تا عملکرد یک استراتژی را با استفاده از دادههای تاریخی بازار شبیهسازی کنید و نقاط قوت و ضعف آن را پیش از ورود به معاملات واقعی شناسایی نمایید. هدف اصلی بکتست، ارزیابی پتانسیل سودآوری و ریسک یک استراتژی تحت شرایط مختلف بازار است.
بکتست دستی در مقابل بکتست خودکار
بکتست را میتوان به دو شیوه کلی انجام داد: دستی و خودکار.
بکتست دستی
در بکتست دستی، شما به صورت بصری نمودار قیمت را در بازههای زمانی گذشته مرور میکنید و بر اساس قوانین استراتژی خود، نقاط ورود و خروج را مشخص مینمایید. این روش معمولاً با استفاده از ابزارهای ترسیم و یادداشتبرداری در پلتفرمهای معاملاتی انجام میشود. مزیت اصلی بکتست دستی، درک عمیقتر از رفتار استراتژی در شرایط مختلف بازار و امکان شناسایی الگوهای بصری است که ممکن است در بکتست خودکار نادیده گرفته شوند. با این حال، بکتست دستی بسیار زمانبر است و احتمال خطای انسانی در ثبت معاملات و محاسبات وجود دارد.
بکتست خودکار
بکتست خودکار با استفاده از نرمافزارهای تخصصی یا پلتفرمهای معاملاتی انجام میشود که قابلیت اجرای الگوریتمهای معاملاتی را دارند. در این روش، شما قوانین استراتژی خود را به صورت کد برنامهنویسی میکنید و نرمافزار به صورت خودکار آن را روی دادههای تاریخی اجرا میکند. مزایای بکتست خودکار شامل سرعت بالا، دقت در محاسبات و امکان اجرای استراتژی روی حجم زیادی از دادهها است. این روش برای بهینهسازی پارامترها و مقایسه عملکرد نسخههای مختلف یک استراتژی بسیار کارآمد است. با این حال، بکتست خودکار ممکن است جزئیات بصری و کیفی بازار را که در بکتست دستی قابل مشاهده هستند، نادیده بگیرد.
اهمیت اندازه نمونه در بکتست
برای اینکه نتایج بکتست شما از نظر آماری معتبر باشند، به یک اندازه نمونه (Sample Size) کافی نیاز دارید. اندازه نمونه به تعداد معاملات یا دورههای زمانی اشاره دارد که استراتژی شما روی آنها آزمایش شده است. یک اندازه نمونه کوچک میتواند منجر به نتایج گمراهکننده شود، زیرا ممکن است عملکرد استراتژی را در یک دوره خاص و غیرمعمول بازار نشان دهد و نتواند رفتار آن را در بلندمدت و شرایط متنوع بازار پیشبینی کند.
به طور کلی، توصیه میشود که استراتژی خود را روی حداقل 100 تا 200 معامله بکتست کنید تا بتوانید ارزیابی معقولی از نرخ برد و امید ریاضی (Expectancy) آن داشته باشید. برای اطلاعات بیشتر در مورد این مفاهیم، میتوانید به درس «نرخ برد و امید ریاضی» مراجعه کنید. هرچه تعداد معاملات بیشتر باشد، اطمینان شما از پایداری استراتژی افزایش مییابد. همچنین، بکتست باید روی بازههای زمانی مختلف و شامل دورههای صعودی، نزولی و خنثی بازار انجام شود تا استراتژی در برابر نوسانات بازار مقاومتر باشد.
دامهای اصلی بکتست
در فرایند بکتست، چندین دام وجود دارد که میتوانند اعتبار نتایج شما را به شدت کاهش دهند. آگاهی از این دامها برای انجام یک بکتست معتبر ضروری است.
1. نگاه آینده (Look-Ahead Bias)
نگاه آینده به استفاده از اطلاعاتی در بکتست اشاره دارد که در زمان انجام معامله در واقعیت موجود نبوده است. این یکی از شایعترین و خطرناکترین دامها است. به عنوان مثال، اگر استراتژی شما بر اساس میانگین متحرک 200 روزه باشد و شما در بکتست از دادههای قیمتی آینده برای محاسبه این میانگین در یک نقطه زمانی خاص استفاده کنید، دچار نگاه آینده شدهاید. این خطا باعث میشود که استراتژی شما در بکتست عملکردی بسیار بهتر از واقعیت نشان دهد.
برای جلوگیری از نگاه آینده، همیشه اطمینان حاصل کنید که در هر نقطه از بکتست، فقط از دادههایی استفاده میکنید که تا آن لحظه در دسترس بودهاند. این موضوع به ویژه در مورد اندیکاتورهای بازنقاشی (Repainting Indicators) که مقادیر خود را بر اساس دادههای آینده تغییر میدهند، اهمیت دارد.
2. بیشبرازش (Overfitting) با بهینهسازی پارامتر
بیشبرازش زمانی رخ میدهد که یک استراتژی بیش از حد به دادههای تاریخی خاصی که روی آنها بکتست شده، تنظیم و بهینه شود. این بهینهسازی بیش از حد باعث میشود که استراتژی در آن دادههای تاریخی عملکرد فوقالعادهای داشته باشد، اما در دادههای جدید و واقعی بازار، عملکرد ضعیفی از خود نشان دهد. به عبارت دیگر، استراتژی به جای یادگیری اصول کلی بازار، جزئیات و نویزهای خاص دادههای گذشته را حفظ کرده است.
بهینهسازی پارامترها (Parameter Optimization) ابزاری قدرتمند است، اما باید با احتیاط فراوان استفاده شود. برای جلوگیری از بیشبرازش:
- استفاده از دادههای خارج از نمونه (Out-of-Sample Data): پس از بهینهسازی استراتژی روی یک مجموعه داده (In-Sample Data)، آن را روی مجموعه دادهای کاملاً جدید و دیده نشده (Out-of-Sample Data) آزمایش کنید. اگر استراتژی در دادههای خارج از نمونه نیز عملکرد خوبی داشت، احتمال بیشبرازش کمتر است.
- سادگی استراتژی: استراتژیهای پیچیده با پارامترهای زیاد بیشتر مستعد بیشبرازش هستند. سعی کنید استراتژی خود را تا حد امکان ساده نگه دارید.
- محدود کردن دامنه بهینهسازی: پارامترها را در یک محدوده منطقی و نه در تمام بازه ممکن بهینه کنید.
3. نادیده گرفتن هزینههای معاملاتی
یکی از بزرگترین اشتباهات در بکتست، نادیده گرفتن یا دست کم گرفتن هزینههای معاملاتی است. این هزینهها شامل موارد زیر میشوند:
- اسپرد (Spread): تفاوت بین قیمت خرید (Ask) و قیمت فروش (Bid) یک دارایی. اسپرد یک هزینه ثابت برای هر معامله است که باید در بکتست لحاظ شود.
- کمیسیون (Commission): هزینهای که بروکر برای اجرای معاملات دریافت میکند. این هزینه میتواند به صورت ثابت برای هر لات یا درصدی از حجم معامله باشد.
- سواپ (Swap) یا بهره شبانه: هزینهای که برای نگهداری موقعیتهای معاملاتی باز در طول شب دریافت یا پرداخت میشود. این هزینه به ویژه برای استراتژیهای بلندمدت اهمیت دارد.
- اسلیپیج (Slippage): تفاوت بین قیمت مورد انتظار برای اجرای یک سفارش و قیمت واقعی که سفارش در آن اجرا میشود. اسلیپیج به خصوص در بازارهای پرنوسان یا هنگام اجرای سفارشات بزرگ رخ میدهد. برای بکتست، باید یک فرض محافظهکارانه از اسلیپیج را در نظر بگیرید، حتی اگر مقدار دقیق آن قابل پیشبینی نباشد. این فرض میتواند به صورت یک پیپ یا بیشتر به ازای هر معامله باشد.
اگر این هزینهها در بکتست لحاظ نشوند، نتایج به شدت غیرواقعی خواهند بود و استراتژی که در بکتست سودآور به نظر میرسد، در معاملات واقعی ممکن است زیانده باشد. برای وارد کردن مقادیر واقعی اسپرد و کمیسیون در بکتست خود، میتوانید به صفحه «بهترین بروکرها» مراجعه کنید و اطلاعات مربوط به بروکرهای مختلف را بررسی نمایید.
جمعبندی
بکتست ابزاری قدرتمند برای ارزیابی استراتژیهای معاملاتی است، اما تنها در صورتی که به درستی و با رعایت اصول انجام شود. با انتخاب روش مناسب (دستی یا خودکار)، اطمینان از اندازه نمونه کافی و پرهیز از دامهایی مانند نگاه آینده، بیشبرازش و نادیده گرفتن هزینههای معاملاتی، میتوانید به نتایج بکتست خود اعتماد کنید و استراتژیهای قویتری را توسعه دهید. همیشه به یاد داشته باشید که بکتست یک شبیهسازی است و عملکرد گذشته تضمینکننده نتایج آینده نیست، اما میتواند ابزار ارزشمندی برای افزایش احتمال موفقیت شما باشد.




