
بهینهسازی گامبهگام (Walk-Forward Optimization)
آوریل 6, 2025
توضیح مقادیر پیشرفته واکفوروارد که میتوان در فیلترها یا دیتابانک استفاده کرد
آوریل 6, 2025- بررسی استحکام استراتژی
اگر استراتژی از آزمون ماتریس واکفوروارد سربلند بیرون بیاید، به این معناست که با کمک بازبهینهسازی پارامترها، توانایی انطباق با طیف وسیعی از شرایط بازار را دارد. - یافتن بازه زمانی بهینه برای بازبهینهسازی استراتژی
این ابزار به شما کمک میکند تا بهترین تناوب بهینهسازی را شناسایی کنید.
در بهینهسازی واکفوروارد معمول، استراتژی با یک تناوب مشخص (مثلاً هر ۳۰۰ روز) بازبهینهسازی شده و عملکرد آن بررسی میشود. اما چطور میتوانیم بدانیم بهترین تناوب برای بازبهینهسازی چیست؟ ما تنها زمانی میتوانیم به این پاسخ برسیم که از ابزار ماتریس واکفوروارد استفاده کنیم که ترکیبهای مختلف بازههای بهینهسازی را تست میکند.
ماتریس واکفوروارد چیست؟
در واقع، این ابزار مجموعهای از تستهای واکفوروارد است که با تعداد مختلفی از دورههای بازبهینهسازی و درصدهای مختلف دادههای خارج از نمونه (Out of Sample – OOS) انجام میشود.
نتیجه ماتریس واکفوروارد میتواند مانند تصویر زیر باشد – که نتیجه کلی را همراه با بازه زمانی بهینه برای بازبهینهسازی نشان میدهد.
همچنین یک نمودار سهبعدی از امتیازات (نتایج استحکام) برای تمامی ترکیبهای OOS و تعداد اجراهای انجامشده در ماتریس WF را نمایش میدهد.
این نمودار و جدول در ادامه این مقاله توضیح داده خواهند شد، بیایید ابتدا با یک مثال کامل شروع کنیم.
مثال ماتریس واکفوروارد در StrategyQuant
اجرای ماتریس واکفوروارد تقریباً به سادگی اجرای بهینهسازی WF است. در ادامه، کل فرآیند را توضیح میدهم.
فرآیند استفاده از ماتریس WF تقریباً مشابه WF Optimization است، بنابراین در این مثال تنها به تفاوتها پرداخته میشود.
برای جزئیات بیشتر درباره مراحل توضیحدادهنشده، میتوانید به مثال واکفوروارد مراجعه کنید.
گام ۱: بارگذاری یک استراتژی برای بهینهسازی
ما باید به پنجره Optimizer (بهینهساز) برویم و استراتژیای که میخواهیم بهینهسازی کنیم را بارگذاری کنیم.
این بار به حالت Walk-Forward Matrix (ماتریس واکفوروارد) سوئیچ میکنیم و پارامترها را تنظیم میکنیم. ماتریس WF مجموعهای از بهینهسازیهای واکفوروارد تکی را اجرا میکند، بنابراین ما باید مشخص کنیم که کدام تعداد دورهها (Runs) و درصد OOS را میخواهیم در آن بررسی کنیم. برای این منظور میتوانیم از فیلدهای Start (شروع)، Stop (پایان) و Increment (گام) استفاده کنیم.
در ماتریس، ما باید تعیین کنیم که کدام ترکیبها را میخواهیم برای بهینهسازی واکفوروارد تست کنیم. در مثال ما، از دورههای 5، 7، 9، 11، 13، 15 و درصد OOSهای 20، 30، 40 استفاده میکنیم.
نکته!
محاسبه ماتریس واکفوروارد بسیار زمانبر است، زیرا باید یک بهینهسازی کامل واکفوروارد برای هر ترکیب موجود در ماتریس اجرا شود. بنابراین، بهتر است که تعداد گامها زیاد نباشد – حداقل اگر میخواهید نتیجه را سریعتر دریافت کنید.
در نسخه جدید StrategyQuant نوعی از واکفوروارد به نام “Simulation” (شبیهسازی) اضافه شده که میتواند سرعت اجرای WF Optimization یا ماتریس WF را تا ۱۰ تا ۱۰۰ برابر افزایش دهد.
گام ۲: تنظیم مقادیر بهینهسازی
گام ۳: پیکربندی اجرای واکفوروارد
این تنظیمات مشابه تنظیماتی است که در مثال واکفوروارد انجام دادهایم.
اکنون میتوانیم روی دکمه Start (شروع) کلیک کنیم تا فرآیند تست آغاز شود.
گام ۴: بررسی نتایج
همانطور که پیشتر گفته شد، تحلیل ماتریس واکفوروارد میتواند بسیار طول بکشد. بنابراین باید تا پایان اجرای آن منتظر بمانید. برای تسریع در تحلیل، میتوانید از پارامترها، گامها، و ترکیبهای WF کمتر استفاده کنید تا تعداد تستها کاهش یابد.
پس از پایان بهینهسازی، یک نتیجه جدید مربوط به ماتریس واکفوروارد در دیتابانک دریافت خواهیم کرد.
وقتی فرآیند کامل شود، فقط دو نتیجه در دیتابانک مشاهده میشود – استراتژی اصلی (Original strategy) و نتیجه ماتریس واکفوروارد.
نتیجه ماتریس WF در دیتابانک، بهترین سود خالص (Net Profit) را از میان تمام بهینهسازیهای انجامشده نشان میدهد. حال روی نتیجه WF در دیتابانک دوبار کلیک میکنیم تا آن را بهصورت جزئی ببینیم.
در این بخش، نتیجه نهایی تست استحکام نشان داده میشود – اینکه آیا استراتژی از آزمون عبور کرده یا نه – همچنین یک نمودار سهبعدی قابل تنظیم وجود دارد که نتایج تمامی ترکیبهای موجود در ماتریس را نمایش میدهد.
در پایین نتایج نهایی، میتوانید هر ترکیب واکفورواردی را که تست شده انتخاب کرده و جزئیات نتایج را ببینید.
وقتی به نمودار Equity سوئیچ میکنیم، نتایج بهینهسازی واکفوروارد برای ترکیب انتخابشده از جدول ماتریس WF نیز نمایش داده میشود.
خط آبی استراتژی بازبهینهشده را نشان میدهد، در حالی که خط نازکتر خاکستری استراتژی اصلی (بدون بهینهسازی مجدد) را نشان میدهد.
بهوضوح میتوانیم ببینیم که این استراتژی هنگام بازبهینهسازی دورهای، عملکرد بهتری دارد.
توجه داشته باشید که این نتایج و نمودار برای ترکیب انتخابشده (۷ اجرا با ۲۰٪ OOS) نمایش داده شدهاند. اگر ترکیب دیگری را انتخاب کنید، نتایج و نمودار متفاوت خواهند بود.
تفسیر نتایج
همانطور که در ابتدای این مقاله گفته شد، ماتریس واکفوروارد دو کاربرد اصلی دارد:
- بررسی استحکام استراتژی
- یافتن دوره بهینه برای بازبهینهسازی (Reoptimization) استراتژی
استفاده از ماتریس واکفوروارد بهعنوان بررسی استحکام
بهینهسازی استراتژی با استفاده از واکفوروارد و پارامترهای مختلف به ما این امکان را میدهد که ببینیم آیا استراتژی در دورههای مختلف بازبهینهسازی (با طولهای مختلف تاریخچه) همچنان «زنده میماند» یا خیر.
نمودار سهبعدی امتیاز (Score 3D Chart) به ما نتایج استحکام را برای هر ترکیب پارامتری نشان میدهد، و ابزار بسیار خوبی برای شناسایی و جلوگیری از بیشبهینهسازی (Curve-Fitting) است. استراتژیهای قوی در نمودار سطحی دارای تغییرات تدریجی و نه ناگهانی هستند.
چیزی که ما بهدنبالش هستیم این است که تا حد امکان ترکیبهای WF بیشتری موفق باشند.
حداقل چیزی که من دنبال آن هستم، یک خوشه (Cluster) ۳×۳ از ترکیبهاست که در آن حداقل تعداد موفقیتها بیشتر از شکستها باشد.
با کلیک روی دکمه Configure میتوانیم StrategyQuant را طوری تنظیم کنیم که این موفقیتها را بهصورت خودکار شناسایی کند. برای مثال، ما میخواهیم گروهی از ۹ تست واکفوروارد (۳ در ۳) داشته باشیم که در آن حداقل ۷ تست موفق باشند.
در مثال ما، دو خوشه یافت شده که مرزهای آنها با رنگهای زرد و آبی نمایش داده شدهاند. در هر دو مورد، ۷ تست از ۹ تست واکفوروارد موفق بودهاند (که با رنگ سبز نشان داده شده و با دایرههای قرمز مشخص شدهاند).
اگر فقط یک گروه ۳×۳ در ماتریس پیدا شود، من آن را نشانهای از استحکام استراتژی میدانم. این گروه یعنی نه تنها استراتژی از بازبهینهسازی سود میبرد، بلکه میتوان آن را با دورههای مختلف بازبهینه کرد و همچنان سودآوری خود را حفظ کند – که این نشانهای از استحکام استراتژی است.
چه چیزی موفقیت یک بهینهسازی واکفوروارد تکی را تعیین میکند؟
در بالا، ما تمام ترکیبهای تستشدهی واکفوروارد را برای ارزیابی استحکام استراتژی بررسی کردیم. اما چطور تعیین میکنیم که آیا یک بهینهسازی واکفوروارد تکی موفق بوده یا نه؟
برای این منظور، از یک امتیاز استحکام (Robustness Score) قابل تنظیم استفاده میکنیم که برای هر بهینهسازی WF محاسبه میشود.
امتیاز استحکام کاملاً قابل تنظیم است. میتوانیم تمام شرایط موردنظر خود را در جدول مؤلفههای امتیاز استحکام (۱) تنظیم کرده و مقادیر مرزی آنها را تعیین کنیم. برای توضیح مؤلفههای پیشرفته امتیاز، به مقاله Walk-Forward Optimization مراجعه کنید.
مقدار آستانهی اصلی امتیاز استحکام (۲) تعیین میکند که چند درصد از مؤلفهها باید موفق باشند تا نتیجه WF را موفق بدانیم.
برای مثال، ترکیب ۹ اجرا با ۲۰٪ OOS شکست خورده است، زیرا ۲ مؤلفه از ۶ مؤلفه موفق نبودهاند – امتیاز استحکام فقط ۶۶٪ (۴ از ۶) است، در حالی که حداقل مقدار موردنیاز ۸۰٪ تعیین شده بود.
همیشه خوب است به ترکیبهایی که شکست خوردهاند نگاه کنیم – علت شکست آنها چه بوده؟ آیا همه ترکیبها شکست خوردهاند؟ شاید معیارهای موفقیت ما بیش از حد سختگیرانه هستند.
استفاده از ماتریس واکفوروارد برای یافتن دوره بهینه بازبهینهسازی
این بخش ادامه طبیعی بررسی استحکام استراتژی است. وقتی مثلاً یک خوشه ۳×۳ از بهینهسازیهای واکفوروارد موفق پیدا کردیم، ترجیح من این است که ترکیبی را انتخاب کنم که در مرکز آن خوشه قرار دارد.
StrategyQuant این کار را بهصورت خودکار برای ما انجام میدهد (اگر آن را به درستی پیکربندی کرده باشیم) و نتیجهی آن درست در زیر نتایج نهایی نمایش داده میشود:
به یاد داشته باشید، استراتژی باید نسبت به تنظیمات بازبهینهسازی نیز مقاوم باشد – بنابراین تاریخ دقیق بازبهینهسازی نباید خیلی مهم باشد، تا زمانی که دورهی بازبهینهسازی و دادههای تاریخی بهطور تقریبی در محدوده صحیح باقی بمانند.
در مورد این استراتژی، من میتوانم آن را همین حالا (مثلاً در ماه آگوست) روی دو سال تاریخچه مجدداً بهینه کنم و قصد دارم سال بعد (آگوست سال آینده) دوباره بازبهینهسازی انجام دهم.
نمودارهای سهبعدی پیشرفته
نسخه جدید StrategyQuant ویژگی جدیدی را ارائه میدهد – نمودارهای سهبعدی برای تمام ترکیبهای واکفوروارد تستشده. همانطور که قبلاً اشاره شد، نمودار سهبعدی مقدار امتیاز را برای هر ترکیب پارامتری نشان میدهد و ابزار بسیار خوبی برای شناسایی و جلوگیری از بیشبهینهسازی است. استراتژیهای قوی دارای تغییرات تدریجی در نمودار سطحی هستند.
شما میتوانید نمودار سهبعدی از پارامترهایی مانند سود خالص (Net Profit)، افت سرمایه (Drawdown)، رکود (Stagnation)، فاکتور سود (Profit Factor)، پایداری (Stability) یا هر مقدار دیگری را در سه سبک مختلف نمایش دهید – بهصورت سطحی (Surface)، نمودار میلهای (Bar Chart) یا نقشه حرارتی (Heatmap).