نکات کلیدی:
- «آزمون گامبهگام روبهجلو» (Walk-forward testing) بررسی میکند آیا یک استراتژی معاملاتی روی دادههای جدیدی که قبلاً ندیده هم جواب میدهد یا فقط روی گذشتهای که با آن تنظیم شده خوب است.
- این روش دادهها را به «بخش دروننمونه» (In-sample؛ دادههایی که برای تنظیم استفاده میشوند) و «بخش بروننمونه» (Out-of-sample؛ دادههایی که کنار گذاشته میشوند تا فقط برای سنجش به کار روند) تقسیم میکند و سپس این پنجرهها را در طول زمان جلو میبرد.
- کار اصلی این روش آشکار کردن «بیشبرازش» (Overfitting؛ تنظیم بیشازحد روی گذشته) و «برازش منحنی» (Curve fitting؛ همان بیشبرازش با پارامترهای زیاد) پیش از بهخطر انداختن سرمایه واقعی است.
- «کارایی گامبهگام روبهجلو» (Walk-forward efficiency) نتایج را به یک عدد تبدیل میکند تا نشان دهد مزیت استراتژی در شرایط شبیه معامله واقعی چقدر حفظ میشود.
بیشتر معاملهگران این واقعیت را با تجربه یاد میگیرند: استراتژی که در دادههای گذشته عالی به نظر میرسد، ممکن است در معامله واقعی از هم بپاشد. دلیلش روشن است؛ اگر یک سیستم بیش از حد روی گذشته تنظیم شود، بهجای رفتار واقعی بازار، «نویز» (Noise؛ نوسانهای تصادفی و بیمعنا) را یاد میگیرد.
آزمون گامبهگام روبهجلو برای شناسایی زودهنگام همین مشکل ساخته شده است. شما قوانین را روی یک بخش از دادهها تنظیم میکنید و بعد همان قوانین را روی بخش بعدی که قبلاً دیده نشده میآزمایید.
این راهنما یک «استراتژی آزمون گامبهگام روبهجلو» را مرحلهبهمرحله توضیح میدهد تا قبل از اختصاص سرمایه، ایدهها را مطمئنتر ارزیابی کنید.
توضیح آزمون گامبهگام روبهجلو

