درس ۲۶ از ۲۸
از موقعیت تا سیستم: قوانین، بکتست و پرهیز از بیشبرازش
تشخیص یک الگو با داشتن یک روش یکی نیست. روش، مشاهدات را به قوانینی تبدیل میکند که میتوان آنها را نوشت، تکرار کرد و آزمود. وقتی قوانین وجود داشته باشند، میتوانید بررسی کنید که روی دادههای گذشته چگونه عمل میکردند. این درس به نوشتن قوانین روشن، بکتست صادقانه و پرهیز از بیشبرازش (Overfitting) میپردازد؛ رایجترین راهی که معاملهگران با دادههای تاریخی خودشان را فریب میدهند.
نوشتن قوانین آزمودنی
قانون آزمودنی جایی برای تفسیر باقی نمیگذارد. «وقتی روند قوی به نظر میرسد بخر» قابل آزمون نیست. «وقتی بسته شدن روزانه بالای میانگین متحرک ۵۰ دورهای است و RSI(14) دوباره به بالای ۴۰ برمیگردد بخر» قابل آزمون است. یک سیستم کامل دستکم به این پرسشها پاسخ میدهد:
- بازار و تایمفریم: برای مثال EUR/USD در نمودار ۴ ساعته.
- شرط ورود: دقیقاً چه باید رخ دهد و بر اساس بسته شدن کدام کندل.
- حد ضرر: جایی که معامله غلط است، تعریفشده با قانون نه با احساس.
- خروج: هدف قیمتی، حد ضرر متحرک یا محدودیت زمانی.
- حجم معامله: چه مقدار در هر معامله ریسک میشود (در درس بعد).
- فیلترها: شرایطی که در آن معامله نمیکنید، مثل اخبار مهم زمانبندیشده.
بکتست صادقانه
بکتست یعنی اجرای قوانین روی دادههای تاریخی و ثبت تکتک معاملات. میتوان آن را دستی، با جلو بردن کندل به کندل نمودار، یا با نرمافزار انجام داد. آزمون دستی کند است اما به شما یاد میدهد موقعیت در زمان واقعی چه شکلی دارد. هر روشی که انتخاب کنید، چند اصل نتایج را معنادار نگه میدارد:
- هزینهها را لحاظ کنید. اسپرد، کمیسیون و در کریپتو، فاندینگ قراردادهای دائمی میتواند سیستمی کمی مثبت را منفی کند.
- از آینده استفاده نکنید. فقط از اطلاعاتی استفاده کنید که در لحظه تصمیم در دسترس بوده است. سیگنالی که بر پایه بسته شدن کندل است، پیش از آن بسته شدن قابل ورود نیست.
- تعداد معاملات کافی. چند معامله تقریباً هیچ چیزی نمیگوید. نمونهای بزرگ انتخاب کنید که شرایط مختلف بازار را دربر بگیرد.
- شرایط متفاوت بازار. در دورههای روندی، خنثی، آرام و پرنوسان آزمون کنید. بیتکوین، طلا و EUR/USD هر کدام دورههای بسیار متفاوتی را پشت سر گذاشتهاند.
تعداد معاملات، درصد برد، میانگین سود و میانگین زیان و بزرگترین افت سرمایه از سقف تا کف (حداکثر افت یا Drawdown) را ثبت کنید. درصد برد پایین قابلقبول است اگر میانگین سودها بهوضوح بزرگتر از میانگین زیانها باشد و عکس آن هم صادق است.
پرهیز از بیشبرازش
بیشبرازش زمانی رخ میدهد که آنقدر پارامترها را تنظیم کنید تا قوانین کاملاً بر گذشته منطبق شوند. نتیجه روی داده تاریخی چشمگیر به نظر میرسد و روی داده جدید شکست میخورد، چون سیستم نویز را یاد گرفته نه یک رفتار واقعی را. نشانههای هشدار شامل شرطهای زیاد، مقادیر پارامتر بسیار خاص و نتایجی است که با تغییر جزئی یک پارامتر فرو میریزند.
راهکارهای عملی:
- قوانین را کم و ساده نگه دارید.
- داده را تقسیم کنید: روی یک دوره توسعه دهید و روی دورهای بعدی که آن را ندیدهاید تأیید کنید (خارج از نمونه).
- بررسی کنید که مقادیر نزدیک پارامترها نتایج مشابهی بدهند.
- پیش از تعهد بیشتر، با حجم بسیار کم یا در حساب دمو آزمون رو به جلو انجام دهید.
بکتست توصیفی از گذشته با فرضهای شماست. شاهد است، نه وعده.
نکات کلیدی
- سیستم مجموعهای از قوانین مکتوب و بیابهام برای ورود، حد ضرر، خروج، حجم و فیلترهاست.
- بکتست صادقانه هزینهها را لحاظ میکند، از اطلاعات آینده استفاده نمیکند و شرایط مختلف بازار را پوشش میدهد.
- به حداکثر افت سرمایه و نسبت اندازه سود به زیان نگاه کنید، نه فقط درصد برد.
- قوانین کمتر و آزمون خارج از نمونه بهترین دفاع در برابر بیشبرازشاند.
- پیش از اعتماد به هر نتیجه تاریخی، با حجم کم آزمون رو به جلو انجام دهید.
این درس فقط جنبهٔ آموزشی دارد و توصیه به خرید یا فروش هیچ دارایی نیست.