چگونه برازش ناخواسته یا اصطلاحا overfitting، در بکتست یک استراتژی معاملاتی را تشخیص دهیم؟
در مقالهء پیشین از سری مقالات مرتبط با بهینه یابی به شرح و بررسی «برازش، مرگ پنهان یک استراتژی معاملاتی» پرداختیم در این مقاله به شرح و بررسی «برازش ناخواسته یا اصطلاحا overfitting، در بکتست یک استراتژی معاملاتی» میپردازیم.
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف برای سنجش بازده استراتژیهای معاملاتی میتوانید از سفارش کد پایتون، سفارش کد mql و … برای کد کردن و بهینهیابی استراتژیهای خود استفاده کنید. و در عین حال سوای امکان سفارش اکسپرت میتوانید از سفارش اندیکاتور برای دریافت یک نمایش گرافیکی از محاسبات استراتژی خود بهره ببرید.
فهرست مقاله
استفاده از یک منبع معتبر آموزش بهینهیابی میتواند بسیار به پروسهء بهینهیابی کمک کند. همچنین میتوان از سفارش کد بهینهیابی و نرم افزار بهینهیابی نیز بهره برد. همانطور که در مقالهء قبلی بیان کردیم برازش ناخواسته در طی چرخه طراحی و توسعه یک استراتژی برای معاملات الگوریتمی یکی از بزرگترین مخاطراتی است که با آن مواجه هستیم چرا که ممکن است این پدیده موجب ضررهای قابل توجهی در معاملات واقعی شود.
در این مقاله سعی بر آن بوده تا شما را با برخی روشهای تشخیص برازش در عملکرد استراتژی آشنا سازیم. در کنار قوانین اصلی هر استراتژی پارامترهایی وجود دارند از جمله بازهء محاسباتی اندیکاتورها، حد ضرر و یا حد سود و پارامتر های دیگر که باید در مورد آنها تصمیم بگیرید. به طور معمول پارامترهای منتخب تاثیر قابل ملاحظهای بر روی نتایج بک تست شما خواهند داشت و با اضافه کردن هر پارامتر جدید خطر برازش به طرز قابل توجهی افزایش پیدا خواهد کرد.
از اتکای بیش از حد بر روی پارامترها بپرهیزید
برای پرهیز از گرفتار شدن در دام برازش یکی از اولین موضوعاتی که باید بررسی کنید کیفیت پارامتر های مورد استفاده میباشد. به این منظور با تغییر پارامترهای استراتژی خود تاثیر آن را بر روی معیار مطلوبیت در طی دوره بک تست بسنجید.
برای مثال در صورتی که استراتژی شما عملکرد خوبی با استفاده از پریود 14 برای اندیکاتور RSI از خود نشان داده باید نتایجی نسبتا مشابه را با دوره ی محاسباتی 21 و 7 نیز داشته باشد. در غیر این صورت عملکرد استراتژی شما با احتمال بالایی دچار overfitting یا برازش است. به نمودار زیر رابطهء میان تغییر یکی از پارامتر ها و سود کل را آشکار می کند توجه کنید. هرچند سود کل معیار مورد اعتمادی برای پیدا کردن پارامتر های منتخب نیست اما این مثال به درک شما از این روش تشخیص برازش عملکرد کمک خواهد کرد.
همانطور که مشاهده میکنید در نمودار سمت چپ سود استراتژی (محور عمودی) دارای وابستگی زیادی به مقدار پارامتر انتخاب شده(محور افقی) میباشد این وابستگی اعتبار عملکرد را کاهش میدهد بهتر آن است که تا پیدا کردن نموداری مانند نمودار سمت راست بر روی قوانین اصلی استراتژی خود کار کرده و کیفیت آنها را افزایش دهید. بیشک برای این روش تنها واژه وابستگی کافی نیست بلکه باید محاسباتی کمی برای درک چگونگی تاثیر پارامتر بر معیار مطلوب صورت پذیرد که این موضوع در حیطه مهارتهای کارشناس بهینهیابی خواهد بود. در صورتی که استراتژی شما دارای بیش از یک پارامتر است تست را بر روی پارامتر ها انجام داده و محدوده پایدار پیدا کنید.
در نمودار بالا من تستی برای تشخیص وابستگی سود کل با دو پارامتر استراتژی انجام دادهام. سود ها به شکل رنگ کد شدهاند، در طیف رنگ های نمودار رنگ سبز نشان دهنده سود و رنگ قرمز نشان دهنده ضرر است.
توصیه من به شما این است که اگر سود کل را به عنوان معیار مطلوبیت خود برگزیدهاید جفت پارامتری که موجب بالاترین سود شده را به عنوان نتیجه نهایی انتخاب نکنید(چنین انتخابی را با رنگ سبز پررنگ در نمودار بالا مشاهده میکنید.) چرا که ممکن است چنین نتیجه ای تنها مبتنی بر شانس باشد و با احتمال قابل توجهی استراتژی در معاملات واقعی عملکرد مشابه نخواهد داشت. راه حل بهتر آن است که جفت پارامتری را انتخاب کنید که در میانه منطقهای سبز رنگ قرار دارد. ممکن است که این بهترین راه حل نباشد اما شانس عملکرد مشابه در معاملات واقعی بسیار بالا تر از شیوه اشتباهی است که بیان کردیم.
بهینهیابی پیشروی پارامترها
شما میتوانید تست پایداری که بدان پرداختیم را بر روی قسمتهای مختلفی از دادههای گذشته خود اجرا کنید. برای این موضوع مانند گذشته سعی در پیدا کردن مناطق پایدار در نتایج داشته باشید
برای مثال هر یک سال در دادههای گذشته را تست کنید در صورتی که این مناطق پایدار از سالی به سال دیگر دچار تفاوتهای چشمگیری هستند به احتمال زیاد عملکرد استراتژی شما دچار برازش است. اما در صورتی که منطقه نسبتا مشابه یا به عبارت دیگر محدوده مشخصی از پارامترها که دارای ویژگی پایداری در هر یک سال نیز هست در تمام سالها تکرار میشود میتوان نتایج مشابهی را در معاملات واقعی نیز انتظار داشت.
اضافه کردن نویز به داده
تست پایداری یکی از راههای تشخیص برازش در عملکرد استراتژی بود راه دیگری که برای تشخیص این موضوع مورد استفاده قرار میگیرد اضافه کردن نویز به دادههای قیمتی است. با تغییر و دست بردن جزئی در دادههای اصلی بازار مطمئنا خیلی سریع به نقاط ضعف استراتژی خود پی خواهید برد شیوه انجام این کار را در مقالات بعدی بررسی خواهیم کرد. همچنین در کنار اضافه کردن نویز به دادههای بازار میتوانید پروسه روند زدایی را بر روی آن انجام داده یا مقداری نوسان به دادههای بازار اضافه کنید. در صورتی که استراتژی تنها بر روی دادههای قیمتی خام عملکرد خوبی از خود نشان میدهد به قطع میتوان گفت عملکرد استراتژی شما دچار برازش و نقص هایی است.
آیا در تصویر بالا تفاوت میان دادههای قیمتی خام و دادههای دارای نویز را متوجه شدید؟ به شخصه میتوانم بگویم تشخیص تفاوت این دو کار دشواری است بنابراین استراتژی باید عملکردی نسبتا مشابه بر روی هر دو داده داشته باشد اما به نمودار زیر توجه کنید.
به نظر میرسد عملکرد استراتژی بر روی دادههای دارای نویز افت قابل توجهی داشته است این یکی دیگر از نشانههای است که به ما در مورد وجود برازش هشدار میدهد و این استراتژی با احتمال زیاد در معاملات واقعی عملکردی مشابه نخواهد داشت.توصیه میکنم در صورت شکست در هر یک از این تستها به بوم طراحی بازگشته و تلاش خود را برروی بهبود منطق استراتژی خود متمرکز سازید. کاربرد یک منبع مناسب آموزش بهینهیابی میتواند به طور قابل توجهای به پروسه بهینهیابی کمک کند. همچنین میتوان از سفارش کد بهینهیابی و نرم افزار بهینهیابی نیز بهره برد.
تست پایداری بر روی بازارهای مشابه
اگر به این مرحله رسیدهاید شما در گذراندن تستهای پایداری و نویز موفق بودهاید اما متاسفانه حتی در این مرحله اطمینان کاملی از عملکرد مشابه استراتژی در آینده و بر روی دادههای خارج از نمونه وجود ندارد. برای اطمینان از کارکرد درست استراتژی آن را بر روی سهام متفاوت و یا داراییهای قابل معامله دیگر بسنجید یک استراتژی مطلوب در 70 تا 80 درصد تستها سودده خواهد بود. انتظار یک منحنی بی نقص سود در هر یک از این سهام یا داراییها را نداشته باشید اما حداقل سود کم و یا سربه سر برای بیشتر آنها مورد انتظار است.
یک استراتژی با کیفیت پیوسته بدون نیاز به تنظیم پارامترها نتایجی پایدار در بازارها و سهام مختلف خواهد داشت. مگر آنکه با یک استراتژی گوشه مواجه باشیم که در مقالات قبل به آن اشاره کردیم.
ایجاد تاخیر در سفارش های ورود و خروج
یکی دیگر از راههای تشخیص برازش ایجاد تاخیر در سفارشهای ورود و خروج به میزان یک یا دو کندل است در صورتی که این کار نتایح مطلوب استراتژی را از بین ببرد شما نشانهای محکم مبنی بر وجود برازش خواهید داشت. رد شدن استراتژی در چنین تستی حاکی از آن است که وابستگی شما به زمانبندی دقیق بیش از اندازه است. یک سیگنال ورود با کیفیت باید در مقابل زمان تا اندازه مشخصی حاشیه و انعطاف از خود نشان دهد. بنابراین زمانی بندی دقیق نباید نتایج عملکرد استراتژی تحت تاثیر قرار دهد.
جابجایی سفارشهای شرطی
در صورتی که استراتژی شما از سفارشهای شرطی استفاده میکند میتوانید مقداری نویز به سطوح مورد استفاده برای سفارشها اضافه کنید. پس به جای شروطی مانند ” خرید برروی بالاترین قیمت کندل بعدی” میتوانید درصد کمی از نویز بر مبنای نوسان را به این سفارشها تزریق کنید. برای مثال نتایج یک استراتژی خرید یا فروش بر روی بالاترین قیمت نوسان قبل باید نتایجی مشابه یا نزدیک با حالتی داشته باشد که به این سطوح کمی نویز اضافه شده. این تست از اعتبار بسیار بالایی برای استراتژیهای تشخیص الگو برخوردار است.
درجه اوج نمودار بازدهها
بر اساس آموزش بهینهیابی به طور معمول برای ارائه برجستگی، از درجه اوج مضاعف استفاده میشود که مشاهده یک توزیع غیر نرمال را آسان تر میکند KE = K –3 به طوری که K معادل درجه اوج معمول و KE معادل درجه اوج مضاعف میباشد.
درصورتی که درجه اوجی با مقدار بالاتر از 7 یا 8 برای نمودار توزیع بازده استراتژی مشاهده کردید باید بلافاصله به برازش عملکرد استراتژِی خود مشکوک شوید. چرا که به زبان ساده این موضوع نشان دهنده وجود تعداد زیادی معامله با سود پایانی یکسان است که چنین اتفاقی به طور معمول در معاملات واقعی نادر است.
– – –
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف، سوای این بحث که میتوان استراتژیهای معاملاتی خود را به وسیلهی سفارش کد پایتون یا سفارش کد mql و سفارش اکسپرت کد کرد و در پروسهی بک تست اعتبار سنجی نمود. همچنین میتوان از طریق سفارش اندیکاتور به آنها یک جنبهی نمایشی نمایانتری برای تسهیل تحلیل در سابقهی نماد داد.
– – –
در مقالهی بعدی به بررسی «بهینهیابی و بکتست، یک روح در دو بدن» میپردازیم.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.