دامی که بیشتر تریدرها نمیبینند
روزها وقت گذاشتید و اکسپرت ادوایزرتان را بهینه کردید. منحنی equity در بکتست به آرامی بالا میرود، افت سرمایه معقول به نظر میرسد و همه چیز نشاندهنده یک استراتژی برنده است. بعد وارد بازار واقعی میشوید — و در عرض چند هفته، اکسپرت به شکلی ضرر میکند که در بکتست اصلاً دیده نشده بود. مشکل کجاست؟
در اکثر موارد، مقصر اصلی اورفیتینگ (overfitting) است. این یکی از خطرناکترین و کمشناختهترین مشکلات در معاملهگری الگوریتمی است که بیسروصدا هزاران اکسپرت را که روی کاغذ عالی به نظر میرسیدند، از کار میاندازد. قبل از اینکه هر استراتژی خودکاری را با سرمایه واقعی اجرا کنید، فهمیدن اورفیتینگ — و محافظت در برابر آن — ضروری است.
اورفیتینگ دقیقاً یعنی چه؟
اورفیتینگ زمانی رخ میدهد که قوانین و پارامترهای اکسپرت آنقدر دقیق روی یک مجموعه داده تاریخی تنظیم شدهاند که استراتژی در واقع گذشته را حفظ میکند، نه اینکه رفتار واقعی بازار را یاد میگیرد. به جای کشف یک مزیت تکرارپذیر، اکسپرت نویزها را یاد میگیرد — همان اتفاقات تصادفی و یکبارهای که مختص یک دوره خاص از دادههای قیمتی است.
تصور کنید دانشآموزی که همه پاسخهای یک برگه امتحانی قدیمی را حفظ کرده، بدون اینکه مفاهیم پشت آن را بفهمد. آن امتحان دقیق را قبول میشود، ولی با کوچکترین تغییر در سؤالها رد میشود. اکسپرت اورفیتشده هم دقیقاً همین کار را میکند: بکتست را با نتایج درخشان پشت سر میگذارد، اما به محض اینکه شرایط بازار کمی تغییر کند، کنترل را از دست میدهد.
این اتفاق به خصوص در مرحله بهینهسازی پارامترها به راحتی میافتد. وقتی صدها یا هزاران ترکیب پارامتری را امتحان میکنید و بهترین نتیجه را انتخاب میکنید، لزوماً بهترین استراتژی را پیدا نکردید — شاید فقط ترکیبی را یافتید که روی آن بازه خاص از دادههای تاریخی شانس آورده. اگر هنوز راهنمای بکتست اکسپرت ادوایزر را نخواندهاید، قبل از ورود به بهینهسازی، پایه خوبی برای شروع است.
چطور استراتژی اورفیتشده را تشخیص دهیم؟
نشانههای هشداردهنده در نتایج بکتست
برخی علائم خطر در همان گزارش بکتست پنهان هستند:
- منحنی equity بیش از حد صاف. استراتژیهای واقعی دورههای سخت، فازهای رکود و افت دارند. یک منحنی صعودی بدون هیچ ناهمواریای اغلب نشان میدهد که اکسپرت دور هر چاله تاریخی تنظیم شده.
- نرخ برد خیلی بالا. نرخ برد بالای ۸۰ تا ۹۰ درصد روی یک مجموعه داده گسترده جای تأمل دارد. بازارها ذاتاً پر از عدم قطعیت هستند و دقت مشکوک بالا میتواند نشانه اورفیتینگ باشد.
- پارامترهای زیاد در برابر معاملات کم. اگر اکسپرت ۱۰ پارامتر قابل تنظیم دارد ولی فقط ۶۰ معامله در بکتست انجام داده، داده کافی برای اعتبارسنجی هر پارامتر ندارید. به عنوان یک قانون کلی، حداقل ۲۰ تا ۳۰ معامله به ازای هر پارامتر آزاد در نظر بگیرید.
- افت شدید عملکرد در بازه زمانی دیگر. بکتست را روی یک بازه زمانی کاملاً متفاوت یا یک جفتارز دیگر اجرا کنید. اگر عملکرد به شدت افت کرد، نتایج اولیه احتمالاً مختص آن داده خاص بودهاند.
توهم بهینهسازی
Strategy Tester در MetaTrader این امکان را میدهد که هزاران ترکیب پارامتری را بررسی کنید. این قابلیت واقعاً مفید است — اما بدون نظم و انضباط، خطرناک است. هر چقدر ترکیبهای بیشتری آزمایش کنید، احتمال بیشتری وجود دارد که یکی از آنها صرفاً از روی شانس عالی به نظر برسد. انتخاب آن برنده و نامیدنش به عنوان استراتژی، یک خطای آماری کلاسیک است. برای بررسی دقیقتر، مقاله بهینهسازی پارامترهای اکسپرت بدون اورفیتینگ را بخوانید.
روشهای عملی برای جلوگیری از اورفیتینگ
۱. از تست خارج از نمونه استفاده کنید
مؤثرترین راه محافظت این است که دادههای تاریخی خود را به دو بخش جداگانه تقسیم کنید. بخش اول (دادههای درون نمونه) را برای توسعه و بهینهسازی به کار ببرید. سپس — بدون هیچ تغییری در پارامترها — استراتژی نهایی را روی بخش دوم (دادههای خارج از نمونه) که اکسپرت هرگز ندیده اجرا کنید. اگر عملکرد روی این دادههای جدید هم قابل قبول بود، شواهد معناداری دارید که مزیتتان واقعی است نه حفظی.
تقسیم رایج ۷۰ درصد درون نمونه و ۳۰ درصد خارج از نمونه است، هرچند نسبت دقیق کمتر از این اهمیت دارد که این دو مجموعه داده را در طول فرآیند توسعه کاملاً جدا نگه دارید.
۲. تست واک-فوروارد (Walk-Forward)
تست واک-فوروارد یک قدم فراتر از تست خارج از نمونه است و آن را روی چندین پنجره زمانی متحرک تکرار میکند. روی یک پنجره درون نمونه بهینه میکنید، روی پنجره بعدی که خارج از نمونه است تست میکنید، سپس پنجره را جلو میبرید و دوباره همین کار را میکنید. نتایج ترکیبی خارج از نمونه در تمام پنجرهها تصویر واقعبینانهتری از عملکرد استراتژی در طول زمان به شما میدهد.
۳. استراتژی را ساده نگه دارید
هر پارامتر اضافهای که اضافه میکنید یک درجه آزادی بیشتر است — فرصت دیگری برای بهینهساز تا یک مزیت غیرواقعی پیدا کند. استراتژیهایی که بر تعداد کمی قانون منطقی و روشن بنا شدهاند، معمولاً بسیار مستحکمتر از سیستمهای پیچیدهای هستند که به کالیبراسیون دقیق هشت یا نه پارامتر نیاز دارند. قبل از اضافه کردن هر قانون یا فیلتر جدید، از خودتان بپرسید: آیا این منعکسکننده یک رفتار منطقی بازار است، یا فقط میخواهم یک معامله زیانده را که دوست ندارم حذف کنم؟
۴. روی جفتارزها و شرایط مختلف تست کنید
یک مزیت واقعی معمولاً — حداقل به صورت کلی — روی بیش از یک جفتارز یا شرایط بازار کار میکند. اگر اکسپرت شما روی یورو/دلار عالی عمل میکند ولی روی پوند/دلار یا دلار/ین با همان پارامترها از هم میپاشد، این نشانهای است که استراتژی احتمالاً روی ویژگیهای خاص یورو/دلار تنظیم شده نه یک اصل کلی بازار.
۵. به واقعبینانه بودن افت سرمایه توجه کنید
یک اکسپرت اورفیتشده معمولاً افت سرمایهای غیرواقعی کوچک در بکتست نشان میدهد. در شرایط واقعی، افت سرمایه اغلب به مراتب بیشتر از آن چیزی است که بکتست نشان میداد. توجه به کنترل افت سرمایه هنگام معامله با اکسپرت ادوایزر بسیار مهم است — و یک تست مقایسهای مفید است: اگر افت سرمایه واقعیتان بسیار بیشتر از بکتست بود، اورفیتینگ تقریباً قطعاً بخشی از دلیل آن است.
برای آینده بسازید، نه برای گذشته
هدف از بکتست هرگز ساخت استراتژیای نیست که از نظر تاریخی کامل بوده باشد. هدف پیدا کردن شواهدی است که نشان دهد یک مزیت منطقی و مبتنی بر قوانین، احتمالاً در آینده هم ادامه خواهد داشت. هر سپری که در برابر اورفیتینگ ایجاد میکنید — سادگی، اعتبارسنجی خارج از نمونه، تست واک-فوروارد، بررسی چند بازار — شما را به این هدف نزدیکتر میکند.
اگر در MetaTrader مشغول ساخت یا ارزیابی اکسپرت هستید، MGH Products طیفی از اندیکاتورها و اکسپرت ادوایزرهای طراحیشده با تأکید بر استحکام را در mghfx.com ارائه میدهد که میتوانند به عنوان مرجعی عملی برای ساختار درست ابزارهای خودکار مفید باشند.
اورفیتینگ یک استثنا نادر نیست — نتیجه پیشفرض بهینهسازی بدون نظم و انضباط است. شناخت آن در اوایل کار، و ایجاد عادتهایی که از آن جلوگیری میکنند، تریدرهایی را که با استراتژیهای الگوریتمی موفق میشوند از کسانی جدا میکند که مدام تعجب میکنند چرا بکتست “بینقص”شان هرگز به سود واقعی تبدیل نمیشود. این مقاله صرفاً جنبه آموزشی دارد و توصیه مالی محسوب نمیشود. همیشه با دقت تست کنید و مسئولانه معامله کنید.
Photo by Ilya Pavlov on Unsplash




