سیستم معاملاتی یعنی یک قاعدهٔ دقیق و قابل تکرار برای ورود و خروج، نوشتهشده طوری که هر بار همان شرطها پیش بیاید، همان تصمیم گرفته شود؛ نه «حس خوبی به این سهم دارم». بکتست یعنی همین قاعده را روی تاریخچهٔ واقعی قیمت اجرا کنی و ببینی اگر همیشه رعایتش میکردی، چه بازدهی میگرفتی. ابزار بکتست سایت دقیقاً همین کار را با الگوهای کندلی انجام میدهد، و بزرگترین خطری که این مسیر را خراب میکند بیشبرازش است: تنظیم قاعده تا جایی که فقط گذشته را حفظ کند.
از سه بخش، نه بیشتر: شرط ورود («وقتی الگوی کندلی صعودی با اعتبار بالا دیده شود»)، شرط خروج («بعد از بیست روز معاملاتی» یا «وقتی الگوی نزولی دیده شود»)، و اندازهٔ پوزیشن. اگر یکی از این سه را با کلمهٔ «معمولاً» یا «تقریباً» توضیح میدهی، هنوز سیستم نداری؛ یک سلیقه داری.
ابزار بکتست سایت روی همین منطق ساخته شده: وقتی کندلی با یکی از الگوهای کندلی صعودی و با اعتباری برابر یا بالاتر از آستانهٔ انتخابی تو (یک تا سه ستاره) دیده شود، ورود در بازگشایی روز بعد انجام میشود، نه در بستهٔ همان روز؛ چون سیگنال کندل تازه بعد از بستهشدنش کامل میشود و ورود در همان روز، در دنیای واقعی اجراناپذیر است. خروج هم بعد از تعداد روز معاملاتی ثابتی که خودت انتخاب میکنی (۳، ۵، ۱۰ یا ۲۰ روز) روی قیمت بسته انجام میشود. در هر لحظه فقط یک معامله باز است و سیگنالهایی که وسط یک معاملهٔ باز میرسند نادیده گرفته میشوند.
پنج عدد کلیدی، همراه با مقایسهٔ اجباری با خرید و نگهداری:
| عدد | معنی |
|---|---|
| نرخ برد | چند درصد معاملات با سود بسته شدهاند |
| میانگین بازده هر معامله | سود یا زیان متوسط، بعد از کسر هزینه |
| بازده کل | بازده مرکب کل دوره، اگر همهٔ معاملات پشت سر هم انجام میشد |
| بیشینهٔ افت سرمایه | بدترین فاصلهٔ سرمایه از بالاترین نقطهٔ قبلیاش |
| بازده خرید و نگهداری | اگر همان روز اول میخریدی و تا امروز نگه میداشتی، چقدر بود |
هزینهٔ رفتوبرگشت (در بکتست سایت ۱٫۳٪، کمی محافظهکارانهتر از کارمزد واقعی خرید و فروش سهام که حدود ۱٫۲۵٪ است) از هر معامله کم میشود؛ بدون این هزینه، هر سیستمی روی کاغذ بهتر از واقعیت به نظر میرسد. اگر روز ورود نماد کاملاً در صف قفل بوده و دامنهٔ معاملاتی نداشته، خرید عملاً ممکن نبوده و آن معامله حساب نمیشود.
مثالروی یک نماد، بکتست ۲۴ معامله پیدا کرده. ۱۳ تای آنها سود دادهاند (نرخ برد حدود ۵۴٪) و میانگین بازده هر معامله بعد از کسر هزینه ۰٫۸٪ است. بازده مرکب کل دوره ۱۹٪ شده (کمی کمتر از ۱٫۰۰۸ به توان ۲۴، چون زیانها در ترکیب مرکب سنگینتر مینشینند)، در حالی که خرید و نگهداری در همان بازه ۲۰٪ داده. بیشینهٔ افت سرمایهٔ سیستم ۱۴٪ بوده، در حالی که نمودار قیمت همان بازه افتی حدود ۲۹٪ را نشان میدهد. یعنی مسیر سیستم آرامتر بوده، ولی بازده کلش هنوز از خرید و نگهداری جلو نزده؛ و چون تعداد معاملات کمتر از سی است، خروجی با برچسب «نمونهٔ کم» میآید و نباید با اطمینان کامل به آن تکیه کرد.
بیشبرازش یعنی پارامترهای قاعده را آنقدر عوض کنی تا روی همان تکه از تاریخچه که جلوی چشمت است، بهترین نتیجهٔ ممکن را بدهد. مشکل این است که آن نتیجه، الگوی واقعی بازار را یاد نگرفته؛ نویز همان بازهٔ خاص را حفظ کرده. وقتی همان قاعده را روی دادهای که در تنظیمش دیده نشده اجرا کنی («خارج از نمونه»)، معمولاً میبازد.
نمونهٔ واقعی همین اتفاق در موتور استراتژیهای الگوریتمی خود سایت افتاد: تیم سازنده امتحان کرد که پارامتر میانگین متحرک را برای هر گروه صندوق جداگانه بهینه کند («بهینهسازی گامبهگام زمانی»، یعنی تنظیم روی یک بازه و آزمون روی بازهٔ بعدی که مدل آن را ندیده). نتیجه رد شد: پارامتر بهینهشده فقط در یکی از سه گروه، از یک قاعدهٔ ثابت و ساده (میانگین متحرک نمایی ۱۰ و ۳۰ برای همه) بهتر عمل کرد. برای همین سایت بهجای پارامتر جداگانهٔ هر گروه، همان یک قاعدهٔ ساده را برای همه نگه داشته؛ چون در آزمون «بدترین رتبه در زیربازههای مختلف» پایدارتر بود، نه چون بهترین بازدهٔ تکبازه را داشت.
هشداراگر با تغییر مکرر یک پارامتر (مثلاً تعداد روز نگهداری از ۳ به ۵ و ۱۰ و ۲۰) عدد بازده هر بار بهتر میشود، این نشانهٔ کشف یک الگوی واقعی نیست؛ نشانهٔ این است که داری روی نویز همان تاریخچه فیت میکنی. هر چه پارامترهای بیشتری را آزاد بگذاری، احتمال این تله بیشتر میشود.
پنج قاعده:
قاعدهٔ سایت سی معامله است؛ زیر آن نتیجه بهعنوان «نمونهٔ کم» علامت میخورد. هرچه تعداد معاملات بیشتر باشد، نرخ برد و میانگین بازده قابلاتکاتر میشوند، چون نقش شانس در میانگین کمتر میشود.
نه دقیقاً. بکتست فرض میکند دقیقاً روی قیمت باز روز بعد اجرا میشوی و بدون لغزش قیمتی (slippage) و بدون گیرکردن در صف. در بازار واقعی این فرضها همیشه کامل درست در نمیآیند، بهخصوص روی نمادهای کمحجم. بکتست یک تخمین منظم است، نه یک تضمین.
اعتبارسنجی گامبهگام زمانی یعنی پارامتر را فقط روی یک بازه تنظیم کنی و روی بازهٔ بعدی که مدل ندیده تست کنی؛ این یک روش دفاعی در برابر بیشبرازش است، نه خود بیشبرازش. مشکل وقتی پیش میآید که حتی همین روش هم نتیجهٔ پایدار ندهد، مثل تجربهٔ سایت که در بخش قبل توضیح داده شد.
نه در ابزار بکتست؛ این ابزار فقط الگوهای کندلی را میسنجد، چون سایت آنها را با شرط عددی دقیق و بدون تشخیص چشمی پیدا میکند. برای قاعدهٔ دیگری مثل تقاطع میانگین متحرک، همین منطق را دستی روی دادهٔ تاریخی همان نماد پیاده کن: ورود در بازگشایی روز بعد، کسر کارمزد و مقایسه با خرید و نگهداری. کارنامهٔ استراتژیهای تقاطع EMA روی صندوقها را هم در صفحهٔ استراتژیهای سایت میبینی.