نقشه راه بکتست در MT5 برای الگوتریدرها: داده، مدلینگ، معیارها، و استانداردسازی ارزیابی استراتژی
نویسنده: بهرنگ موسوی
آخرین به روز رسانی: بهمن 1404

چرا بیشتر بکتستها دروغ میگویند (حتی وقتی “عددها خوبند”)
بکتست در MT5 زمانی معتبر است که داده درست داشته باشی، مدلینگ سازگار انتخاب کنی، هزینههای واقعی (اسپرد، کمیسیون، اسلیپیج) را لحاظ کنی، با معیارهای تصمیم (DD، PF، تعداد ترید، ثبات) نتیجه را قضاوت کنی، ضد اورفیت عمل کنی (تقسیم داده/Walk-Forward)، و در پایان با فوروارد تست تأیید بگیری.
بقیه این راهنما را طوری نوشتهام که اگر فقط یک بار هم بکتست در MT5 گرفتهای، از این به بعد بدانی کدام خروجیها ارزش بررسی دارند و کدامها باید همان اول رد شوند.
اگر تا امروز یک بکتست گرفتهای و از نتیجهاش ذوق کردهای، تبریک. تو هم مثل بقیه انسانها عاشق عددهای خوشگل هستی.
مسئله اینجاست: Strategy Tester متاتریدر ۵ یک ماشین “تولید خروجی” است، نه ماشین “تضمین واقعیت”. خروجی میدهد حتی اگر ورودیها و فرضها خراب باشند.
این مقاله قرار نیست به تو «آموزش کامل» بدهد که در یک صفحه هم بکتست را استاد شوی، هم بهینهسازی را، هم از بازار پول بگیری.
این مقاله قرار است کاری مفیدتر بکند:
- مسیر استاندارد بکتست در MT5 را شفاف کند (چه تصمیمهایی مهماند و چرا)
- کمکت کند نتایج را درست بخوانی و گول “Profit Factor” و “Balance Max” را نخوری
- بهینهسازی (Optimization) را از قمار به روش تبدیل کند
- و اگر اکسپرت MQL5 داری (یا میسازی)، بدانی کجا MQL5 لازم میشود و کجا نه
این مقاله برای چه کسی است؟
این راهنما مناسب توست اگر یکی از اینها هستی:
- الگوتریدر/اکسپرتساز که با MQL5 کار میکند و میخواهد خروجی تستر را قابل اعتمادتر کند.
- کسی که بکتست میگیرد ولی نمیداند چرا در لایو خراب میشود.
- کسی که Optimization میزند و آخرش بین ۵۰۰ نتیجه، یکی را به امید خوششانسی انتخاب میکند. (اسم این روش “تحلیل” نیست.)
- کسی که میخواهد مسیر یادگیریاش استاندارد باشد: Setup → Backtest → Analyze → Optimize → Forward Test.
این مقاله چه چیزی نیست؟
برای اینکه بعداً سوءتفاهم درست نشود:
- این مقاله آموزش کامل برنامهنویسی MQL5 نیست.
- این مقاله وعده سوددهی نمیدهد.
- این مقاله جایگزین تمرین و اجرای واقعی نیست.
- هدفش این است که تو بدانی کدام بکتست را باید جدی بگیری و کدام را باید همان اول بندازی سطل زباله.
خروجی عملی مقاله: بعد از خواندن باید بتوانی این تصمیمها را بگیری
در پایان این راهنما باید بتوانی:
- انتخاب کنی چه مدلینگ (Every Tick / Real Tick / OHLC / Open Prices) به استراتژیات میخورد
- بفهمی کدام معیارها تصمیمسازند (نه تزئینی)
- Optimization را طوری انجام بدهی که اورفیتینگ تولید نکنی
- و یک چکلیست داشته باشی که قبل از اعتماد به هر نتیجه، از آن عبور کند.
قبل از اینکه وارد سرفصلها شویم، یک اصل ساده را نگه دار: هدف بکتست در MT5 تولید عددهای قشنگ نیست، هدفش رسیدن به یک تصمیم قابل دفاع است.
نقشه راه مقاله
اینها ستونهای اصلیاند که جلوتر دقیق باز میکنیم:
- بکتست چیست و چه چیزی نیست (مرزبندی با توهمها)
- شروع درست در Strategy Tester (تنظیمات حیاتی)
- مدلینگ و کیفیت داده (جایی که بیشتر تستها میمیرند)
- خواندن گزارش بکتست (اعداد مهم و تفسیر درست)
- Optimization در MT5 (روش حرفهای، نه شکار عدد)
- اورفیتینگ و فوروارد تست (راه فرار از نتایج فریبنده)
- Roadmap مرحلهای و استاندارد حداقلی قبولی/رد
این صفحه دقیقاً به چه سؤالهایی جواب میدهد؟ (Map of Intent)
اگر دنبال «آموزش کامل بکتست از صفر تا صد» در یک مقاله هستی، بهتر است همینجا توقعاتت را تنظیم کنی. بکتست و بهینهسازی در MT5 یک مهارت تصمیممحور است، نه یک سری کلیک و دکمه. هدف این صفحه این است که سؤالهای واقعی و پرتکرار کاربران را دستهبندی کند، به ابهامها جواب بدهد، و مسیر تصمیمگیری را استاندارد کند تا بدانید دقیقاً چه چیزی را باید بررسی کنید، چه چیزی را باید اندازه بگیرید، و کِی باید یک نتیجه را رد کنید.
در تجربه عملی، سؤالهای کاربران درباره Strategy Tester و Optimization معمولاً به پنج دسته Intent تقسیم میشوند:
1) راهاندازی و تنظیمات درست Strategy Tester
کاربر میخواهد بداند از کجا شروع کند و چه تنظیماتی اگر اشتباه باشد کل تست بیاعتبار میشود.
نمونه سؤالها:
- چطور در متاتریدر 5 بک تست بگیریم؟
- بهترین تنظیمات استراتژی تستر متاتریدر 5 چیست؟
- چه بازه زمانی برای بکتست معنیدار است؟
- اسپرد، کمیسیون و شرایط اجرای سفارش در بکتست چطور لحاظ میشود؟
2) مدلینگ و کیفیت داده (اعتبار تست)
کاربر میخواهد بفهمد چرا دو بکتست با یک اکسپرت نتایج متفاوت میدهند، و کدام نوع مدلینگ برای استراتژی او مناسب است.
نمونه سؤالها:
- Every Tick یا Real Tick یا OHLC؟ کدام دقیقتر است؟
- چرا بکتست من در بعضی بازهها عالی و در بعضی افتضاح میشود؟
- کیفیت داده چه تأثیری روی نتیجه دارد؟
- آیا بکتست سریعتر یعنی بدتر؟
3) تحلیل خروجی بکتست و تفسیر گزارش
کاربر عددها را میبیند ولی نمیداند کدام مهماند و کدام فریبندهاند.
نمونه سؤالها:
- چگونه نتایج بک تست را تحلیل کنیم؟
- Profit Factor خوب چند است و آیا کافی است؟
- Drawdown را چطور باید بخوانم؟
- تفاوت Balance و Equity در گزارش بکتست چیست؟
- چرا “سود زیاد” ممکن است نشانه ریسک پنهان باشد؟
4) بهینهسازی (Optimization) و انتخاب خروجی درست
کاربر میخواهد پارامترها را بهینه کند، اما نمیخواهد با یک نتیجه قشنگ ولی بیدوام خودش را گول بزند.
نمونه سؤالها:
- Optimization در متاتریدر 5 دقیقاً چیست؟
- Genetic بهتر است یا Slow Complete؟
- بهترین معیار برای بهینهسازی چیست؟
- چرا Balance Max معمولاً نتیجه خطرناک میدهد؟
- چطور نتایج ضعیف را فیلتر کنم تا خروجی قابل دفاع بماند؟
5) جلوگیری از اورفیتینگ و عبور از بکتست به دنیای واقعی
کاربر میخواهد بداند نتیجهای که در بکتست خوب شده چطور باید سنجیده شود تا «احتمالاً» در آینده هم دوام داشته باشد.
نمونه سؤالها:
- اورفیتینگ در بک تست یعنی چه؟
- چطور از اورفیتینگ جلوگیری کنیم؟
- تفاوت بک تست و فوروارد تست چیست؟
- کِی باید از بکتست عبور کنم و وارد فوروارد تست شوم؟
- چه معیارهایی نشان میدهد نتیجه قابل تکرار است یا فقط خوششانسی بوده؟
این صفحه به جای اینکه صرفاً ابزار را معرفی کند، تلاش میکند برای هرکدام از این Intentها یک چارچوب تصمیمگیری بدهد: چه چیزی را باید تنظیم کنید، چه چیزی را باید اندازه بگیرید، چه خروجیهایی ارزش بررسی دارند، و چه خروجیهایی را باید بدون تعارف کنار گذاشت.
بکتست در MT5 چیست و چه چیزی نیست؟ (مرزبندی با توهمها)
بکتست در متاتریدر ۵ یعنی اجرای قوانین یک استراتژی یا اکسپرت روی دادههای گذشته، با یک سری تنظیمات و فرضهای مشخص، برای اینکه بفهمیم این سیستم در آن شرایط تاریخی چه رفتاری داشته است. همین تعریف ساده، اگر درست فهمیده شود، جلوی بخش بزرگی از فاجعههای بعدی را میگیرد.
بکتست «ابزار تصمیمسازی» است، نه «سند تضمین». خروجی بکتست میتواند کمک کند استراتژیها را مقایسه کنی، ریسک را ببینی، هزینهها را بسنجی، و نقاط شکست را پیدا کنی. اما اگر با بکتست دنبال اثبات قطعی سوددهی باشی، داری از یک ابزار مهندسی انتظار معجزه داری.
در این بخش دو مرزبندی حیاتی را روشن میکنیم:
اول اینکه بکتست اساساً شبیهسازی است و نتیجهاش به فرضها وابسته است.
دوم اینکه حتی بهترین بکتست هم جای فوروارد تست را نمیگیرد و باید بدانی چه زمانی باید از مرحله بکتست عبور کنی.
بکتست = شبیهسازی با فرضها (نه پیشبینی آینده)
بکتست یک جمله شرطی است: اگر بازار در گذشته اینطور حرکت کرده باشد و اگر اجرای سفارشها در شرایطی شبیه این تنظیمات انجام شده باشد، آنگاه خروجی این است. بنابراین هر نتیجهای که میبینی، مستقیماً به همان فرضها گره خورده است. به همین دلیل، برداشت رایج «اگر بکتست خوب شد، پس سود قطعی است» از پایه غلط است، چون “قطعی” در چیزی که مبتنی بر فرض است معنایی ندارد.
یکی از رایجترین جاهایی که بکتست آدم را فریب میدهد، تفاوت بین “Balance” و “Equity” در گزارش است. Balance معمولاً آرام و مرتب رشد میکند چون فقط سود و زیان معاملات بستهشده را نشان میدهد. Equity اما ارزش لحظهای حساب را با در نظر گرفتن سود و زیان شناور نمایش میدهد و دقیقاً همانجاست که ریسک واقعی خودش را لو میدهد.
یک مثال کوتاه و کاربردی:
فرض کن در گزارش بکتست، Balance در پایان دوره رشد خوبی کرده و نتیجه کلی مثبت است. اما در طول مسیر، Equity چند بار افتهای عمیق داشته است. این یعنی استراتژی در چند نقطه با زیان شناور سنگین جلو رفته و فقط به لطف برگشت بازار یا بستن دیرهنگام معاملات، در نهایت “روی کاغذ” سود نشان داده است. چنین استراتژیای ممکن است در حساب واقعی، قبل از اینکه به پایان دوره برسد، با یک دوره نوسان نامناسب یا افزایش هزینهها به نقطهای برسد که عملاً ادامهدادن ممکن نیست.
پس وقتی گزارش بک تست متاتریدر 5 را میخوانی، اگر فقط Balance را ببینی، ممکن است داری یک «موفقیت نمایشی» را تماشا میکنی. Equity به تو میگوید این موفقیت با چه فشار و ریسکی ساخته شده و آیا واقعاً قابل تحمل است یا نه.
گزارش بک تست متاتریدر 5 و تحلیل درست آن، برای بک تست اکسپرت در MT5 حیاتی است، چون بخش بزرگی از “خوب به نظر رسیدن” دقیقاً از همین تفاوتهای ظاهری میآید.
بکتست در برابر فوروارد تست: کِی کدام؟
بکتست برای غربالگری و ساختن فرضیه است. فوروارد تست برای این است که ببینی آن فرضیه در شرایط نزدیک به واقعیت هم دوام میآورد یا نه. تصمیم اصلی اینجا این است: “الان زمان فوروارد تست هست یا نه؟”
قاعده عملی ساده و بیرحمانهاش این است:
اگر بعد از بهینهسازی، فقط بکتست داری، هنوز چیزی ثابت نکردی.
بهینهسازی یعنی دستکاری پارامترها برای بهتر شدن خروجی روی گذشته. این کار ذاتاً خطر اورفیتینگ دارد. بنابراین بعد از Optimization، بکتست به تنهایی نمیتواند سند اعتبار باشد، چون همان مرحلهای است که احتمال تولید نتیجه فریبنده در آن بالا میرود. فوروارد تست دقیقاً برای همین وارد بازی میشود: برای اینکه بررسی کند آیا خروجی بهینهشده فقط روی گذشته خوب بوده یا در دادههای ندیده و اجرای نزدیک به واقعی هم قابل دفاع است.
یک نشانه عملی برای اینکه زمان فوروارد تست رسیده:
وقتی بکتستت از نظر تعداد معاملات، منطق ریسک، و معیارهای اصلی گزارش، به یک سطح حداقلی قابل قبول رسید و دیگر قرار نیست با هر تغییر کوچک پارامتر “معجزه” کنی، باید از فاز بازی با گذشته خارج شوی و وارد فاز سنجش پایداری شوی.
اینجا همان جایی است که کاربرها معمولاً میپرسند: تفاوت بک تست و فوروارد تست چیست و چرا هر دو لازماند؟ پاسخ کوتاه این است که بکتست برای فهمیدن «چه میشود اگر»، و فوروارد تست برای فهمیدن «آیا این نتیجه قابل تکرار است یا نه» استفاده میشود.
فوروارد تست
تفاوت بک تست و فوروارد تست چیست
[پیشنهاد خوشهای]: فوروارد تست در MT5: طراحی، معیار قبولی، و خطاهای رایج
شروع درست در Strategy Tester متاتریدر ۵ (تنظیمات حیاتی)
در بکتست در MT5 اگر تنظیمات اولیه (نماد، تایمفریم، بازه زمانی و هزینهها) غلط باشد، خروجی هرچقدر هم دقیق به نظر برسد، از پایه آلوده است.
بیشتر بکتستهای بیاعتبار نه به خاطر بد بودن استراتژی، بلکه به خاطر تنظیمات اشتباه در Strategy Tester خراب میشوند. مشکل اینجاست که تستر معمولاً با هر تنظیمی یک خروجی تولید میکند و شما ممکن است فکر کنید چون خروجی هست، پس معتبر است. در حالی که بعضی انتخابها از همان ابتدا نتیجه را آلوده میکنند و بعد هر تحلیلی روی آن، فقط جدی گرفتنِ یک اشتباه است.
در این بخش، روی دو تصمیم حیاتی تمرکز میکنیم: انتخاب درست Symbol/Timeframe/Period و بعد هم واقعیسازی شرایط اجرا از نظر هزینههای معاملاتی.
انتخاب Symbol/Timeframe/Period و دامهای رایج
اولین قدم در استراتژی تستر متاتریدر 5 این است که دقیق بدانی چه چیزی را داری تست میکنی. Symbol، تایمفریم و بازه زمانی فقط تنظیمات ظاهری نیستند؛ دارند تعریف میکنند که “نمونه آماری” تو چیست و آیا اصلاً چیزی برای نتیجهگیری داری یا نه.
دام رایج این است که کاربر برای سریع نتیجه گرفتن، بازه را روی چیزی مثل “Last month” یا چند هفته آخر میگذارد. این انتخاب برای نتیجهگیری خطرناک است، چون معمولاً دو مشکل دارد:
- بازار در یک ماه میتواند یک فاز خاص داشته باشد که به نفع یک نوع استراتژی است. شما در واقع دارید یک “حالت خاص” را تست میکنید، نه رفتار پایدار استراتژی را.
- تعداد معاملات معمولاً کم میشود و نتیجه از نظر آماری شکننده است. با چند معامله خوب یا بد، کل گزارش شکل میگیرد و شما یک تصویر غلط از کیفیت سیستم میگیری.
مثال کوتاه:
فرض کن یک استراتژی میانگینگیری یا برگشتی را روی “Last month” تست میکنی و خروجی عالی میشود، چون ماه گذشته بازار رِنج بوده. همین استراتژی اگر وارد یک دوره ترند قوی شود، همان قوانین ممکن است وارد افتهای عمیق شوند. مشکل اینجا است که تو به جای آزمون استراتژی، داری “رفتار یک ماه خاص” را تایید میکنی.
بهترین تنظیمات استراتژی تستر متاتریدر 5 در این نقطه یعنی انتخاب بازهای که:
- فقط یک فاز خاص بازار را نمایندگی نکند
- تعداد معاملات کافی تولید کند
- امکان مقایسه چند دوره متفاوت را بدهد
- و اگر قرار است بهینهسازی کنی، فضای کافی برای جدا کردن بخش تست و فوروارد داشته باشی
استراتژی تستر متاتریدر 5 وقتی ارزش دارد که انتخاب Symbol/Timeframe/Period تو، نتیجه را از حالت اتفاقی و مقطعی خارج کند و به سمت تصمیمگیری قابل دفاع ببرد.
هزینههای معاملاتی و واقعگرایی (اسپرد/کمیسیون/تاخیر)
یکی از اصلیترین دلیلهایی که کاربران میپرسند “چرا بکتست من در لایو خراب میشود؟” همین بخش است: بکتست اگر هزینهها و واقعیت اجرای سفارش را درست لحاظ نکند، دارد یک دنیای خیالی را شبیهسازی میکند. در دنیای واقعی، شما با اسپرد، کمیسیون، اسلیپیج و تاخیر اجرا معامله میکنی، نه با عددهای تمیز و ایدهآل.
این موضوع در استراتژیهای سریع و کوتاهمدت مثل اسکالپ، حیاتیتر میشود، چون حاشیه سود هر معامله کوچک است و هزینهها دقیقاً همان حاشیه را میخورند.
یک مثال خیلی کوتاه:
فرض کن یک اسکالپ در هر معامله به طور متوسط ۲ تا ۳ پوینت سود خالص هدف دارد. اگر اسپرد و کمیسیون و کمی تاخیر اجرا، مجموعاً حتی نزدیک به همین مقدار شوند، Expected Payoff عملاً نابود میشود. در بکتست شاید همهچیز خوب به نظر برسد، ولی در اجرا، هزینهها همان چیزی هستند که کل مزیت را صفر یا منفی میکنند.
پس گزارش بک تست متاتریدر 5 وقتی قابل استناد است که شما آن را در یک فضای واقعیتر ببینی:
نه فقط با فرض “قیمت ایدهآل”، بلکه با فهم اینکه هزینهها و اجرای سفارش میتوانند یک استراتژی ظاهراً سودده را به یک سیستم بیمزیت تبدیل کنند.
این نقطه دقیقاً جایی است که بهینه سازی استراتژی معاملاتی معنی پیدا میکند: نه برای اینکه عدد سود را بزرگتر کنی، بلکه برای اینکه ببینی استراتژی بعد از لحاظ کردن واقعیتها هنوز مزیت دارد یا نه.
[پیشنهاد خوشهای]: هزینههای پنهان در بکتست: چرا اسپرد فقط شروع ماجراست
مدلینگ (Modeling) و کیفیت داده: جایی که اکثر بکتستها میمیرند
اگر بخواهیم یک نقطه را به عنوان قبرستان بکتستهای خوشگل معرفی کنیم، همینجاست: مدلینگ و کیفیت داده. چون Strategy Tester با هر نوع مدلینگ هم برایت خروجی تولید میکند، حتی وقتی مدل انتخابی تو با منطق استراتژیات سازگار نیست. نتیجه هم معمولاً دو حالت دارد: یا بیش از حد خوب میشود، یا بیدلیل بد میشود. در هر دو حالت، مشکل الزاماً استراتژی نیست؛ مشکل این است که تو چیزی را تست کردهای که واقعاً اجرا نشده است.
در بک تست در متاتریدر ۵ باید از خودت یک سؤال ساده بپرسی:
این استراتژی برای تصمیمگیری داخل کندل به اطلاعات دقیق تیک نیاز دارد یا تصمیمهایش روی بسته شدن کندل (یا شروع کندل) گرفته میشود؟
پاسخ این سؤال تعیین میکند چه مدلینگای “کافی” است و چه مدلینگای “لازم” است.
انتخاب مدل مناسب (Every Tick / Real Tick / OHLC / Open Prices)
مدلینگ یعنی اینکه تستر چگونه حرکت قیمت را درون هر کندل شبیهسازی میکند. هرچه مدل دقیقتر باشد، معمولاً تست کندتر میشود. هرچه سادهتر باشد، سریعتر است اما ممکن است بخش مهمی از واقعیت را حذف کند. بنابراین انتخاب مدلینگ، معامله بین “سرعت” و “اعتبار” است.
یک قانون کاربردی این است:
اگر مدلینگ تو با منطق ورود/خروج و مدیریت معامله در استراتژی سازگار نباشد، خروجی بکتست ممکن است کاملاً فریبنده باشد، حتی اگر نمودار عالی باشد.
جدول تصمیم خیلی کوچک:
| نوع استراتژی | مدل پیشنهادی |
| استراتژی کندلی (تصمیمها روی Close/Open یا با منطق ساده کندلی) | Open Prices / OHLC |
| حساس به SL/TP داخل کندل، مدیریت پوزیشن لحظهای، تریلینگ دقیق، اسکالپ | Every Tick / Real Tick |
توضیح کوتاه برای اینکه دام را بفهمی:
اگر استراتژی تو داخل کندل به SL/TP یا مدیریت لحظهای وابسته باشد، مدلهای ساده مثل Open Prices یا OHLC میتوانند اتفاقات حیاتی داخل کندل را یا حذف کنند یا سادهسازی کنند. در نتیجه ممکن است بکتست تو معاملاتی را “موفق” نشان بدهد که در دنیای واقعی با یک نوسان داخل کندل میتوانستند فعال شدن SL یا تغییر مسیر بدهند.
در مقابل، اگر استراتژی تو فقط با قیمتهای باز و بسته شدن کندل کار میکند و درون کندل تصمیم خاصی نمیگیرد، استفاده از مدلهای سنگینتر ممکن است فقط زمان تست را افزایش بدهد بدون اینکه ارزش تحلیلی اضافهای بسازد.
پس برای بک تست اکسپرت در MT5، انتخاب مدلینگ باید از دل “منطق استراتژی” بیرون بیاید، نه از دل علاقه به گزینههای دقیقتر یا سریعتر. دقیقتر همیشه بهتر نیست، اگر استراتژیات به آن دقت نیاز ندارد. سریعتر هم همیشه بهتر نیست، اگر استراتژیات داخل کندل تصمیمهای حساس میگیرد.
پس در بکتست در MT5 مدلینگ را برای «پاسخ به سؤال استراتژی» انتخاب کن، نه برای اینکه گزینه دقیقتر یا سریعتر روی کاغذ جذابتر است.
[پیشنهاد خوشهای]: Modeling در MT5: انتخاب علمی بین سرعت و دقت
خواندن گزارش بکتست در MT5 : چه چیزهایی واقعاً مهماند؟
اگر از گزارش فقط چند عدد مثل Net Profit یا Profit Factor را برداری، عملاً بکتست در MT5 را به یک بازی عددی تبدیل کردهای، نه یک ارزیابی ریسک و پایداری.
گزارش Strategy Tester متاتریدر ۵ مثل یک داشبورد هواپیماست: عدد زیاد دارد، ولی همهشان برای تصمیمگیری مهم نیستند. مشکل رایج این است که کاربر فقط به چند عدد محبوب مثل “Net Profit” یا “Profit Factor” نگاه میکند و نتیجه میگیرد «پس استراتژی خوب است». در حالی که گزارش بک تست متاتریدر 5 وقتی ارزش دارد که بتوانی از دل آن به یک تصمیم قابل دفاع برسی: آیا این سیستم از نظر ریسک، پایداری و امکان تکرار در آینده، ارزش ادامه دادن دارد یا نه؟
این بخش دو لایه دارد:
اول معیارهای پایه که باید مثل حداقل استاندارد خوانده شوند.
بعد معیارهای پایداری که کمک میکنند “خوششانسی” را از “مزیت واقعی” جدا کنی.
معیارهای پایه (Drawdown, Profit Factor, Recovery Factor)
هدف این معیارها این نیست که تو را هیجانزده کنند؛ هدفشان این است که جلوی تصمیمهای احساسی را بگیرند. اگر این سه را درست نفهمی، بهینه سازی اکسپرت در متاتریدر 5 تبدیل میشود به مسابقه ساختن عددهای زیباتر، نه ساختن سیستم بهتر.
Drawdown یعنی استراتژی تا چه حد توانسته حساب را به عقب بکشد. این معیار مستقیماً به این سؤال جواب میدهد: “اگر همین سیستم را در حساب واقعی اجرا کنم، بدترین دورهاش چقدر میتواند فشار بیاورد؟” عدد سود بدون درک Drawdown، مثل تعریف کردن از سرعت ماشین بدون گفتن ترمز است.
Profit Factor نسبت سودهای ناخالص به ضررهای ناخالص است. عدد جذابی است چون سریع حس “کیفیت” میدهد، اما اگر تنها معیار تو باشد، به راحتی فریب میخوری.
Recovery Factor به زبان ساده میگوید استراتژی بعد از ضربه چقدر توان برگشت دارد. یعنی اگر وارد یک افت شد، آیا میتواند با منطق قابل دفاع از آن خارج شود یا نه.
یک نمونه تفسیر کوتاه و تصمیمساز:
- Profit Factor بالا ولی Drawdown بالا = ریسک پنهان. یعنی سیستم ممکن است با چند دوره سوددهی خوب، افتهای سنگین را پوشانده باشد. این حالت معمولاً در حساب واقعی دردناک است، چون سرمایه و روان آدم واقعی است، نه شبیهسازی.
- Recovery Factor خوب یعنی توان برگشت از ضربه. یعنی سیستم اگر افت میکند، مسیر برگشتش قابل توضیح است و فقط به یک شانس بزرگ وابسته نیست.
پس در گزارش بک تست متاتریدر 5، دنبال این نباش که “کدام عدد بزرگتر است”. دنبال این باش که “کدام ترکیب عددها قابل دفاعتر است”. این دقیقاً همان چیزی است که بعداً در بهینه سازی اکسپرت در متاتریدر 5 باید مبنای انتخاب و فیلتر نتایج قرار بگیرد.
معیارهای پایداری (Sharpe، LR Correlation، Z-Score)
معیارهای پایه یک حداقل استاندارد میدهند، اما برای جلوگیری از انتخاب استراتژیهای “خوششانس”، کافی نیستند. خیلی از استراتژیها میتوانند در یک بازه خاص، با یک توالی برد یا یک شرایط ویژه بازار، خروجی قشنگ تولید کنند. معیارهای پایداری کمک میکنند بفهمی این خروجی احتمالاً محصول مزیت است یا محصول شانس و اورفیتینگ در بک تست.
Sharpe Ratio معمولاً برای سنجش بازده نسبت به نوسان استفاده میشود. اما Sharpe اگر بدون نرمالسازی یا بدون مقایسه درست (بین استراتژیهای مشابه یا در بازههای مختلف) استفاده شود، میتواند گمراهکننده باشد. چون ممکن است یک Sharpe خوب فقط به خاطر یک دوره آرام یا یک سری معاملات خاص ساخته شده باشد، نه به خاطر مزیت پایدار.
LR Correlation به تو کمک میکند بفهمی منحنی رشد تا چه حد “خطی و منظم” است. اگر رشد فقط با چند جهش بزرگ اتفاق افتاده باشد و باقی مسیر پرنوسان و بیثبات باشد، این معیار معمولاً آن را لو میدهد. رشد خطیتر معمولاً نشانه رفتار پایدارتر است، نه لزوماً سود بیشتر.
Z-Score به الگوی توالی برد و باخت نگاه میکند. یک برداشت کاربردی این است: Z-Score نزدیک صفر معمولاً سالمتر از الگوهای سریالی مشکوک است. چون وقتی یک سیستم بیش از حد بردهای سریالی یا باختهای سریالی غیرعادی نشان میدهد، احتمال این وجود دارد که یا ساختار معاملاتیاش به یک شرایط خاص قفل شده، یا نتیجه دارد تحت تأثیر یک الگوی اتفاقی در دادهها “زیبا” میشود.
اگر هدف تو این است که بدانی چگونه نتایج بک تست را تحلیل کنیم تا گول نخوریم، این معیارها دقیقاً برای همان مرحلهاند: جدا کردن سیستمهای “قابل تکرار” از سیستمهای “خوششانس”.
[پیشنهاد خوشهای]: راهنمای تفسیر معیارهای آماری Strategy Tester (با مثالهای واقعی)
Optimization در MT5: چطور بهینهسازی کنیم بدون اینکه به خودمان دروغ بگوییم؟
Optimization در متاتریدر ۵ جذاب است چون حس میدهد میتوانی با چند کلیک، “بهترین تنظیمات” را پیدا کنی. ولی واقعیت این است که بهینهسازی اگر چارچوب نداشته باشد، بیشتر از اینکه مزیت بسازد، توهم تولید میکند. چون Optimization ذاتاً روی گذشته تنظیم میشود و هرچه آزادی بیشتری بدهی، سیستم بهتر میتواند گذشته را حفظ کند، بدون اینکه لزوماً برای آینده چیزی داشته باشد.
بهینهسازی حرفهای یعنی دو کار همزمان:
اول، انتخاب درست الگوریتم و معیار بهینهسازی بر اساس نوع استراتژی.
دوم، جلوگیری از خروجیهای بیاعتبار با فیلتر چندمعیاره، نه شکار یک عدد زیبا.
الگوریتمها (Slow Complete vs Fast Genetic) و زمان استفاده
در Optimization در متاتریدر 5 دو رویکرد اصلی داری: جستوجوی کامل (Slow Complete) و جستوجوی ژنتیک (Fast Genetic). تفاوتشان فقط سرعت نیست؛ تفاوتشان این است که چگونه فضای پارامترها را میگردند و چه چیزهایی را ممکن است اصلاً نبینند.
Slow Complete یعنی تمام ترکیبهای ممکن را بررسی میکنی. این روش وقتی معنی دارد که:
- تعداد پارامترها کم است
- دامنه و گام هر پارامتر محدود و منطقی است
- میخواهی تصویر کامل از رفتار سیستم نسبت به پارامترها داشته باشی
Fast Genetic یعنی یک جستوجوی هوشمند و نمونهبردارانه. سریعتر است، اما به یک نکته حیاتی وابسته است: ژنتیک با معیار انتخابی تو حرکت میکند. یعنی اگر معیار بهینهسازی تو غلط باشد، ژنتیک سریعتر و قاطعتر همان خروجی غلط را به عنوان “بهترین” تحویل میدهد.
یک مثال مفهومی:
اگر معیار تو فقط “Balance Max” باشد، الگوریتم ژنتیک با تمام توان دنبال تنظیماتی میگردد که موجودی نهایی را بیشینه کند، حتی اگر آن تنظیمات با Drawdown سنگین، تعداد معاملات کم یا ریسک پنهان ساخته شده باشند. در این حالت، مشکل از ژنتیک نیست؛ مشکل از مقصدی است که تو برایش تعیین کردهای.
تصمیم عملی “کی ژنتیک؟ کی کامل؟” معمولاً اینطور جمعبندی میشود:
- اگر فضای جستوجو کوچک و قابل کنترل است و میخواهی مطمئن باشی چیزی را از قلم نمیاندازی، Slow Complete
- اگر فضای جستوجو بزرگ است و میخواهی سریع به مجموعهای از گزینههای قابل بررسی برسی، Fast Genetic، به شرط اینکه معیار و فیلترها درست باشند
در بهینه سازی اکسپرت در متاتریدر 5، ژنتیک یک ابزار سرعت است، نه ابزار حقیقت. حقیقت را معیارها و فیلترها تعیین میکنند.
انتخاب Optimization Criterion بر اساس نوع استراتژی
ابهام رایج این است: “همیشه Balance Max بگیرم؟” جواب کوتاه: نه. Balance Max ساده است و چون عدد نهایی را بزرگ میکند، وسوسهکننده است. ولی معمولاً دقیقاً همان چیزی را بهینه میکند که برای تداوم و ریسک مهم نیست، یا بدتر، علیه آن عمل میکند.
انتخاب معیار باید از ماهیت استراتژی بیرون بیاید، نه از علاقه به عددهای بزرگ. جدول تصمیمساز خیلی کوچک:
| نوع استراتژی | معیارهای منطقیتر برای Optimization |
| ترندفالوینگ | ترکیب سودآوری با کنترل افت سرمایه، تمرکز روی پایداری منحنی رشد |
| مینریورژن | کنترل Drawdown و رفتار در دورههای بد، حساسیت به جهشها و افتها |
| اسکالپ | واقعگرایی هزینهها و پایداری بعد از کسر هزینه، جلوگیری از نتایج شکننده با معاملات کم |
معنای عملیاش این است که بهینه سازی استراتژی معاملاتی نباید فقط “بیشینه کردن سود” باشد. باید “بیشینه کردن سود تحت محدودیت ریسک و قابلیت تکرار” باشد. چون یک سود بزرگ با یک افت غیرقابل تحمل، برای حساب واقعی هیچ ارزش عملی ندارد.
اگر معیار بهینهسازی تو اشتباه انتخاب شود، حتی بهترین الگوریتم هم بهترین خروجی را طبق همان معیار اشتباه پیدا میکند. اینجا دقیقاً همان جایی است که Optimization در متاتریدر 5 میتواند تبدیل به کارخانه تولید اورفیتینگ شود.
[پیشنهاد خوشهای]: انتخاب معیار بهینهسازی در MT5: خطای Balance Max و جایگزینها
فیلتر کردن نتایج ضعیف با OnTester و Custom Max (رویکرد حرفهای)
بهینهسازی حرفهای یعنی به جای اینکه دنبال یک عدد خوشگل باشی، یک سیستم امتیازدهی چندمعیاره بسازی و خروجیهای بیاعتبار را از همان ابتدا حذف کنی. اینجاست که ابزارهایی مثل OnTester و Custom Max معنی پیدا میکنند: تو معیار “قبولی/رد” تعریف میکنی، نه فقط “بیشترین سود”.
ایده ساده است:
قبل از اینکه نتیجهای را وارد رقابت اصلی کنی، باید حداقل استانداردها را پاس کند. مثلاً:
- حداقل تعداد معاملات (trades) برای اینکه نتیجه آماری شکننده نباشد
- حداقل Profit Factor برای اینکه مزیت ادعایی وجود داشته باشد
- سقف Drawdown برای اینکه ریسک پنهان کنترل شود
یک مثال مفهومی (نه پروژه):
در پایان هر تست، به جای اینکه فقط یک معیار را نگاه کنی، از آمار تست (TesterStatistics) چند شاخص را میگیری و اگر حداقلها پاس نشدند، همان نتیجه را عملاً “صفر” یا “رد” میکنی. اگر پاس شدند، یک امتیاز ترکیبی میسازی و به عنوان Custom Max برمیگردانی تا Optimization خروجیهای قابل دفاع را بالاتر بیاورد.
در این رویکرد، بهینه سازی اکسپرت در متاتریدر 5 تبدیل میشود به یک فرآیند مهندسی:
ابتدا حذف بیاعتبارها، سپس رقابت بین گزینههای قابل قبول.
نه اینکه ۲۰۰۰ نتیجه تولید کنی و آخرش با چشم، یکی را انتخاب کنی چون نمودارش قشنگتر است.
[پیشنهاد خوشهای]: OnTester در MQL5 برای Optimization: طراحی سیستم امتیازدهی چندمعیاره
اورفیتینگ (Overfitting): نشانهها، علتها، و راه فرار
اورفیتینگ یعنی استراتژی یا اکسپرت تو به جای اینکه یک “مزیت واقعی” را یاد گرفته باشد، دارد “جزئیات اتفاقی گذشته” را حفظ میکند. نتیجهاش هم معمولاً یک بکتست فوقالعاده است که در اولین برخورد با دادههای جدید یا شرایط واقعی، فرو میریزد. این دقیقاً همان جایی است که خیلیها فکر میکنند «بازار عوض شد»، در حالی که واقعیت سادهتر است: سیستم از اول هم چیزی برای دوام نداشته، فقط گذشته را خوب تقلید کرده است.
در بکتست و بهینه سازی استراتژی معاملاتی، اورفیتینگ دشمن شماره یک مرجعیت و تصمیمگیری است. چون اگر نتوانی آن را تشخیص بدهی، تمام بهینهسازیها به جای پیشرفت، تبدیل میشوند به تولید نسخههای زیباتر از یک اشتباه.
اورفیتینگ در بکتست یعنی چه و چرا اتفاق میافتد؟
اورفیتینگ در بک تست یعنی تو پارامترها و قوانین را طوری تنظیم کردهای که روی دادههای گذشته بهترین عملکرد را نشان بدهند، اما این عملکرد به جای اینکه از یک منطق پایدار بیاید، وابسته به الگوهای تصادفی همان بازه است. به همین دلیل “بهینهسازی بیشتر” لزوماً “بهتر” نیست، چون هرچه بیشتر فشار بدهی، سیستم بهتر میتواند گذشته را حفظ کند و در عین حال، توان تعمیمش به آینده کمتر میشود.
سه علت رایج که تقریباً همیشه پشت اورفیتینگ دیده میشوند:
- پارامتر زیاد
وقتی تعداد پارامترها زیاد باشد یا دامنه و گام آنها بیش از حد باز باشد، فضای جستوجو آنقدر بزرگ میشود که بهینهسازی میتواند برای هر دوره تاریخی یک “تنظیم خاص” پیدا کند. این یعنی نتیجه خوب، لزوماً مزیت نیست؛ ممکن است فقط انتخاب هوشمندانه بین هزاران حالت باشد. - بازه کم یا نماینده نبودن داده
اگر روی یک بازه کوتاه، یا روی یک دوره با یک رفتار خاص بازار (مثلاً فقط رنج یا فقط ترند) بهینهسازی کنی، استراتژی را عملاً برای همان فاز تربیت کردهای. بعد که بازار وارد فاز دیگر میشود، سیستم سردرگم میشود چون چیزی برای تطبیق ندارد. - معیار غلط یا تکمعیاره
وقتی معیار بهینهسازی تو فقط روی یک عدد مثل سود نهایی یا Balance Max قفل باشد، بهینهسازی به سمت تنظیماتی میرود که همان عدد را بزرگ کنند، حتی اگر با Drawdown سنگین، تعداد معاملات کم، یا ریسک پنهان ساخته شده باشند. این یکی از رایجترین مسیرهای تولید اورفیتینگ در بک تست است.
اگر میخواهی چطور از اورفیتینگ جلوگیری کنیم را درست بفهمی، باید قبول کنی که اورفیتینگ یک “اشتباه اتفاقی” نیست؛ معمولاً محصول مستقیم انتخابهای غلط در طراحی بهینهسازی است.
چکلیست ضد-اورفیت
این چکلیست برای این است که قبل از اعتماد به هر نتیجه، چند فیلتر ساده و اجرایی را رد کنی. اگر چند مورد از اینها را پاس نمیکنی، نتیجه به احتمال زیاد شکننده است و باید مشکوک باشی.
- حداقل تعداد معاملات
اگر تعداد معاملات کم است، نتیجه آماری شکننده است. یک یا دو معامله خوب یا بد میتواند کل نمودار را شکل بدهد. - محدود کردن پارامترها
پارامترها را تا حد ممکن کم و معنیدار نگه دار. هر پارامتر اضافی یعنی یک درجه آزادی بیشتر برای حفظ کردن گذشته. - محدود کردن دامنه و گام پارامترها
دامنههای خیلی باز و گامهای خیلی ریز معمولاً بهینهسازی را تبدیل میکنند به شکار نقطههای اتفاقی. دامنه باید منطقی و مبتنی بر منطق استراتژی باشد. - بررسی پایداری در چند بازه زمانی
اگر فقط روی یک بازه جواب میدهد و با تغییر بازه فرو میریزد، احتمال اورفیت بالاست. استراتژی باید در چند دوره با شرایط متفاوت قابل دفاع باشد. - تغییر بازار/نماد برای تست مقاوم بودن
اگر سیستم فقط روی یک نماد یا یک بازار خاص میدرخشد و جای دیگر نابود میشود، باید شک کنی که آیا مزیت واقعی دارد یا روی ویژگیهای خاص همان نماد قفل شده است. - جدا کردن داده برای فوروارد تست
بعد از بهینهسازی، حتماً باید یک بخش “ندیده” داشته باشی. فوروارد تست یکی از سادهترین و مهمترین راهها برای جدا کردن مزیت از خوششانسی است. - استفاده از معیارهای چندگانه به جای یک عدد
بهینه سازی استراتژی معاملاتی باید تحت محدودیت ریسک و حداقل استانداردها انجام شود، نه فقط بیشینه کردن یک عدد جذاب.
اگر میخواهی واقعاً مرجع باشی، این بخش باید در مقالهات واضح، کوتاه، و قابل اسکن باشد، چون هم کاربر انسانی از آن مثل چکلیست استفاده میکند و هم موتورهای جستجو و مدلهای هوش مصنوعی راحتتر آن را به عنوان یک بخش مرجع استخراج میکنند.
فوروارد تست
بهینه سازی استراتژی معاملاتی
[پیشنهاد خوشهای]: Walk-Forward و Robustness (نسخه پیشرفته ضد-اورفیت)
Roadmap پیشنهادی یادگیری (برای الگوتریدر/اکسپرتساز)
اگر هدف این مقاله مرجع بودن است، باید یک مسیر استاندارد بدهد که کاربر بعد از خواندن بداند دقیقاً چه کار کند، نه اینکه فقط “اطلاعات بیشتر” جمع کند. مشکل رایج این است که افراد از وسط کار شروع میکنند: یکراست میروند سراغ Optimization، بعد چون خروجیهای قشنگ میبینند، فکر میکنند پیشرفت کردهاند. در حالی که اگر Setup و Backtest درست نباشد، بهینهسازی فقط سرعت تولید توهم را بالا میبرد.
این Roadmap برای الگوتریدرها و اکسپرتسازها طراحی شده تا مسیر یادگیری و اجرای بک تست در متاتریدر ۵ و بهینه سازی اکسپرت در متاتریدر 5 استاندارد شود. معیار این مسیر این است که هر مرحله یک خروجی مشخص و قابل بررسی داشته باشد.
مسیر ۴ مرحلهای: Setup → Backtest → Analyze → Optimize → Forward
مرحله ۱: Setup (تنظیمات درست تستر)
هدف این مرحله این است که مطمئن شوی تستی که میگیری از پایه خراب نیست.
خروجی این مرحله باید این باشد:
- انتخاب درست Symbol/Timeframe/Period بر اساس منطق استراتژی
- مشخص بودن نوع مدلینگ مناسب برای استراتژی
- مشخص بودن مفروضات اجرای سفارش: اسپرد/کمیسیون/واقعگرایی شرایط
- یک تنظیمات ثابت و مستند که بتوانی دوباره همان تست را دقیقاً تکرار کنی
Deliverable مرحله ۱:
- یک “پروفایل تست” مشخص: نماد، تایمفریم، بازه زمانی، نوع مدلینگ، و مفروضات هزینهها
مرحله ۲: Backtest (بکتست قابل تکرار)
هدف این مرحله تولید یک خروجی است که اگر دوباره اجرا شود، همان تصویر را بدهد و بتوان روی آن تحلیل کرد.
خروجی این مرحله باید این باشد:
- اجرای بکتست با تنظیمات ثابت مرحله ۱
- تولید گزارش و نتایج به شکلی که قابل تکرار باشد
- بررسی اولیه اینکه تعداد معاملات و داده کافی برای نتیجهگیری حداقلی وجود دارد یا نه
Deliverable مرحله ۲:
- یک گزارش بکتست کامل و قابل ارجاع برای همان تنظیمات، با نتایج قابل تکرار
مرحله ۳: Analyze (گزارشخوانی + معیارهای تصمیم)
هدف این مرحله این است که از گزارش، “تصمیم” استخراج کنی، نه “هیجان”.
خروجی این مرحله باید این باشد:
- تفسیر معیارهای پایه مثل Drawdown، Profit Factor، Recovery Factor
- بررسی معیارهای پایداری مثل Sharpe، LR Correlation، Z-Score در حد تصمیمسازی
- تعیین حداقل استاندارد قبولی/رد برای استراتژی یا نسخه فعلی اکسپرت
Deliverable مرحله ۳:
- یک چکلیست تصمیم: چرا این نسخه قابل ادامه دادن هست یا نیست، با استناد به معیارها
مرحله ۴: Optimize → Forward (بهینهسازی با فیلتر + فوروارد تست)
هدف این مرحله این نیست که “بهترین عدد” را پیدا کنی؛ هدف این است که گزینههای قابل دفاع را پیدا کنی و بعد در داده یا شرایط نزدیک به واقعی، دوامشان را بسنجی.
خروجی این مرحله باید این باشد:
- اجرای Optimization با معیار درست و محدودیتهای ریسک
- فیلتر کردن نتایج ضعیف با حداقل استانداردها (مثلاً حداقل trades، سقف Drawdown، حداقل Profit Factor)
- انتخاب چند گزینه برتر بر اساس امتیازدهی چندمعیاره، نه یک عدد
- اجرای فوروارد تست برای سنجش پایداری و جلوگیری از اورفیتینگ
Deliverable مرحله ۴:
- یک مجموعه کوچک از تنظیمات منتخب که فیلترها را پاس کردهاند
- نتیجه فوروارد تست یا حداقل طرح اجرای آن، برای اینکه صرفاً به بکتست تکیه نکنی
این مسیر باعث میشود بک تست در متاتریدر ۵ تبدیل به یک فرآیند استاندارد شود، نه یک کار نمایشی. و بهینه سازی اکسپرت در متاتریدر 5 هم از حالت “دنبال عدد گشتن” خارج میشود و تبدیل میشود به یک چرخه تصمیمگیری قابل دفاع.
جمعبندی مرجع: حداقل استانداردی که قبل از اعتماد باید پاس شود
این مقاله اگر قرار است مرجع باشد، باید یک “حکم استاندارد” بدهد: یعنی بعد از خواندنش، کاربر دقیقاً بداند چه خروجیای از بکتست را باید جدی بگیرد و چه خروجیای را باید بدون رودربایستی رد کند. چون بزرگترین مشکل در بکتست و بهینهسازی، کمبود اطلاعات نیست؛ مشکل این است که آدمها نمیدانند کدام اطلاعات تصمیمساز است و کدام فقط تزئین گزارش است. مرجعیت یعنی همین: تبدیل اطلاعات به معیارهای قابل اجرا.
در این جمعبندی، یک حداقل استاندارد میدهیم که اگر پاس نشود، نتیجه “قابل اعتماد” نیست، حتی اگر سود نهایی جذاب باشد. و اگر پاس شود، تازه اجازه داری مرحله بعدی را شروع کنی.
بک تست را رد کن اگر (حتی اگر نمودار عالی است)
- تعداد معاملات کم است
اگر trades کم باشد، نتیجه آماری شکننده است. چند معامله خاص میتواند کل تصویر را بسازد و تو را فریب بدهد. - هزینهها و واقعگرایی لحاظ نشده
اگر اسپرد/کمیسیون/شرایط اجرای سفارش در بکتست درست دیده نشده باشد، خروجی بیشتر شبیه یک شبیهسازی خیالی است تا یک ارزیابی قابل استفاده. - فقط یک بازه کوتاه تست شده
اگر بکتست فقط روی یک بازه کوتاه یا یک فاز خاص بازار انجام شده، نتیجه احتمالاً نماینده رفتار پایدار نیست. - تصمیم فقط بر اساس یک معیار گرفته شده
اگر انتخاب تو فقط با یک عدد مثل سود نهایی یا Profit Factor یا Balance Max انجام شده باشد، ریسک پنهان و ناپایداری به احتمال زیاد از زیر دستت رد شدهاند.
قبول کن اگر (به عنوان “کاندید بررسی”، نه حکم نهایی)
- چند معیار همزمان بررسی شدهاند
حداقل باید معیارهای ریسک و کیفیت کنار سود دیده شوند. ترکیب معیارها مهمتر از بزرگ بودن یک عدد است. - نتایج بیاعتبار فیلتر شدهاند
خروجیهایی که حداقل استانداردها را پاس نمیکنند باید از همان ابتدا حذف شوند، نه اینکه وارد انتخاب نهایی شوند. - بعد از بکتست، فوروارد تست وجود دارد
اگر بعد از بهینهسازی و انتخاب گزینهها، فوروارد تست انجام نشده باشد، هنوز چیزی ثابت نشده است. بکتست میتواند شرط لازم باشد، اما شرط کافی نیست.
این استاندارد به تو کمک میکند وقتی میپرسی چگونه نتایج بک تست را تحلیل کنیم، جواب را در قالب تصمیم عملی داشته باشی، نه توضیح تئوریک. و وقتی میپرسی تفاوت بک تست و فوروارد تست چیست، اینجا به شکل کاربردی لمسش میکنی: بکتست برای غربالگری و ساختن فرضیه است، فوروارد تست برای سنجش دوام همان فرضیه در شرایط نزدیک به واقعیت.
موارد حیاتی که نباید جا بیفتد
سوالات متداول (FAQ )
چطور در متاتریدر 5 بک تست بگیریم؟
برای بکتست در MT5 باید در Strategy Tester اکسپرت یا اندیکاتور موردنظر را انتخاب کنی، نماد و تایمفریم را مشخص کنی، بازه زمانی تست را تعیین کنی و نوع مدلینگ را متناسب با منطق استراتژی انتخاب کنی. مهمترین نکته این است که بکتست فقط وقتی ارزش دارد که تنظیماتت قابل تکرار باشد و با تغییرات بیدلیل، نتیجه از این رو به آن رو نشود.
بهترین تنظیمات Strategy Tester متاتریدر 5 برای بکتست دقیق چیست؟
بهترین تنظیمات یک نسخه ثابت برای همه نیست. تنظیم درست یعنی انتخابی که با نوع استراتژی سازگار باشد: بازه زمانی نماینده، تعداد معاملات کافی، مدلینگ مناسب (نه سریعترین یا دقیقترین به شکل کور)، و لحاظ کردن هزینههای معاملاتی. اگر استراتژی داخل کندل به SL/TP حساس است، مدلهای ساده میتوانند نتیجه را فریبنده کنند؛ اگر استراتژی کندلی است، مدلینگ سنگین فقط زمان را میکشد بدون ارزش اضافه.
تفاوت بک تست و فوروارد تست چیست و کِی باید فوروارد تست کنم؟
بکتست یک شبیهسازی روی گذشته است و برای غربالگری و ساختن فرضیه استفاده میشود. فوروارد تست برای سنجش پایداری در داده یا شرایط نزدیک به واقعی است. زمان فوروارد تست وقتی است که بعد از بکتست و تحلیل گزارش، به چند گزینه “قابل دفاع” رسیدهای و مخصوصاً اگر Optimization انجام دادهای. یک قاعده عملی: اگر بعد از بهینهسازی فقط بکتست داری، هنوز چیزی ثابت نکردی.
اورفیتینگ در بک تست یعنی چه و چطور از آن جلوگیری کنیم؟
اورفیتینگ یعنی سیستم به جای یاد گرفتن مزیت پایدار، جزئیات تصادفی گذشته را حفظ کرده است. جلوگیری از اورفیتینگ یعنی محدود کردن پارامترها، تست روی بازههای مختلف، اجبار به حداقل تعداد معاملات، استفاده از معیارهای چندگانه به جای یک عدد، و در نهایت فوروارد تست. هرچه فضای بهینهسازی بازتر و معیار سادهتر باشد، احتمال اورفیتینگ بیشتر میشود.
Profit Factor خوب چند است؟ آیا بهتنهایی کافی است؟
Profit Factor بهتنهایی کافی نیست، چون میتواند با تعداد معاملات کم، یک دوره خوششانس، یا ریسک پنهان ساخته شود. Profit Factor بالا همراه با Drawdown بالا معمولاً یعنی ریسک پنهان. برای تصمیمگیری باید Profit Factor را کنار معیارهایی مثل Drawdown، Recovery Factor و شاخصهای پایداری ببینی. عدد “خوب” بدون زمینه استراتژی و تعداد معاملات، معنی قطعی ندارد.
چرا نتیجه بکتست من در حساب واقعی خراب میشود؟
چون بکتست ممکن است هزینهها و واقعیت اجرای سفارش را درست بازنمایی نکرده باشد. اسپرد، کمیسیون، اسلیپیج، تاخیر اجرا، کیفیت داده و حتی تفاوت شرایط بازار در لحظه خبر میتواند خروجی را تغییر دهد. استراتژیهایی مثل اسکالپ که حاشیه سود کوچک دارند، بیشترین آسیب را از هزینهها میبینند. اگر Expected Payoff با هزینهها نزدیک صفر شود، بکتست خوب روی کاغذ در لایو دوام نمیآورد.
Optimization در متاتریدر 5 را با Genetic انجام بدهم یا Slow Complete؟
Slow Complete همه ترکیبها را میگردد و وقتی مناسب است که پارامترها کم و دامنهها محدود باشند. Fast Genetic سریعتر است و برای فضای جستوجوی بزرگ مناسبتر، اما به شدت به معیار بهینهسازی وابسته است. ژنتیک با همان معیار حرکت میکند، پس معیار غلط یعنی خروجی غلط، فقط سریعتر. اگر معیار و فیلترها درست نباشند، Genetic میتواند کارخانه تولید نتیجههای فریبنده شود.
چطور نتایج بک تست را تحلیل کنیم که گول نخوریم؟
اول معیارهای پایه را حداقلی بخوان: Drawdown، Profit Factor، Recovery Factor، تعداد معاملات. بعد سراغ پایداری برو: Sharpe، LR Correlation، Z-Score. دنبال یک عدد معجزه نباش؛ دنبال یک ترکیب قابل دفاع باش. اگر نتیجه فقط در یک بازه کوتاه خوب است یا با یک معیار انتخاب شده، احتمال فریب بالاست. و اگر Optimization انجام شده، فوروارد تست باید بخشی از تصمیم باشد.
آیا برای بکتست حتماً باید MQL5 بلد باشم؟
برای “مصرف گزارش” و تصمیمگیری پایه، لازم نیست MQL5 را کامل بلد باشی. اما اگر هدف تو ساخت اکسپرت، اصلاح منطق، اضافه کردن فیلترها، یا طراحی معیارهای حرفهای برای Optimization است، MQL5 ضروری میشود. به زبان ساده: بکتست گرفتن بدون MQL5 ممکن است، ولی بکتست حرفهای و قابل دفاع بدون توان تغییر و کنترل منطق اکسپرت معمولاً محدود میماند.
Custom Max و OnTester چیست و چرا برای بهینهسازی حرفهای مهم است؟
Custom Max و OnTester ابزار این هستند که بهینهسازی را از حالت “یک عدد” خارج کنی و به سمت امتیازدهی چندمعیاره ببری. یعنی قبل از اینکه یک نتیجه را بهترین بدانی، آن را مجبور کنی حداقل استانداردها را پاس کند: حداقل trades، سقف Drawdown، حداقل Profit Factor و مشابه آن. این رویکرد باعث میشود Optimization به جای شکار یک خروجی خوشگل، بین گزینههای واقعاً قابل قبول رقابت کند و خروجیهای بیاعتبار از همان ابتدا حذف شوند.
منابع و استانداردها (برای بکتست معتبر)
- MetaTrader 5 Terminal Help: Strategy Testing (حالتهای تست، دقت مدلینگ، real ticks)
- MetaTrader 5 Terminal Help: Real and Generated Ticks (تفاوت تیک واقعی و تولیدشده، اثر اسپرد/تیکسازی)
- MQL5 Documentation: Testing Trading Strategies (تست و بهینهسازی، الگوریتم ژنتیک در Strategy Tester)
- MQL5 Article: Testing trading strategies on real ticks (مقایسه عملی OHLC/Every tick/Real ticks)
- MQL5 Article: Custom Walk Forward optimization in MT5 (Walk-Forward در بستر تستر داخلی)
- Bailey & López de Prado: The Deflated Sharpe Ratio (اصلاح سوگیری انتخاب، اورفیت بکتست، نانرمالیتی)
- Bailey & López de Prado: The Probability of Backtest Overfitting (چارچوب PBO/CSCV برای سنجش اورفیت)
- eScholarship (نسخه دانشگاهی/آرشیوی): The probability of backtest overfitting (ارجاع پایدارتر برای PBO)