آزمون گامبهگام روبهجلو یک روش «اعتبارسنجی» (Validation؛ سنجش قابلاتکا بودن نتیجه) است که شبیهسازی میکند استراتژی در گذر زمان چگونه با بازار سازگار میشود. بهجای اینکه یکبار روی کل سابقه قیمتها تنظیم کنید، تنظیم را در چند مرحله انجام میدهید و هر مرحله را روی دادههای جدیدی که مدل قبلاً ندیده میسنجید.
دادههای دروننمونه و بروننمونه
هر آزمون گامبهگام روبهجلو بر دو بلوک داده تکیه دارد. دادههای دروننمونه بخشی است که برای پیدا کردن بهترین تنظیمات استفاده میکنید. دادههای بروننمونه
- دادههای دروننمونه مثل برگه تمرین است.
- دادههای بروننمونه مثل امتحان واقعی است که پاسخهایش را از قبل ندیدهاید.
- استراتژیای که فقط دروننمونه خوب است، معمولاً فقط «جوابها را حفظ کرده» است.
نتیجه خوب دروننمونه بهتنهایی کافی نیست. عملکرد بروننمونه
پنجره بهینهسازی چگونه جلو میرود
عبارت «گامبهگام روبهجلو» به حرکت آزمون اشاره دارد. ابتدا روی یک پنجره اولیه از دادههای تاریخی تنظیم میکنید، سپس یک قدم جلو میروید و روی بلوک بعدی آزمایش میکنید. بعد کل پنجره را در زمان جابهجا میکنید و دوباره تکرار میشود.
این روندِ چرخشی، زنجیرهای از نتایج بروننمونه میسازد که به هم وصل میشوند. نتیجه، تصویری واقعبینانهتر از عملکرد قوانین در تغییر شرایط بازار است، نه یک «جور شدنِ خوششانس» در یک دوره خاص.
مشکل اصلی که این روش حل میکند: بیشبرازش و برازش منحنی
هدف اصلی آزمون گامبهگام روبهجلو آشکار کردن بیشبرازش است که به آن برازش منحنی
- پارامترهای زیاد و بیش از حد ریزتنظیمشده (Parameter؛ متغیرهای قابلتنظیم مثل طول میانگین متحرک)
- بازده خیرهکننده در بکتست با تعداد بسیار کم معامله زیانده
- افت شدید عملکرد به محض ورود دادههای جدید
استراتژی برازشمنحنیشده در محیط آزمایش عالی به نظر میرسد، اما در بازار واقعی بد عمل میکند. آزمون گامبهگام روبهجلو مجبورش میکند روی دادههایی که با آنها تنظیم نشده، خودش را ثابت کند.
آزمون گامبهگام روبهجلو چگونه کار میکند (مرحلهبهمرحله)
سازوکار این روش به شکل یک چرخه تکراری قابل فهم است. هر چرخه چهار مرحله دارد و هر بار همان چهار مرحله جلوتر در زمان تکرار میشود.
1) تقسیم دادهها به بخش بهینهسازی و بخش آزمون
ابتدا دادههای تاریخی (Historical data؛ قیمتها و معاملات گذشته) را به قسمتهایی تقسیم کنید. هر قسمت یک بلوک بزرگتر برای بهینهسازی و یک بلوک کوچکتر برای آزمون دارد.
- حدود 70% تا 80% هر پنجره برای بهینهسازی دروننمونه
- 20% تا 30% باقیمانده برای آزمون بروننمونه
مثلاً میتوانید 12 ماه را برای بهینهسازی و 3 ماه بعدی را برای آزمون بگذارید. نسبت مناسب به نوع استراتژی و حجم داده شما بستگی دارد.
2) بهینهسازی پارامترها روی پنجره دروننمونه
سپس فقط روی بلوک دروننمونه «بهینهسازی پارامترها» (Parameter optimisation؛ امتحانکردن ترکیبهای مختلفِ تنظیمات برای انتخاب بهترینها) را اجرا کنید. نرمافزار ترکیبهای مختلف تنظیمات، مثل طول «میانگین متحرک» (Moving average؛ میانگین قیمت در یک بازه زمانی) یا فاصله «حد ضرر» (Stop-loss distance؛ فاصله قیمت تا نقطه خروج برای محدود کردن زیان) را میسنجد و گزینههای بهتر را نگه میدارد.
هدف صرفاً بیشترین بازده ممکن نیست؛ هدف مجموعهای منطقی و پایدار از پارامترهاست. بازههای مقاوم را به تنظیمات افراطی که فقط در یک دوره خاص جواب دادهاند ترجیح دهید.
3) اعتبارسنجی روی پنجره بروننمونه (دادههای دیدهنشده)
حالا همان تنظیمات انتخابشده را روی بلوک بروننمونه اعمال کنید. اینجا دوباره بهینهسازی نمیکنید؛ فقط استراتژی را انگار در بازار واقعی معامله میکنید اجرا میکنید.
این مرحله مهمترین بخش روش است. اگر استراتژی روی دادههایی که قبلاً ندیده هم خوب عمل کند، نشانهای از وجود مزیت است. اگر بد عمل کند، احتمالاً نتیجه دروننمونه فقط یک خطای آماری بوده است.
4) جلو بردن پنجره و تکرار
در پایان، کل پنجره را به جلو میبرید و همه مراحل را تکرار میکنید. هر بار روی دادههای تازه دروننمونه بهینهسازی انجام میشود و روی بلوک بعدیِ دیدهنشده اعتبارسنجی میکنید. نمونه ساده با بهینهسازی 12ماهه و آزمون 3ماهه:
| اجرا | دروننمونه (بهینهسازی) | بروننمونه (آزمون) |
| اجرا 1 | Jan – Dec 2023 | Jan – Mar 2024 |
| اجرا 2 | Apr 2023 – Mar 2024 | Apr – Jun 2024 |
| اجرا 3 | Jul 2023 – Jun 2024 | Jul – Sep 2024 |
| اجرا 4 | Oct 2023 – Sep 2024 | Oct – Dec 2024 |
با کنار هم گذاشتن دورههای بروننمونه، یک سابقه پیوسته از عملکرد روی دادههای دیدهنشده به دست میآورید.
تحلیل گامبهگام روبهجلو: لنگرشده و غلتان
دو روش رایج برای حرکت دادن پنجره در زمان وجود دارد. انتخاب درست به این بستگی دارد که استراتژی شما با تغییر شرایط بازار چگونه رفتار میکند.
1) گامبهگام لنگرشده با تاریخ شروع ثابت
در روش لنگرشده (Anchored walk-forward؛ شروع ثابت)، تاریخ شروع ثابت میماند و فقط انتهای پنجره دروننمونه جلو میرود؛ بنابراین بلوک بهینهسازی کمکم بزرگتر میشود. این روش برای استراتژیهایی مناسب است که از «حافظه بلندمدت» بازار سود میبرند.
- در هر مرحله بیشترین حجم داده تاریخی را استفاده میکند.
- فرض میگیرد دادههای قدیمی هنوز مفیدند.
- برای سیستمهای کند و ساختاری مناسب است.
نکته منفی این است که دادههای خیلی قدیمی میتواند اثر شرایط جدیدتر و مهمتر را کمرنگ کند.
2) گامبهگام غلتان با پنجره متحرک
در روش غلتان (Rolling walk-forward؛ پنجره با طول ثابت که جلو میلغزد)، طول پنجره ثابت است و با حرکت روبهجلو، دادههای قدیمی حذف و دادههای جدید اضافه میشود.
- بهینهسازی را روی شرایط نزدیکتر به زمان حال متمرکز میکند.
- سریعتر با تغییر «نوسان» (Volatility؛ شدت بالا و پایین شدن قیمت) و روندها سازگار میشود.
- برای سیستمهای کوتاهمدت و واکنشی مناسب است.
چون تاریخ دور را کنار میگذارد، به تغییر «رژیم بازار» (Regime change؛ تغییر فضا مثل گذار از روند به رنج) سریع واکنش میدهد، اما ممکن است نتایج از یک اجرا تا اجرای دیگر نوسان بیشتری داشته باشد.
انتخاب بین لنگرشده و غلتان
هیچکدام همیشه بهتر نیست. انتخاب به افق زمانی استراتژی و میزان اعتماد شما به دادههای قدیمی برمیگردد.
| ویژگی | گامبهگام لنگرشده | گامبهگام غلتان |
| تاریخ شروع | ثابت | جلو میرود |
| داده استفادهشده | در هر اجرا بیشتر میشود | طول ثابت |
| مناسب برای | سیستمهای بلندمدت و ساختاری | سیستمهای کوتاهمدت و سازگار |
| ریسک اصلی | داده کهنه سیگنال را تضعیف میکند | بخشی از تاریخ مفید حذف میشود |
کارایی گامبهگام روبهجلو و تفسیر نتایج

