چرا بهینهسازی میتواند علیه شما عمل کند
بهینهسازی اکسپرت ادوایزر (EA) یکی از قدرتمندترین ابزارهای دسترس معاملهگران الگوریتمیه — و در عین حال، اگر درست استفاده نشه، یکی از خطرناکترینهاست. هدف از بهینهسازی سادهست: پیدا کردن مقادیر پارامتری که EA رو در شرایط واقعی بازار به بهترین عملکرد برسونه. مشکل اینجاست که خیلی از تریدرها «بهترین عملکرد روی دادههای تاریخی» رو با «بهترین عملکرد در آینده» یکی میدونن — و همین اشتباه منجر به overfitting یا curve-fitting میشه.
overfitting زمانی اتفاق میافته که پارامترهای EA آنقدر دقیق بر اساس دادههای گذشته تنظیم شدن که استراتژی عملاً نویز تاریخی رو حفظ میکنه، نه یه مزیت واقعی و تکرارپذیر در بازار. بکتست فوقالعاده به نظر میرسه — نرخ برد بالا، افت سرمایه کم، و profit factor چشمگیر. بعد EA وارد بازار واقعی میشه و همه چیز خراب میشه. اگه این تجربه رو داشتید، تنها نیستید؛ این یکی از رایجترین اشتباهات تریدرها هنگام استفاده از اکسپرت ادوایزر است.
تفاوت بهینهسازی واقعی و Curve-Fitting
تفاوت بین بهینهسازی درست و curve-fitting به یه سوال ساده برمیگرده: آیا این پارامترها یه رفتار واقعی بازار رو نشون میدن، یا فقط اتفاقاً روی این مجموعه داده خاص کار میکنن؟
فرض کنید یه EA بر اساس تقاطع میانگین متحرک دارید. اگه همه ترکیبهای دوره سریع و کند از ۱ تا ۲۰۰ رو تست کنید، تقریباً مطمئناً به ترکیبی میرسید که بکتست شگفتانگیزی تولید میکنه. اما این ترکیب ممکنه کاملاً تصادفی باشه — یعنی فقط با توالی خاص بالا و پایینهای دوره تست تطابق داره، نه با منطق واقعی مومنتوم روند.
بهینهسازی درست برعکسه: از یه فرضیه معاملاتی منطقی شروع میکنید و از بهینهسازی برای تأیید و اصلاح اون فرضیه استفاده میکنید — نه برای کشف اون از طریق آزمایش کورکورانه. پارامترهایی که به دست میآرید باید از نظر منطقی قابل توضیح باشن، و تغییرات کوچک در اون مقادیر نباید باعث فروپاشی کامل استراتژی بشه.
نشانههای احتمالی Overfitting در EA شما
- نتایج بکتست به طرز چشمگیری بهتر از نتایج تست آیندهنگر یا معاملات واقعی است.
- استراتژی فقط روی یک جفتارز و تایمفریم خاص کار میکند، بدون هیچ دلیل منطقی مشخصی.
- تغییرات جزئی در مقادیر پارامتر (مثلاً تغییر دوره از ۱۴ به ۱۵) نوسانات بزرگی در عملکرد ایجاد میکند.
- EA پارامترهای زیادی دارد که هر کدام تا چند رقم اعشار تنظیم شدهاند.
- profit factor یا نرخ برد در بکتست در مقایسه با استانداردهای استراتژیهای مشابه غیرواقعی به نظر میرسد.
روشهای عملی برای بهینهسازی قوی
۱. از Walk-Forward Testing استفاده کنید
تست walk-forward معتبرترین روش برای اعتبارسنجی پارامترهای EA است. فرآیند اینطوره: دادههای تاریخی رو به بخشهایی تقسیم کنید. EA رو روی بخش اول (پنجره «in-sample») بهینه کنید، سپس پارامترهای بهدستآمده رو روی بخش بعدی (پنجره «out-of-sample») — بدون هیچ تغییری — تست کنید. این کار رو روی کل دادهها با حرکت رو به جلوی پنجرهها تکرار کنید.
اگه پارامترها به خوبی تعمیم پیدا کنن، عملکرد out-of-sample باید به طور معقولی با عملکرد in-sample هماهنگ باشه. فاصله بزرگ و سیستماتیک بین این دو، نشانهای قوی از overfitting است. این روش ادامه طبیعی یک بکتست درست است و باید قبل از استفاده واقعی از EA اجباری در نظر گرفته بشه.
۲. تعداد پارامترهای بهینهشده رو محدود کنید
هر پارامتر اضافهای که بهینه میکنید، یه درجه آزادی بیشتر است — یه بُعد دیگه که EA میتونه از طریقش خودش رو روی نویز تاریخی تنظیم کنه. به عنوان یه قانون کلی، سعی کنید تا جای ممکن پارامترهای کمتری رو بهینه کنید. دو یا سه ورودی که مستقیماً منطق اصلی استراتژی شما رو نشون میدن شناسایی کنید و تمرکزتون رو اونجا بذارید. تنظیمات فرعی رو روی مقادیر پیشفرض معقول و رُند نگه دارید.
استراتژیای با سه پارامتر بهینهشده که نتایج پایدار نشون میده، به مراتب قابلاعتمادتر از استراتژیای با دوازده پارامتر بهینهشده با نتایج «کامل» است.
۳. در شرایط مختلف بازار تست کنید
یه EA قوی باید در محیطهای مختلف بازار — دورههای رونددار، رنج، نوسان کم و نوسان زیاد — عملکرد قابل قبولی داشته باشه. اگه EA شما فقط در یه نوع شرایط بازار میدرخشه و اتفاقاً بهینهسازی رو کاملاً روی دادههای همون شرایط انجام دادید، با تغییر بازار با مشکل روبرو میشید.
بهینهسازیتون رو روی چند جفتارز و چند تایمفریم اجرا کنید، حتی اگه قرار باشه EA رو فقط روی یکی از آنها استفاده کنید. اگه پارامترهای بهینه برای هر جفتارز کاملاً متفاوت بودن، این یه هشدار جدیه. پارامترهای نسبتاً یکسان در بین جفتارزهای مختلف نشون میده که استراتژی چیز واقعیای رو کشف کرده.
۴. پایداری پارامتر رو به اوج عملکرد ترجیح بدید
وقتی نتایج بهینهسازی رو مرور میکنید، در برابر وسوسه انتخاب مجموعه پارامتر با بالاترین عملکرد مقاومت کنید. به جاش دنبال یه ناحیه پایداری بگردید — دستهای از مقادیر پارامتری نزدیک به هم که همه نتایج خوب و ثابتی تولید میکنن. اگه بهترین نتیجه در میان مقادیری که عملکرد ضعیفی دارن قرار گرفته، احتمالاً یه اتفاق آماریه. اما اگه بهترین نتیجه در میان یه دشت از نتایج مشابه خوب قرار داشته باشه، احتمال خیلی بیشتری داره که واقعی باشه.
این مفهوم — که گاهی «پایداری پارامتر» یا «انتخاب پلاتو» نامیده میشه — از عملیترین ایدهها در توسعه EA است و خیلی اوقات نادیده گرفته میشه.
۵. یه مجموعه داده نهایی «دستنخورده» کنار بذارید
بخشی از دادههای تاریخیتون — ترجیحاً جدیدترین بخش — رو کنار بذارید و در طول بهینهسازی یا تست walk-forward ازش استفاده نکنید. وقتی انتخاب پارامترهاتون رو نهایی کردید، EA رو دقیقاً یه بار روی این دادههای دستنخورده اجرا کنید. این آخرین خط دفاعی شماست قبل از اینکه به بازار واقعی برید. اگه عملکرد روی این دادهها با نتایج walk-forward هماهنگ بود، میتونید با اطمینان بیشتری پیش برید.
مدیریت ریسک هم باید در کنارش باشه
هیچ مقدار از بهینهسازی جای مدیریت سرمایه درست رو نمیگیره. حتی یه EA که خوب بهینه شده و دچار overfitting نشده هم دورههای ضرر خواهد داشت. اندازه پوزیشن، محدودیتهای حداکثر افت سرمایه، و قوانین کنترل ریسک باید به طور مستقل از منطق ورود و خروج EA، در طراحی اون گنجانده بشن. برای بررسی دقیقتر این موضوع، مطالعه قوانین مدیریت سرمایه در معاملات خودکار رو پیشنهاد میکنیم.
تریدرهایی که از ابزارهای mghfx.com برای ساخت EA استفاده میکنن، میتونن این اصول بهینهسازی رو مستقیماً در Strategy Tester متاتریدر پیاده کنن و تستهای walk-forward و بررسی پایداری رو بدون نیاز به کدنویسی سفارشی از صفر انجام بدن.
در نهایت، نشانه یه EA خوب بهینهشده این نیست که در بکتست چقدر خوب به نظر میرسه — بلکه اینه که وقتی بازار شرایطی رو پیش میآره که هرگز ندیده، چقدر ثابت عمل میکنه. برای پایداری بهینه کنید، نه برای کمال، تا استراتژیهاتون شانس بسیار بیشتری برای بقا در بازارهای واقعی داشته باشن.
این مقاله صرفاً جنبه آموزشی دارد و توصیه مالی یا سرمایهگذاری محسوب نمیشود. معامله در فارکس و استفاده از سیستمهای خودکار با ریسک قابل توجهی همراه است. قبل از استفاده از هر EA با سرمایه واقعی، آزمایش کامل انجام دهید.
Photo by Mohammad Rahmani on Unsplash




