چگونه استراتژی معاملاتی خود را بهینه کنیم؟

اگر چند ماه یا چند سال است ترید میکنی، احتمالاً یک جایی به این سؤال رسیدهای:
آیا میتوانم استراتژی معاملاتی خودم را بهتر کنم؟
مثلاً:
- آیا حد ضرر من زیادی بزرگ است؟
- آیا تارگت من باید تغییر کند؟
- آیا در بعضی ساعتها نباید معامله کنم؟
- آیا بعضی نمادها برای استراتژی من مناسب نیستند؟
- آیا باید فیلتر جدیدی به استراتژی اضافه کنم؟
- آیا میتوانم تعداد معاملات ضررده را کمتر کنم؟
اینجا مفهوم بهینهسازی استراتژی معاملاتی مطرح میشود.
اما یک مشکل مهم وجود دارد.
هر تغییری که باعث شود گذشته استراتژی بهتر به نظر برسد، الزاماً به معنی بهتر شدن خود استراتژی نیست.
ممکن است آنقدر قوانین را بر اساس دادههای گذشته تغییر دهی که استراتژی تقریباً برای همان گذشته ساخته شده باشد و وقتی وارد بازار جدید میشوی، عملکردش افت کند.
به همین دلیل، بهینهسازی واقعی یعنی پیدا کردن نسخهای از استراتژی که در گذشته عملکرد مناسبی داشته، اما مهمتر از آن، در دادههایی که هنگام طراحی ندیده است نیز رفتار قابل قبولی داشته باشد.
در این مقاله قدمبهقدم بررسی میکنیم که چگونه استراتژی معاملاتی خود را بهینه کنیم، چه چیزهایی را تغییر دهیم، چه چیزهایی را تغییر ندهیم و چطور بفهمیم واقعاً استراتژی را بهتر کردهایم یا فقط گذشته را بیشازحد دستکاری کردهایم.
بهینهسازی استراتژی معاملاتی دقیقاً یعنی چه؟
بهینهسازی یعنی بررسی سیستم معاملاتی و پیدا کردن تغییراتی که بتوانند کیفیت عملکرد آن را بهتر کنند، بدون اینکه منطق اصلی استراتژی از بین برود.
فرض کن استراتژی تو این قوانین را دارد:
- روند در تایمفریم بالاتر مشخص شود.
- قیمت به یک ناحیه مشخص برگردد.
- در تایمفریم پایینتر تأیید ورود دریافت شود.
- حد ضرر پشت ساختار قرار بگیرد.
- تارگت بر اساس نسبت ریسک به ریوارد مشخص شود.
حالا بعد از بررسی ۳۰۰ معامله متوجه میشوی بخش زیادی از ضررها در یک شرایط خاص اتفاق افتادهاند.
مثلاً معاملات بین ساعت ۱۲ تا ۱۴ به وقت مشخصی از بازار، عملکرد ضعیفتری دارند.
یک روش بهینهسازی میتواند این باشد که بررسی کنی آیا حذف معاملات این بازه زمانی، در نمونههای جدید هم باعث بهتر شدن عملکرد میشود یا نه.
اما اگر بعد از بررسی دادهها متوجه شوی که:
- بین ساعت ۱۲:۰۷ تا ۱۲:۲۳ بهترین عملکرد را داری،
- فقط وقتی اسپرد کمتر از مقدار خاصی است وارد شوی،
- حد ضرر دقیقاً ۱۳ پیپ باشد،
- تارگت دقیقاً ۲.۷۳ برابر ریسک باشد،
ممکن است وارد مسیر خطرناکی شده باشی.
چون احتمال دارد بهجای پیدا کردن یک مزیت واقعی، داری خودت را با گذشته تطبیق میدهی.
هدف از بهینهسازی چیست؟
هدف بهینهسازی نباید این باشد:
بیشترین سود ممکن در بکتست
هدف بهتر این است:
بهترین تعادل بین سودآوری، ریسک، ثبات و سادگی استراتژی
برای مثال، دو نسخه از یک استراتژی را در نظر بگیر:
| شاخص | نسخه اول | نسخه دوم |
|---|---|---|
| سود تاریخی | ۳۵٪ | ۳۰٪ |
| حداکثر دراودان | ۲۵٪ | ۱۴٪ |
| تعداد قوانین | ۹ | ۴ |
| تعداد معاملات | ۱۸۰ | ۲۶۰ |
| عملکرد خارج از نمونه | ضعیف | قابل قبول |
نسخه اول روی دادههای گذشته سود بیشتری ساخته است.
اما نسخه دوم ممکن است انتخاب بهتری باشد.
چرا؟
چون:
- دراودان کمتر است.
- قوانین سادهترند.
- معاملات بیشتری دارد.
- عملکرد خارج از نمونه بهتر است.
پس بهینهسازی لزوماً یعنی بیشتر کردن سود نیست.
گاهی بهینهسازی یعنی:
کم کردن ریسک بدون اینکه مزیت استراتژی از بین برود.
قبل از بهینهسازی، استراتژی را دقیق تعریف کنید
یکی از بزرگترین اشتباهات این است که تریدر قبل از اینکه استراتژی فعلی خود را دقیق تعریف کند، شروع به تغییر آن میکند.
اول باید مشخص باشد:
شرایط ورود چیست؟
مثلاً:
- روند چگونه تشخیص داده میشود؟
- چه ناحیهای معتبر است؟
- چه تأییدی برای ورود لازم است؟
شرایط خروج چیست؟
- حد ضرر کجاست؟
- تارگت چگونه تعیین میشود؟
- خروج دستی مجاز است یا خیر؟
شرایط عدم ورود چیست؟
این بخش خیلی مهم است.
باید مشخص باشد چه شرایطی باعث میشود معامله نکنیم.
مدیریت ریسک چگونه است؟
- درصد ریسک هر معامله چقدر است؟
- بعد از ضرر حجم تغییر میکند؟
- بعد از برد حجم تغییر میکند؟
- حداکثر ضرر روزانه یا هفتگی وجود دارد؟
تا زمانی که این موارد مشخص نباشند، نمیتوانی بفهمی تغییر جدید واقعاً استراتژی را بهتر کرده یا فقط رفتار معاملاتی تو را تغییر داده است.
۱. ابتدا ضعیفترین بخش استراتژی را پیدا کنید
بهینهسازی را از همهچیز همزمان شروع نکن.
اول ببین مشکل اصلی کجاست.
مثلاً:
مشکل اول:
استراتژی سودده است، اما دراودان خیلی بالاست.
در این حالت شاید لازم نباشد قوانین ورود را تغییر دهی. شاید باید مدیریت ریسک یا اندازه موقعیت را بررسی کنی.
مشکل دوم:
استراتژی در یک سشن عملکرد ضعیفی دارد.
اینجا میتوانی عملکرد بر اساس ساعت و سشن را بررسی کنی.
مشکل سوم:
استراتژی در بازار رونددار خوب است اما در رنج ضعیف است.
در این حالت باید ببینی آیا میتوان شرایط بازار را بهصورت منطقی فیلتر کرد یا خیر.
مشکل چهارم:
تعداد معاملات خیلی زیاد است ولی سود خالص چندان زیاد نیست.
در این شرایط شاید هزینه معاملات، ورودهای ضعیف یا بیشمعاملهگری مسئله اصلی باشد.
بنابراین اولین سؤال باید این باشد:
بزرگترین ضعف استراتژی من دقیقاً چیست؟
نه اینکه:
چه چیز دیگری میتوانم به استراتژی اضافه کنم؟
۲. معاملات خود را بر اساس شرایط مختلف دستهبندی کنید
یکی از بهترین روشهای پیدا کردن نقاط قابل بهینهسازی، تقسیم معاملات به گروههای مختلف است.
مثلاً:
- نماد
- سشن
- روز هفته
- ساعت ورود
- نوع ستاپ
- جهت معامله
- شرایط بازار
- اندازه ریسک
- نسبت ریسک به ریوارد
فرض کن ۴۰۰ معامله داری.
بعد از دستهبندی متوجه میشوی:
| شرایط | تعداد معاملات | نتیجه |
|---|---|---|
| سشن لندن | ۱۴۰ | +۲۸R |
| سشن نیویورک | ۱۶۰ | +۱۹R |
| سشن آسیا | ۱۰۰ | -۱۲R |
این نتیجه میتواند یک سرنخ مهم باشد.
اما هنوز نباید فوراً بگویی:
پس سشن آسیا را حذف میکنم.
چون ممکن است این نتیجه تصادفی باشد.
باید بررسی کنی آیا این تفاوت در دورههای دیگر هم دیده میشود یا خیر.
۳. فقط یک متغیر را در هر مرحله تغییر دهید
این یکی از مهمترین قوانین بهینهسازی است.
فرض کن استراتژی فعلی تو:
- وینریت ۴۵٪
- پروفیت فاکتور ۱.۳
- حداکثر دراودان ۱۵٪
دارد.
حالا همزمان:
- حد ضرر را تغییر میدهی.
- تارگت را تغییر میدهی.
- ساعت معامله را محدود میکنی.
- یک فیلتر روند اضافه میکنی.
- یک اندیکاتور اضافه میکنی.
بعد نتیجه بهتر میشود.
اما نمیدانی کدام تغییر باعث بهبود شده است.
بهتر است تغییرات را مرحلهای انجام دهی.
مثلاً:
نسخه A
استراتژی اصلی
نسخه B
فقط تغییر ساعت معامله
نسخه C
استراتژی اصلی + تغییر ساعت + تغییر حد ضرر
نسخه D
استراتژی اصلی + تغییر ساعت + تغییر حد ضرر + فیلتر جدید
با این روش میتوانی اثر هر تغییر را بهتر بررسی کنی.
۴. پارامترها را بیشازحد دقیق نکنید
این یکی از خطرناکترین دامهای بهینهسازی است.
فرض کن متوجه میشوی حد ضرر ۲۰ پیپ نتیجه خوبی دارد.
بعد تست میکنی:
- ۱۸ پیپ
- ۱۹ پیپ
- ۲۰ پیپ
- ۲۱ پیپ
- ۲۲ پیپ
و میبینی ۱۹ پیپ بهترین نتیجه را دارد.
حالا ممکن است وسوسه شوی بگویی:
حد ضرر بهینه استراتژی من دقیقاً ۱۹ پیپ است.
اما چرا ۱۹؟
اگر حد ضررهای ۱۸ تا ۲۲ پیپ تقریباً عملکرد مشابهی داشته باشند، تفاوت کوچک بین آنها احتمالاً اهمیت زیادی ندارد.
در چنین شرایطی بهتر است بهجای انتخاب یک نقطه خاص، به دنبال ناحیه مقاوم از پارامترها باشی.
مثلاً اگر حد ضررهای ۱۸ تا ۲۳ پیپ همگی عملکرد مناسبی دارند، این نتیجه از نظر پایداری میتواند ارزشمندتر از حالتی باشد که فقط ۱۹ پیپ عالی و مقادیر اطراف آن ضعیف باشند.
این ایده با مفهوم پیدا کردن نواحی پایدار یا plateau در بهینهسازی همخوانی دارد؛ انتخاب یک نقطه بسیار دقیق میتواند خطر بیشبرازش را افزایش دهد.
۵. از اضافه کردن فیلترهای زیاد خودداری کنید
یکی از رایجترین مسیرهای خراب کردن استراتژی این است:
استراتژی ضررده است.
یک فیلتر اضافه میکنیم.
نتیجه بهتر میشود.
یک فیلتر دیگر اضافه میکنیم.
باز هم بهتر میشود.
فیلتر سوم.
باز هم بهتر.
در نهایت به استراتژیای میرسیم که برای هر معامله ۱۵ شرط دارد.
در بکتست فوقالعاده است.
اما در بازار واقعی تقریباً هیچ سیگنالی ایجاد نمیکند یا عملکردش فرو میریزد.
این همان جایی است که خطر بیشبرازش یا Overfitting مطرح میشود.
بیشبرازش یعنی استراتژی آنقدر با دادههای گذشته تطبیق داده شود که بهجای یاد گرفتن یک الگوی قابل تعمیم، نویز و اتفاقات خاص همان دادهها را هم یاد بگیرد.
پژوهشهای مربوط به بکتست نشان دادهاند که جستوجوی تعداد زیادی ترکیب و انتخاب بهترین نتیجه میتواند یک استراتژی ظاهراً عالی ایجاد کند که در دادههای جدید عملکرد بسیار ضعیفی دارد.
۶. بهینهسازی را بر اساس سود خالص انجام ندهید
فرض کن دو نسخه داریم:
| شاخص | نسخه A | نسخه B |
|---|---|---|
| سود خالص | ۱۰٬۰۰۰ دلار | ۸٬۰۰۰ دلار |
| دراودان | ۶٬۰۰۰ دلار | ۲٬۵۰۰ دلار |
| تعداد معاملات | ۸۰ | ۲۲۰ |
| پروفیت فاکتور | ۱.۳ | ۱.۵ |
اگر فقط سود خالص را نگاه کنی، نسخه A بهتر است.
اما وقتی ریسک را هم در نظر میگیری، نسخه B میتواند جذابتر باشد.
به همین دلیل هنگام بهینهسازی بهتر است چند معیار را همزمان بررسی کنی:
- سود خالص
- بازدهی
- حداکثر دراودان
- پروفیت فاکتور
- امید ریاضی
- تعداد معاملات
- ثبات عملکرد
- هزینه معاملات
هدف این نیست که یک عدد را به حداکثر برسانی.
هدف پیدا کردن تعادل مناسب بین بازدهی و ریسک است. CFA Institute نیز در ارزیابی بکتست بر بررسی همزمان عملکرد و ریسک و استفاده از روشهایی مثل تحلیل سناریو و حساسیت تأکید میکند.
۷. هزینه معاملات را در بهینهسازی وارد کنید
ممکن است یک استراتژی روی نمودار بسیار خوب به نظر برسد، اما در اجرای واقعی به دلیل هزینهها جذاب نباشد.
مثلاً یک استراتژی:
- ۵۰۰ معامله در سال
- سود ناخالص: ۶۰۰۰ دلار
- هزینه معاملات: ۳۵۰۰ دلار
داشته باشد.
در این حالت سود واقعی با چیزی که در یک بکتست بدون هزینه دیدهای بسیار متفاوت است.
این مسئله مخصوصاً برای استراتژیهایی که معاملات زیادی انجام میدهند اهمیت بیشتری دارد.
به همین دلیل اگر استراتژی را بهینه میکنی، بهتر است اسپرد، کمیسیون، سواپ و در صورت امکان لغزش قیمت را هم در محاسبات در نظر بگیری.
مطالعات جدید نیز نشان میدهند که نادیده گرفتن هزینههای معاملاتی میتواند سودآوری گزارششده در بکتست را بیش از حد واقعی نشان دهد.
۸. استراتژی را روی دادههای دیدهنشده آزمایش کنید
این مرحله برای جلوگیری از خودفریبی بسیار مهم است.
فرض کن ۵ سال داده تاریخی داری.
اگر تمام ۵ سال را برای تغییر قوانین استفاده کنی و بعد همان ۵ سال را برای اثبات موفقیت استراتژی نشان دهی، مشکل وجود دارد.
چرا؟
چون استراتژی در واقع آن دادهها را دیده است.
بهتر است دادهها را به بخشهای جدا تقسیم کنی.
مثلاً:
بخش اول: توسعه
برای پیدا کردن و اصلاح استراتژی.
بخش دوم: تست خارج از نمونه
این بخش هنگام طراحی نهایی استراتژی نباید برای انتخاب پارامترها استفاده شود.
بخش سوم: فوروارد تست
استراتژی با قوانین مشخص در دادههای جدید اجرا میشود.
هدف این است که ببینی چیزی که روی گذشته جواب داده، در دادههای جدید هم تا حدی قابل استفاده است یا نه.
۹. از Walk-Forward Analysis استفاده کنید
یکی از روشهای کاربردی برای بررسی پایداری استراتژی، Walk-Forward Analysis یا تحلیل پیشرونده است.
در این روش بهجای اینکه کل تاریخچه را یکجا بررسی کنی، چند پنجره زمانی ایجاد میکنی.
مثلاً:
- ۲ سال برای توسعه
- ۶ ماه برای تست
بعد پنجره جلو میرود:
- ۲ سال بعدی برای توسعه
- ۶ ماه بعدی برای تست
و این فرایند تکرار میشود.
ایده اصلی این است که استراتژی مرتباً با دادههای گذشته تنظیم شود و سپس روی دورهای که هنگام تنظیم ندیده، آزمایش شود.
CFA Institute نیز Walk-Forward یا Rolling Window Backtesting را یکی از روشهای رایج برای نزدیکتر کردن فرایند بکتست به فرایند سرمایهگذاری واقعی معرفی میکند.
این روش کامل و بدون نقص نیست، اما نسبت به انتخاب یک پارامتر بر اساس کل تاریخچه، اطلاعات بیشتری درباره پایداری استراتژی میدهد.
۱۰. حساسیت استراتژی را بررسی کنید
فرض کن استراتژی تو با:
حد ضرر = ۲۰ پیپ
عملکرد خوبی دارد.
حالا بررسی کن اگر:
- ۱۸ پیپ
- ۱۹ پیپ
- ۲۱ پیپ
- ۲۲ پیپ
باشد چه اتفاقی میافتد.
اگر همه این مقادیر عملکردی نزدیک به هم داشته باشند، استراتژی احتمالاً نسبت به این پارامتر حساسیت شدیدی ندارد.
اما اگر:
- ۱۹ پیپ = عالی
- ۲۰ پیپ = فوقالعاده
- ۲۱ پیپ = ضعیف
- ۲۲ پیپ = بسیار ضعیف
باشد، باید محتاط باشی.
چون ممکن است عملکرد استراتژی به یک مقدار بسیار خاص وابسته شده باشد.
در یک استراتژی مقاوم، معمولاً انتظار داریم تغییرات منطقی و کوچک در پارامترها باعث فروپاشی کامل عملکرد نشود.
۱۱. استراتژی را سادهتر کنید، نه پیچیدهتر
یکی از بهترین سؤالها هنگام بهینهسازی این است:
آیا میتوانم با قوانین کمتر، تقریباً همان نتیجه را بگیرم؟
فرض کن دو نسخه داری.
نسخه اول:
- ۹ قانون ورود
- ۴ فیلتر
- ۳ شرط خروج
- ۲ شرط مربوط به زمان
- ۱ فیلتر نوسان
نسخه دوم:
- ۴ قانون اصلی
و هر دو عملکرد مشابهی دارند.
نسخه دوم احتمالاً انتخاب منطقیتری است.
سادهتر بودن به این معنی نیست که همیشه بهتر است؛ اما هرچه یک استراتژی وابستگی بیشتری به شرایط خاص و پارامترهای متعدد داشته باشد، مدیریت و ارزیابی پایداری آن دشوارتر میشود.
بهینهسازی نباید مسابقهای برای اضافه کردن قانون جدید باشد.
گاهی بهترین بهینهسازی، حذف یک قانون غیرضروری است.
۱۲. بررسی کنید کدام معاملات واقعاً به استراتژی ارزش اضافه میکنند
فرض کن استراتژی تو ۳۰۰ معامله دارد.
حالا معاملات را بر اساس شرایط مختلف بررسی کن.
مثلاً:
- معاملات رونددار: +۴۵R
- معاملات رنج: -۱۸R
- معاملات سشن لندن: +۳۲R
- معاملات سشن نیویورک: +۹R
- معاملات سشن آسیا: -۱۴R
این دادهها به تو سرنخ میدهند.
اما هنوز نباید نتیجهگیری نهایی کنی.
ممکن است مثلاً عملکرد ضعیف سشن آسیا فقط به دلیل نمونه کوچک باشد.
پس مرحله بعدی این است که همان فرضیه را روی دادههای جدید آزمایش کنی.
اگر حذف یک شرایط خاص در چند دوره مختلف باعث بهبود عملکرد شود، آنوقت شواهد بیشتری برای یک بهینهسازی واقعی داری.
۱۳. عملکرد را در شرایط مختلف بازار بررسی کنید
یکی از اشتباهات رایج این است که استراتژی را فقط با یک عدد کلی ارزیابی کنیم.
فرض کن استراتژی در مجموع:
+۳۰٪
بازدهی داشته است.
اما وقتی دقیقتر نگاه میکنی:
- بازارهای رونددار: +۴۵٪
- بازارهای رنج: -۱۵٪
- نوسان بالا: +۲۵٪
- نوسان پایین: -۱۰٪
این اطلاعات بسیار مهمتر از عدد ۳۰ درصد هستند.
چون حالا میدانی استراتژی در چه شرایطی بهتر کار میکند.
پژوهشهای جدید نیز روی این موضوع تأکید دارند که خلاصه کردن عملکرد استراتژی در یک عدد واحد میتواند تفاوت عملکرد در رژیمهای مختلف بازار را پنهان کند.
بنابراین بهینهسازی میتواند بهجای اینکه یک استراتژی را برای همه شرایط بازار مناسب کند، کمک کند بفهمی:
چه زمانی نباید از این استراتژی استفاده کنم؟
این سؤال گاهی از پیدا کردن یک فیلتر جدید ارزشمندتر است.
۱۴. حد ضرر را فقط برای کاهش تعداد ضررها تغییر ندهید
یک اشتباه رایج:
حد ضرر زیاد است.
پس آن را نزدیکتر میکنیم.
در نتیجه:
- ضررهای بزرگ کمتر میشوند.
- اما تعداد استاپها بیشتر میشود.
حالا ممکن است وینریت کاهش پیدا کند.
یا برعکس، حد ضرر را خیلی بزرگ کنیم تا تعداد استاپها کم شود، اما اندازه ضررها افزایش پیدا کند.
بنابراین حد ضرر را نباید فقط با معیار تعداد معاملات برنده یا بازنده ارزیابی کرد.
باید بررسی شود:
- میانگین سود
- میانگین ضرر
- امید ریاضی
- دراودان
- وینریت
- تعداد معاملات
در کنار هم چه تغییری کردهاند.
۱۵. تارگت را فقط برای افزایش وینریت تغییر ندهید
همین مسئله درباره تارگت هم وجود دارد.
مثلاً:
تارگت نزدیکتر
ممکن است:
- وینریت را افزایش دهد.
- اما میانگین سود را کاهش دهد.
تارگت دورتر
ممکن است:
- وینریت را کاهش دهد.
- اما میانگین سود معاملات برنده را افزایش دهد.
پس سؤال درست این نیست:
کدام تارگت بیشترین وینریت را دارد؟
بلکه:
کدام ساختار خروج در تعداد مناسبی از معاملات، بعد از هزینهها و با در نظر گرفتن ریسک، نتیجه بهتری ایجاد میکند؟
۱۶. مدیریت ریسک را از خود استراتژی جدا کنید
گاهی تریدر تصور میکند استراتژی خود را بهینه کرده، در حالی که فقط روش مدیریت سرمایه را تغییر داده است.
مثلاً:
استراتژی ثابت میماند.
اما:
- ریسک هر معامله از ۱٪ به ۰.۵٪ تغییر میکند.
- بعد از دو ضرر حجم کاهش پیدا میکند.
- بعد از سه برد حجم افزایش پیدا میکند.
اینها تغییرات مهمی هستند، اما باید جداگانه بررسی شوند.
بهتر است مشخص کنی:
بهینهسازی سیگنال
یا:
بهینهسازی مدیریت ریسک
یا:
بهینهسازی اجرای معامله
هر کدام مسئله متفاوتی هستند.
۱۷. بهینهسازی را با یک معیار مشخص شروع کنید
قبل از هر تغییری مشخص کن چه چیزی را میخواهی بهتر کنی.
مثلاً:
هدف من کاهش حداکثر دراودان است.
یا:
هدف من افزایش امید ریاضی است.
یا:
هدف من کاهش معاملات ضعیف است.
یا:
هدف من حفظ سودآوری و کاهش تعداد معاملات است.
اگر هدف مشخص نباشد، ممکن است هر بار با دیدن یک عدد بهتر، استراتژی را تغییر دهی.
این همان چیزی است که باعث میشود فرآیند بهینهسازی به یک چرخه بیپایان تبدیل شود.
یک مثال از بهینهسازی درست
فرض کنیم استراتژی اولیه تو این نتایج را دارد:
- ۳۰۰ معامله
- وینریت: ۴۵٪
- پروفیت فاکتور: ۱.۲۵
- حداکثر دراودان: ۱۸٪
- نتیجه: +۲۲R
بعد از تحلیل متوجه میشوی معاملات در بازار بسیار کمنوسان عملکرد ضعیفی دارند.
یک فیلتر ساده برای شناسایی این شرایط تعریف میکنی.
حالا نسخه جدید:
- ۲۴۰ معامله
- وینریت: ۴۷٪
- پروفیت فاکتور: ۱.۴۱
- حداکثر دراودان: ۱۴٪
- نتیجه: +۲۴R
در نگاه اول نسخه جدید بهتر است.
اما هنوز کار تمام نشده.
حالا باید ببینی:
آیا همین بهبود در دادههای خارج از نمونه هم دیده میشود؟
اگر بله، آیا در چند دوره مختلف تکرار شده؟
اگر بله، آیا با تغییر کوچک پارامتر فیلتر عملکرد کاملاً خراب میشود؟
اگر نه، آیا استراتژی همچنان ساده و قابل اجراست؟
اگر پاسخها مناسب باشند، میتوان گفت شواهد بهتری برای یک بهینهسازی واقعی داریم.
یک مثال از بهینهسازی غلط
حالا فرض کن تریدر ۵۰۰ حالت مختلف از استراتژی را آزمایش میکند.
در نهایت بهترین حالت:
- سود ۸۵٪
- وینریت ۷۲٪
- دراودان ۶٪
را انتخاب میکند.
مشکل چیست؟
این نتیجه بهتنهایی فوقالعاده به نظر میرسد.
اما اگر از میان ۵۰۰ حالت، بهترین نتیجه را انتخاب کرده باشی، بخشی از این برتری میتواند حاصل شانس و انتخاب از میان گزینههای متعدد باشد.
اگر همین نسخه در دادههای جدید ضعیف شود، احتمالاً استراتژی بیشازحد برای گذشته بهینه شده است.
این موضوع در ادبیات پژوهشی با مسئله multiple testing و backtest overfitting ارتباط دارد. هرچه گزینههای بیشتری را امتحان کنی و فقط بهترین نتیجه را انتخاب کنی، احتمال پیدا کردن یک نتیجه ظاهراً عالی بهصورت تصادفی بیشتر میشود.
یک فرآیند عملی برای بهینهسازی استراتژی
اگر بخواهی از فردا استراتژی خودت را بهینه کنی، میتوانی این مسیر را اجرا کنی.
مرحله اول: نسخه فعلی را ثبت کن
تمام قوانین فعلی را بنویس.
مرحله دوم: حداقل چند صد معامله یا یک نمونه مناسب جمع کن
عدد ثابت و جادویی وجود ندارد؛ هدف این است که داده کافی برای بررسی داشته باشی.
مرحله سوم: نقاط ضعف را پیدا کن
مثلاً:
- سشن خاص
- نماد خاص
- شرایط بازار
- ساعت ورود
- نوع ستاپ
- خروج
مرحله چهارم: فقط یک فرضیه بساز
مثلاً:
فکر میکنم معاملات در بازار کمنوسان باعث کاهش عملکرد میشوند.
مرحله پنجم: یک تغییر منطقی ایجاد کن
مثلاً:
در شرایط کمنوسان معامله نمیکنم.
مرحله ششم: نسخه جدید را روی دادههای توسعه بررسی کن
ببین آیا واقعاً عملکرد بهبود پیدا کرده است.
مرحله هفتم: روی دادههای دیدهنشده تست کن
این مرحله را جدی بگیر.
مرحله هشتم: حساسیت را بررسی کن
ببین اگر پارامتر کمی تغییر کند، عملکرد همچنان قابل قبول است یا خیر.
مرحله نهم: هزینهها را اضافه کن
اسپرد، کمیسیون، سواپ و در صورت امکان اسلیپیج.
مرحله دهم: فوروارد تست انجام بده
قبل از اینکه نتیجهگیری نهایی کنی، استراتژی را در شرایط جدید بازار اجرا کن.
کانون ترید چطور میتواند در بهینهسازی استراتژی کمک کند؟
برای بهینهسازی استراتژی، قبل از هر چیز باید بدانیم استراتژی الان دقیقاً کجا خوب و کجا ضعیف عمل میکند.
اگر تاریخچه معاملات در متاتریدر باقی بماند ولی هیچوقت آن را بهصورت منظم بررسی نکنی، احتمالاً بهینهسازی تو بیشتر بر اساس حافظه و چند معامله اخیر انجام میشود.
کانون ترید میتواند این مرحله را سادهتر کند.
با بارگذاری گزارش معاملات، میتوانی تاریخچه معاملاتت را در یک محیط منظم ببینی و برای بررسی عملکرد از اطلاعاتی مثل:
- سود و زیان
- بالانس
- وینریت
- فهرست معاملات
- جزئیات معاملات
- نسبت ریسک به ریوارد معاملات بارگذاریشده
- تقویم ماهانه سود و زیان
- گزارش هفتگی
استفاده کنی.
مثلاً اگر احساس میکنی:
استراتژی من در بعضی روزها ضعیفتر است.
بهجای اینکه صرفاً چند معامله را به خاطر بیاوری، میتوانی تاریخچه معاملات را بررسی کنی و ببینی آیا واقعاً چنین الگویی در دادههای معاملاتی تو دیده میشود یا خیر.
یا اگر فکر میکنی:
شاید سود من فقط مربوط به یک دوره خاص باشد.
تقویم و نمودارهای سود و زیان میتوانند به تو کمک کنند عملکردت را در طول زمان ببینی.
اما یک نکته مهم وجود دارد:
کانون ترید خودش تصمیم نمیگیرد کدام قانون استراتژی را تغییر بدهی.
داده به تو سرنخ میدهد، اما تفسیر آن با توست.
مثلاً اگر ببینی یک نماد در گذشته ضرردهتر بوده، نمیتوانی فقط بر اساس همین موضوع نتیجه بگیری که باید آن نماد را برای همیشه حذف کنی. ممکن است تعداد معاملات کم باشد، شرایط بازار متفاوت بوده باشد یا نتیجه مشاهدهشده تصادفی باشد.
بهینهسازی باید با فرضیه، داده، تست و اعتبارسنجی انجام شود.
کانون ترید در بخش ثبت و تحلیل دادههای معاملات کمک میکند تا این فرآیند از حالت حدس زدن خارج شود و اطلاعات منظمتری برای تصمیمگیری داشته باشی.
اشتباهات رایج در بهینهسازی استراتژی
تغییر استراتژی بعد از چند معامله
چند ضرر پشت سر هم به معنی خراب شدن استراتژی نیست.
تمرکز فقط روی وینریت
وینریت بالا الزاماً سودآوری بالاتر ایجاد نمیکند.
انتخاب بهترین پارامتر
اگر فقط یک مقدار بسیار خاص عملکرد عالی دارد، باید نسبت به بیشبرازش محتاط باشی.
اضافه کردن فیلترهای زیاد
هر فیلتر جدید باید یک فرضیه مشخص و قابل آزمایش داشته باشد.
نادیده گرفتن هزینه معاملات
نتیجه بدون هزینه ممکن است با نتیجه واقعی تفاوت زیادی داشته باشد.
استفاده از کل داده برای طراحی و ارزیابی
اگر داده تست را هنگام طراحی دیده باشی، دیگر واقعاً داده دیدهنشده نیست.
تغییر همزمان چند چیز
اگر چند متغیر را همزمان تغییر دهی، نمیفهمی کدام تغییر باعث نتیجه شده است.
دنبال کردن حداکثر سود
بهترین استراتژی لزوماً استراتژی با بیشترین سود تاریخی نیست.
از کجا بفهمیم استراتژی واقعاً بهتر شده است؟
بعد از بهینهسازی، این سؤالات را از خودت بپرس:
- آیا سودآوری بهتر شده؟
- آیا دراودان کاهش یافته؟
- آیا امید ریاضی بهتر شده؟
- آیا پروفیت فاکتور بهتر شده؟
- آیا عملکرد بعد از هزینهها همچنان مناسب است؟
- آیا تعداد معاملات هنوز کافی است؟
- آیا استراتژی بیشازحد پیچیده شده؟
- آیا پارامترها به یک مقدار بسیار خاص وابستهاند؟
- آیا نتیجه روی دادههای دیدهنشده هم تکرار شده؟
- آیا در دورههای مختلف بازار همچنان قابل قبول است؟
اگر پاسخ چند سؤال آخر منفی باشد، ممکن است چیزی که بهینه کردهای در واقع فقط بکتست را زیباتر کرده باشد.
چکلیست بهینهسازی استراتژی معاملاتی
قبل از اینکه نسخه جدید استراتژی را وارد حساب واقعی کنی، این موارد را بررسی کن:
- قوانین نسخه فعلی کاملاً مشخص هستند.
- مشکل اصلی استراتژی مشخص شده است.
- فقط یک فرضیه در هر مرحله آزمایش شده است.
- تغییرات به دلیل منطقی و قابل توضیح دارند.
- تعداد معاملات برای مقایسه مناسب است.
- سود و زیان تنها معیار تصمیمگیری نیست.
- دراودان بررسی شده است.
- امید ریاضی و پروفیت فاکتور بررسی شدهاند.
- هزینههای معاملاتی در نظر گرفته شدهاند.
- پارامترها بیشازحد دقیق نشدهاند.
- عملکرد در چند شرایط بازار بررسی شده است.
- دادههای خارج از نمونه وجود دارد.
- فوروارد تست انجام شده است.
- تغییرات کوچک در پارامترها باعث فروپاشی عملکرد نمیشوند.
- تعداد قوانین بیشازحد زیاد نشده است.
- نتیجه به چند معامله استثنایی وابسته نیست.
سوالات متداول
بهترین روش برای بهینهسازی استراتژی معاملاتی چیست؟
بهترین روش یک فرمول ثابت ندارد. معمولاً باید ابتدا ضعف استراتژی را با داده واقعی پیدا کرد، سپس یک تغییر مشخص را بهصورت جداگانه آزمایش کرد و بعد عملکرد آن را روی دادههای خارج از نمونه و در فوروارد تست بررسی کرد.
آیا هرچه فیلتر بیشتری به استراتژی اضافه کنیم بهتر میشود؟
خیر. فیلترهای زیاد میتوانند استراتژی را بیشازحد پیچیده و نسبت به دادههای گذشته حساس کنند. هدف، پیدا کردن سادهترین ساختاری است که مزیت موردنظر را حفظ کند.
آیا میتوان با تغییر حد ضرر استراتژی را بهتر کرد؟
بله، اما تغییر حد ضرر باید با معیارهایی مثل امید ریاضی، میانگین سود و ضرر، دراودان و هزینه معاملات بررسی شود. کاهش تعداد استاپها بهتنهایی به معنی بهتر شدن استراتژی نیست.
چند بار میتوان استراتژی را بهینه کرد؟
عدد مشخصی وجود ندارد، اما هرچه تعداد آزمایشها و تغییرات زیادتر شود، خطر انتخاب یک نتیجه خوب صرفاً به دلیل شانس و بیشبرازش بیشتر میشود. بنابراین بهتر است قبل از آزمایش، فرضیه و معیار ارزیابی مشخص داشته باشی.
آیا بکتست برای بهینهسازی کافی است؟
خیر. بکتست ابزار مهمی است، اما نتیجه آن میتواند تحت تأثیر بیشبرازش، انتخابگری در دادهها و نادیده گرفتن هزینههای واقعی قرار بگیرد. تست خارج از نمونه و فوروارد تست برای بررسی تعمیمپذیری استراتژی اهمیت دارند.
آیا باید استراتژی را برای بیشترین سود ممکن بهینه کنیم؟
نه. سود بیشتر در بکتست بهتنهایی هدف مناسبی نیست. استراتژی باید از نظر سودآوری، ریسک، دراودان، ثبات، هزینه و سادگی اجرا ارزیابی شود.
اگر بعد از بهینهسازی تعداد معاملات کمتر شود، یعنی استراتژی بهتر شده؟
نه لزوماً. کمتر شدن معاملات میتواند خوب یا بد باشد. باید ببینی آیا معاملات حذفشده واقعاً کیفیت پایینی داشتهاند و آیا بهبود مشاهدهشده در دادههای جدید هم ادامه دارد.
جمعبندی
بهینهسازی استراتژی معاملاتی یعنی پیدا کردن نسخهای مقاومتر و منطقیتر از روش معاملاتی، نه ساختن زیباترین بکتست ممکن.
اگر فقط به دنبال بیشترین سود تاریخی باشی، احتمال زیادی وجود دارد که وارد چرخهای از تغییر پارامترها و اضافه کردن فیلترها شوی و در نهایت استراتژیای بسازی که گذشته را عالی توضیح میدهد اما آینده را نه.
بهینهسازی اصولی مسیر متفاوتی دارد:
استراتژی فعلی → پیدا کردن ضعف → ساخت فرضیه → تغییر محدود → تست → داده خارج از نمونه → بررسی حساسیت → فوروارد تست
در این مسیر چند اصل را همیشه به خاطر داشته باش:
- سود بیشتر همیشه به معنی استراتژی بهتر نیست.
- وینریت بهتنهایی معیار خوبی نیست.
- پارامتر دقیقتر لزوماً پارامتر بهتر نیست.
- فیلتر بیشتر لزوماً مزیت بیشتر ایجاد نمیکند.
- بکتست موفق بهتنهایی کافی نیست.
- هزینه معاملات باید در ارزیابی لحاظ شود.
- دادههای دیدهنشده اهمیت زیادی دارند.
- سادگی و پایداری معمولاً از پیچیدگی و عملکرد فوقالعاده تاریخی ارزشمندترند.
و مهمتر از همه:
قبل از اینکه استراتژی را تغییر بدهی، اول با داده مشخص کن دقیقاً چه مشکلی دارد.
اگر از تاریخچه معاملات واقعی خودت داده کافی داشته باشی، میتوانی بهجای اینکه بر اساس چند معامله اخیر تصمیم بگیری، ببینی ضعف واقعی استراتژی کجاست. کانون ترید برای همین بخش میتواند به تو کمک کند؛ یعنی تاریخچه معاملات را منظمتر ببینی، عملکرد را در طول زمان بررسی کنی و از دادههای واقعی حساب برای پیدا کردن الگوها و نقاط قابل بررسی استفاده کنی.
کانون ترید | ترید از شما، ثبت و تحلیلش با ما.
معاملاتت رو خودکار ژورنال کن
گزارش MT4/MT5 رو آپلود کن و اشتباهات تکراریت، وینریت و پایبندی به پلن رو یکجا ببین. نسخه رایگان داره.

دیدگاهها
هنوز دیدگاهی ثبت نشده؛ اولین نفر باش!