بکتست ربات در متاتریدر ۵: آموزش قدمبهقدم Strategy Tester
فهرست مطالب
فهرست مطالب
- پیش از شروع چه لازم است؟
- مرحلهٔ ۱: باز کردن Strategy Tester
- مرحلهٔ ۲: تنظیمات (برگهٔ Settings)
- کدام حالت تیک (Modeling) را انتخاب کنیم؟
- مرحلهٔ ۳: پارامترهای ورودی (Inputs)
- مرحلهٔ ۴: اجرای تست و خواندن گزارش
- اشتباههای رایج در بکتست
- تفاوت بکتست در متاتریدر ۵ و متاتریدر ۴
- بکتست خوب بود ولی حساب واقعی ضرر داد؟
- پرسشهای پرتکرار
- بکتست را روی چه بازهای بگیرم؟
- آیا با بکتست میشود اندیکاتور را هم تست کرد؟
- چرا تست با تیک واقعی اینقدر طول میکشد؟
- نتیجهٔ بکتست در دو بروکر فرق دارد؛ کدام درست است؟
بکتست ربات در متاتریدر ۵ با Strategy Tester انجام میشود. اکسپرت را در پنجرهٔ Navigator راستکلیک کن و Test را بزن. بعد نماد، تایمفریم و بازهٔ تاریخ را انتخاب کن و حالت تیک را روی Every tick based on real ticks بگذار. با Start تست شروع میشود و نتیجه در برگههای گزارش و نمودار میآید. در ادامه هر تنظیم را یکییکی میبینیم و بعد سراغ عددهایی میرویم که در گزارش باید نگاه کنی.
این آموزش بر پایهٔ راهنمای رسمی متاتریدر ۵ نوشته شده است (بررسیشده در آبان ۱۴۰۵). اگر هنوز با متاتریدر ۴ کار میکنی، آموزش بکتست در استراتژی تستر متاتریدر ۴ را بخوان؛ روش کلی یکی است ولی تستر متاتریدر ۵ امکانات بیشتری دارد.
پیش از شروع چه لازم است؟
- نسخهٔ دسکتاپ متاتریدر ۵ روی ویندوز. تستر استراتژی در اپ موبایل نیست (چرا اکسپرت روی متاتریدر موبایل اجرا نمیشود).
- فایل اکسپرت با پسوند
ex5(یا سورسmq5) در پوشهٔMQL5Experts. این پوشه را از منوی File و گزینهٔ Open Data Folder پیدا میکنی؛ مراحل کامل در راهنمای نصب اکسپرت در متاتریدر آمده است. فایلهایex4مخصوص متاتریدر ۴ هستند و در متاتریدر ۵ اجرا نمیشوند. - اتصال به حساب یک بروکر، حتی حساب دمو. دادههای تاریخی را تستر از سرور همان بروکر دانلود میکند، پس نتیجهٔ تست به دادهٔ همان بروکر بستگی دارد.
مرحلهٔ ۱: باز کردن Strategy Tester
دو راه ساده داری:
- از منوی View گزینهٔ Strategy Tester را بزن (یا کلیدهای
Ctrl+R). پنجرهٔ تستر پایین صفحه باز میشود. - در پنجرهٔ Navigator روی نام اکسپرت راستکلیک کن و Test را بزن. تستر باز میشود و همین اکسپرت در آن انتخاب شده است.
تستر متاتریدر ۵ یک صفحهٔ شروع هم دارد که چند کار آماده (مثل تست ساده یا بهینهسازی) پیشنهاد میدهد و تستهای قبلی را هم نگه میدارد. میتوانی بین آنها با نام اکسپرت، نماد، تایمفریم یا حالت تیک بگردی.
مرحلهٔ ۲: تنظیمات (برگهٔ Settings)
| تنظیم | چه کار میکند | پیشنهاد برای تست اول |
|---|---|---|
| نماد و تایمفریم | نماد و تایمفریم چارت اصلی تست | همان نماد و تایمفریمی که اکسپرت روی چارت واقعی اجرا میشود |
| Date (بازهٔ تاریخ) | یک بازهٔ آماده یا تاریخ شروع و پایان دلخواه. تستر پیش از تاریخ شروع کمی دادهٔ اضافه هم میگیرد تا دستکم ۱۰۰ کندل برای محاسبهٔ اندیکاتورها داشته باشد. | بازهای که هم روند صعودی دارد، هم نزولی و هم بازار رنج؛ نه فقط چند ماه |
| Forward | بخش آخر بازه را جدا نگه میدارد و روی آن جداگانه تست میکند. گزینهها: No، 1/2، 1/3، 1/4 و Custom. | هنگام بهینهسازی، 1/3 یا 1/4 |
| Delays (تأخیر اجرا) | تأخیر شبیهسازیشده در اجرای سفارشهای اکسپرت: بدون تأخیر، تأخیر تصادفی یا تأخیر ثابت | برای اکسپرتهای کوتاهمدت، تست دوباره با تأخیر تصادفی |
| Modeling (حالت تیک) | اینکه قیمتها در طول هر کندل چطور ساخته شوند (جدول بعدی) | Every tick based on real ticks |
| Deposit و Leverage | موجودی اولیه، ارز حساب و اهرم | همان موجودی و اهرمی که واقعاً معامله میکنی |
| Optimization | اجرای چندبارهٔ تست با ترکیبهای مختلف پارامترها | در تست اول خاموش (Disabled) |
| Visual mode | نمایش معاملهها روی چارت همزمان با تست | برای دیدن رفتار اکسپرت مفید است؛ هنگام بهینهسازی در دسترس نیست |
کدام حالت تیک (Modeling) را انتخاب کنیم؟
مهمترین تنظیم برای دقت نتیجه همین است. متاتریدر ۵ پنج حالت دارد:
| حالت | چطور کار میکند | کی به کار میآید |
|---|---|---|
| Every tick based on real ticks | تیکهای واقعی ثبتشده در سرور بروکر؛ هیچ قیمتی شبیهسازی نمیشود. بار اول دانلود داده ممکن است طول بکشد. | تست نهایی، و هر اکسپرتی که با حد ضرر و حد سود نزدیک یا اسکالپ کار میکند |
| Every tick | همهٔ تیکها از دادهٔ دقیقهای شبیهسازی میشوند | وقتی بروکر تیک واقعی برای آن بازه ندارد |
| 1 minute OHLC | فقط چهار قیمت باز، بیشترین، کمترین و بسته شدن هر کندل یکدقیقهای | بررسی سریع پیش از تست دقیق |
| Open prices only | فقط قیمت باز شدن هر کندل | اکسپرتهایی که فقط در شروع کندل تصمیم میگیرند، و بهینهسازی سریع اولیه |
| Math calculations | بدون دادهٔ تاریخی و بدون معامله؛ فقط محاسبهٔ ریاضی | برای بکتست معاملاتی کاربرد ندارد |
یک قاعدهٔ ساده: اگر نتیجه در حالت سریع خوب بود، حتماً با تیک واقعی هم تست کن. فاصلهٔ زیاد بین این دو نتیجه یعنی اکسپرت به حرکت قیمت درون کندل حساس است و نتیجهٔ حالت سریع قابل اعتماد نیست.
مرحلهٔ ۳: پارامترهای ورودی (Inputs)
در برگهٔ Inputs همهٔ تنظیمهای اکسپرت را میبینی، مثل حجم معامله، حد ضرر، حد سود یا دورهٔ اندیکاتورها. مقدارها را همانطور بگذار که میخواهی روی حساب واقعی اجرا کنی. با دکمهٔ Save میتوانی این مجموعه را در یک فایل set نگه داری و بعداً همان را روی چارت واقعی بار کنی، تا چیزی که تست شده با چیزی که اجرا میشود یکی باشد.
مرحلهٔ ۴: اجرای تست و خواندن گزارش
در برگهٔ Settings دکمهٔ Start را بزن. پیشرفت کار پایین پنجره و پیامهای اکسپرت در برگهٔ Journal دیده میشود. وقتی تست تمام شد، نتیجه در دو برگه میآید: Result برای گزارش عددی (در نسخههای تازهتر با نام Backtest) و Graph برای نمودار. در نمودار، خط آبی موجودی (Balance) است و خط سبز اکوئیتی (Equity). اگر Forward را روشن کرده باشی، نتیجهٔ آن بخش در برگهٔ جدای Forward میآید. با گزینهٔ Open Chart در منوی راستکلیک گزارش هم معاملهها را روی چارت میبینی.
در گزارش این عددها را اول نگاه کن:
- History Quality: درصد دادهٔ درست در تاریخچهٔ تست. اگر پایین است، دادهٔ بروکر ناقص بوده و به بقیهٔ عددها هم نمیشود تکیه کرد.
- Total Net Profit: سود خالص کل دوره، یعنی سود ناخالص منهای زیان ناخالص.
- Profit Factor: سود ناخالص تقسیم بر زیان ناخالص. عدد ۱ یعنی سود و زیان برابرند؛ هرچه بالاتر از ۱ باشد بهتر است.
- Expected Payoff: میانگین سود یا زیان هر معامله.
- Equity Drawdown Relative و Balance Drawdown Maximal: بیشترین افت حساب از یک قله تا کف بعدی. این مهمترین عدد ریسک است: بپرس آیا حاضری این افت را روی حساب واقعی تحمل کنی.
- Recovery Factor: سود تقسیم بر بیشترین افت. نشان میدهد اکسپرت برای این سود چقدر ریسک کرده است.
- Sharpe Ratio: بازده نسبت به نوسان بازده؛ عدد بالاتر یعنی بازده یکنواختتر.
- Total Trades: تعداد معاملهها. نتیجهای که از دهها معامله به دست آمده، از نتیجهٔ پنج معامله خیلی قابلاعتمادتر است.
اشتباههای رایج در بکتست
- بهینهسازی بیش از حد: اگر پارامترها را آنقدر عوض کنی که روی گذشته بهترین نتیجه را بدهند، اکسپرت به همان گذشته عادت میکند و در بازار آینده خوب کار نمیکند. برای همین Forward را روشن کن: پارامترهایی که روی بخش Forward هم خوب ماندهاند قابلاعتمادترند.
- بازهٔ کوتاه: چند ماه بازار صعودی برای ارزیابی کافی نیست. اکسپرت باید در بازار صعودی، نزولی و رنج تست شود.
- حالت تیک نامناسب: تست اکسپرتی که درون کندل تصمیم میگیرد با Open prices only نتیجهٔ غیرواقعی میدهد.
- هزینهها: اسپرد، کمیسیون و سوآپ حساب تو با حسابی که داده از آن آمده یکی باشد؛ تفاوت اینها سود اکسپرتهای پرمعامله را کاملاً عوض میکند.
- یک بار تست و تمام: بعد از بکتست خوب، اکسپرت را چند هفته روی حساب دمو یا با حجم کم اجرا کن تا رفتارش را در بازار زنده هم ببینی.
تفاوت بکتست در متاتریدر ۵ و متاتریدر ۴
- متاتریدر ۵ حالت تیک واقعی بروکر را دارد؛ متاتریدر ۴ تیکها را از دادهٔ کندلها شبیهسازی میکند.
- در متاتریدر ۵ تست Forward درون خود تستر است و یک اکسپرت میتواند همزمان روی چند نماد تست شود.
- بهینهسازی متاتریدر ۵ میتواند روی همهٔ نمادهای Market Watch اجرا شود و از همهٔ هستههای پردازنده کمک بگیرد.
برای روش متاتریدر ۴ و وارد کردن دادهٔ تاریخی در آن، آموزش بکتست در متاتریدر ۴ را ببین.
بکتست خوب بود ولی حساب واقعی ضرر داد؟
معمولاً یکی از اینهاست: پارامترها بیش از حد بهینه شدهاند، تست با حالت تیک نامناسب انجام شده، یا اسپرد و لغزش قیمت حساب واقعی با تست فرق دارد. نتیجهٔ گذشته، حتی بهترینش، سود آینده را تضمین نمیکند و هر اکسپرتی ممکن است ضرر کند.
اگر میخواهی بکتست اکسپرتت را کسی که خودش اکسپرت مینویسد بررسی کند، یا اکسپرتی میخواهی که از اول با تست درست ساخته شود، بکتست حرفهای ربات و سفارش اکسپرت متاتریدر ۵ را ببین.
پرسشهای پرتکرار
بکتست را روی چه بازهای بگیرم؟
بازهای که بازار در آن هم روند داشته و هم رنج بوده است، و آنقدر بلند که اکسپرت در آن دهها معامله انجام دهد. برای اکسپرتهای روزانه معمولاً چند سال داده لازم است.
آیا با بکتست میشود اندیکاتور را هم تست کرد؟
تستر برای اکسپرت ساخته شده است. اندیکاتور را میشود در حالت Visual روی دادهٔ گذشته دید، ولی گزارش سود و زیان فقط برای اکسپرتی ساخته میشود که معامله باز و بسته میکند. برای سنجیدن سیگنالهای یک اندیکاتور، آن را به اکسپرت تبدیل میکنند.
چرا تست با تیک واقعی اینقدر طول میکشد؟
بار اول تستر باید تیکهای آن بازه را از سرور بروکر دانلود کند. بعد از آن داده روی کامپیوتر میماند و تستهای بعدی سریعترند.
نتیجهٔ بکتست در دو بروکر فرق دارد؛ کدام درست است؟
هر دو، برای دادهٔ همان بروکر. قیمتها، اسپرد و ساعت سرور بروکرها کمی فرق دارد. اکسپرت را با دادهٔ همان بروکری تست کن که با آن معامله میکنی.
منابع: راهنمای رسمی متاتریدر ۵ دربارهٔ تست اکسپرت، گزارش تست و انواع بهینهسازی.
دیدگاه خود را بنویسید