بعد از تکمیل اجراها، باید راهی برای قضاوت داشته باشید. کارایی گامبهگام روبهجلو
محاسبه کارایی گامبهگام روبهجلو
این شاخص عملکرد بروننمونه را با عملکرد دروننمونه مقایسه میکند. فرمول:
کارایی گامبهگام روبهجلو = (بازده بروننمونه ÷ بازده دروننمونه) × 100
مثلاً اگر بازدههای سالانهشده (Annualised return؛ تبدیل بازده به معادل سالانه) این باشد:
- بازده دروننمونه: 40%
- بازده بروننمونه: 24%
کارایی گامبهگام روبهجلو = (24 ÷ 40) × 100 = 60%
عدد 60% یعنی عملکرد بروننمونه تقریباً 60 درصدِ نتیجه دروننمونه را حفظ کرده است. هرچه به 100% نزدیکتر باشد، مزیت بهتر دوام آورده است.
کنار کارایی، منحنی سرمایه و افت سرمایه را هم بررسی کنید
یک عدد بهتنهایی کافی نیست. کارایی را در کنار معیارهای دیگر ببینید.
- منحنی سرمایه (Equity curve؛ مسیر رشد و افت ارزش حساب) که بهتر است تدریجی و یکنواخت بالا برود، نه با یک جهش کوتاه.
- حداکثر افت سرمایه (Maximum drawdown؛ بیشترین افت از سقف تا کف ارزش حساب).
- ثبات نتیجه در همه اجراها، نه فقط میانگین.
ممکن است یک استراتژی کارایی قابلقبول داشته باشد اما افت سرمایه آنقدر سنگین باشد که عملاً قابل معامله نباشد. رفتار یکنواخت مهمتر از یک عدد جذاب است.
چطور یک آزمون گامبهگام روبهجلو تنظیم کنیم
تنظیم این آزمون بیشتر به انتخابهای درست قبل از اجرا مربوط است. انجام درست «بهینهسازی گامبهگام روبهجلو» به سه تصمیم بستگی دارد: طول پنجرهها، تعداد اجراها و پلتفرم.
1) انتخاب طول دورههای دروننمونه و بروننمونه
طول پنجرهها باید با دفعات معامله استراتژی هماهنگ باشد. سیستم روزانه به داده کمتری در هر پنجره نیاز دارد نسبت به سیستمی که ماهی چند بار معامله میکند. نقطه شروع منطقی:
- نسبت حدود 3 به 1 یا 4 به 1 (دروننمونه به بروننمونه).
- بروننمونه به اندازهای باشد که تعداد معاملات کافی داشته باشد.
- پنجرهها آنقدر طولانی باشند که چند نوع شرایط بازار را پوشش دهند.
2) تعیین تعداد اجراهای گامبهگام روبهجلو
اجرای بیشتر یعنی شواهد بروننمونه بیشتر. تا حد ممکن تعداد اجرا را طوری بگیرید که رفتار استراتژی در شرایط مختلف دیده شود:
- اگر داده کافی دارید، حداقل 8 تا 10 اجرا انجام دهید.
- هر بلوک بروننمونه باید تعداد معامله کافی داشته باشد.
- در کل آزمون هم بازارهای رونددار (Trending؛ حرکت جهتدار) و هم رنج (Ranging؛ رفتوبرگشت در یک محدوده) پوشش داده شوند.
3) اجرای بهینهسازی گامبهگام روبهجلو در MT5، پایتون و Amibroker
لازم نیست همه چیز را دستی بسازید. چند ابزار این قابلیت را مستقیم دارند:
- MetaTrader 5 (MT5) یک «آزمونگر استراتژی» (Strategy Tester؛ ابزار شبیهسازی و بکتست) داخلی دارد و حالت گامبهگام روبهجلو را برای اکسپرتها (Expert Advisors؛ رباتهای معاملهگر خودکار) پشتیبانی میکند.
- MetaTrader 4 (MT4) هم میتواند بهینهسازی مرحلهای انجام دهد، اما مدیریت پنجرهها دستیتر است.
- Python با کتابخانهها امکان نوشتن چرخههای کاملاً سفارشی را میدهد.
- Amibroker قابلیت گامبهگام روبهجلو را با جابهجایی خودکار پنجرهها ارائه میکند.
اگر با کارگزاریهایی مثل VT Markets معامله میکنید، میتوانید «سیستمهای معاملاتی الگوریتمی» (Algorithmic trading systems؛ سیستمهایی که با کد و قوانین از پیش تعیینشده معامله میکنند) را قبل از اجرای واقعی، روی MT4 و MT5 تست کنید.
مقایسه آزمون گامبهگام روبهجلو با روشهای نزدیک
برای تصمیمگیری بهتر، جایگاه این روش را در کنار روشهای دیگر اعتبارسنجی ببینید. هر روش یک جور متفاوت استراتژی را میسنجد.
1) گامبهگام روبهجلو در برابر بکتست معمولی
تفاوت «بکتست» (Backtest؛ آزمایش استراتژی روی دادههای گذشته) با آزمون گامبهگام روبهجلو چیست؟ در بکتست معمولی اغلب روی همان دادهای که آزمون میکنید هم بهینهسازی انجام میشود و این کار پنهان کردن بیشبرازش را آسان میکند. در روش گامبهگام روبهجلو، بهینهسازی و آزمون جداست و همیشه داده دیدهنشده سنجیده میشود.
- بکتست میپرسد: این تنظیمات در این تاریخچه چگونه عمل میکرد؟
- گامبهگام روبهجلو میپرسد: روی دادهای که با آن تنظیم نشده هم چگونه عمل میکند؟
پرسش دوم به معامله واقعی نزدیکتر است؛ به همین دلیل نتایج گامبهگام روبهجلو قابلاعتمادتر است.
2) گامبهگام روبهجلو در برابر اعتبارسنجی متقاطع
اعتبارسنجی متقاطع (Cross-validation؛ تقسیم داده به چند «قطعه» و جابهجا کردن قطعه آزمون) در «یادگیری ماشین» (Machine learning؛ روشهای آماری/محاسباتی برای یادگیری از داده) رایج است. تفاوت اصلی در زمان است.
- اعتبارسنجی متقاطع گاهی دادهها را بههم میزند و ترتیب زمانی را نادیده میگیرد.
- گامبهگام روبهجلو همیشه ترتیب زمانی را رعایت میکند.
در بازارها ترتیب زمانی حیاتی است. استفاده از اطلاعات آینده برای سنجش گذشته منطقی نیست. بنابراین معمولاً روش گامبهگام روبهجلو واقعبینانهتر است.
3) گامبهگام روبهجلو در برابر یک آزمون بروننمونه تکی
آزمون بروننمونه تکی فقط یک بلوک از دادههای جدید را کنار میگذارد. از هیچی بهتر است، اما فقط یک دوره را میسنجد. روش گامبهگام روبهجلو بهتر است چون:
- چندین بلوک بروننمونه را آزمایش میکند.
- چند محیط متفاوت بازار را پوشش میدهد.
- احتمال اینکه یک دوره خوششانس نتیجه را زیباتر نشان دهد کمتر میشود.
پنجرههای بروننمونه بیشتر یعنی شواهد بیشتر و شواهد بیشتر یعنی غافلگیری کمتر.
اعتبار، محدودیتها و خطاهای رایج
این روش قدرتمند است، اما پیشبینی قطعی آینده نیست. شناخت محدودیتها کمک میکند هنگام رفتن از تست به سرمایه واقعی، انتظار منطقی داشته باشید.
این روش چه چیزهایی را میتواند و نمیتواند تأیید کند
آزمون گامبهگام روبهجلو میتواند نشان دهد منطق یک استراتژی روی دادههای تاریخیِ دیدهنشده هم جواب داده است. اما سود آینده را تضمین نمیکند.
- داده گذشته، حتی اگر دیدهنشده باشد، باز هم گذشته است.
- بازار ممکن است وارد شرایطی شود که در تاریخچه شما نبوده است.
- هزینهها مثل «اسلیپیج» (Slippage؛ اختلاف قیمت مورد انتظار با قیمت واقعی اجرا) و «اسپرد» (Spread؛ اختلاف قیمت خرید و فروش) میتواند نتیجه کاغذی را کم کند.
نتیجه قوی را بهعنوان نشانه مثبت ببینید، نه تضمین.
خطاهای رایج در انتخاب پنجرهها و تفسیر نتیجه
بیشتر خطاها از تنظیم ضعیف یا تفسیر خوشبینانه اعداد میآید. این موارد میتواند یک تست خوب را خراب کند.
- پنجرههای خیلی کوتاه که تعداد معامله کافی ندارند.
- بهینهسازی دوباره بعد از دیدن نتیجه بروننمونه؛ این کار هدف روش را از بین میبرد.
- نادیده گرفتن هزینههای معامله در طول تست.
- قضاوت فقط با میانگین بازده و بیتوجهی به افت سرمایه و ثبات.
- انتخاب گزینشی بهترین اجرا و نادیده گرفتن بقیه.
آزمون صادقانه یعنی نتیجه را همانطور که هست بپذیرید.
پرسشهای متداول (FAQ)
سوال 1: آزمون گامبهگام روبهجلو چیست؟
آزمون گامبهگام روبهجلو یک روش اعتبارسنجی است. استراتژی را روی یک بخش از دادههای تاریخی بهینهسازی میکند و سپس روی بخش بعدی که دیدهنشده است میآزماید. با جلو رفتن پنجره، این روند تکرار میشود و تصویر واقعبینانهتری از عملکرد در شرایط شبیه معامله واقعی میدهد.
سوال 2: تفاوت روش لنگرشده و غلتان چیست؟
در روش لنگرشده، تاریخ شروع ثابت میماند و پنجره بهینهسازی بزرگتر میشود. در روش غلتان، طول پنجره ثابت است و با جلو رفتن، دادههای قدیمی حذف و دادههای جدید اضافه میشود. روش لنگرشده برای سیستمهای بلندمدت مناسبتر است و روش غلتان سریعتر با شرایط جدید سازگار میشود.
سوال 3: دورههای دروننمونه و بروننمونه را چطور انتخاب کنیم؟
طول پنجرهها را با تعداد معاملات استراتژی هماهنگ کنید. نسبت رایج برای شروع 3:1 یا 4:1 (دروننمونه به بروننمونه) است. هر بلوک بروننمونه باید تعداد معامله کافی داشته باشد تا نتیجه معنیدار شود.
سوال 4: تفاوت آزمون گامبهگام روبهجلو با بکتست چیست؟
در بکتست معمولی اغلب روی همان دادهای که آزمون میشود هم بهینهسازی انجام میشود و بیشبرازش بهراحتی پنهان میماند. در روش گامبهگام روبهجلو، همیشه روی دادههایی که استراتژی با آنها تنظیم نشده اعتبارسنجی انجام میشود. این جدا کردن بهینهسازی از آزمون، نتیجه را به معامله واقعی نزدیکتر میکند.