بسیاری از معاملهگران تازهکار پیش از بررسی دقیق سیستم معاملاتی خود، سرمایه واقعیشان را وارد بازار میکنند و با ضررهای سنگینی مواجه میشوند. برای جلوگیری از این اتفاق، پلتفرم متاتریدر ۴ ابزاری قدرتمند به نام استراتژی تستر را در اختیار شما قرار داده است تا بتوانید ایدههای معاملاتی خود را در گذشته بازار آزمایش کنید و از کارایی آنها مطمئن شوید.
یکی از مهمترین کاربردهای این ابزار، بررسی عملکرد سیستمهای معاملاتی خودکار روی دادههای تاریخی بازار است. اگر قصد دارید استراتژی خود را به صورت اتوماتیک اجرا کنید، پیشنهاد میکنیم پیش از هر اقدامی با نحوه کارکرد و نصب بهترین اکسپرت های فارکس آشنا شوید تا بتوانید دقیقترین نتایج را در بکتستهای خود به دست آورید.
در این مقاله آموزشی از تجارت فارکس، به صورت گام به گام نحوه پیکربندی و آموزش استراتژی تستر متاتریدر ۴ را بررسی میکنیم. شما با یادگیری تنظیمات این بخش، انتخاب مدلهای شبیهسازی و بررسی گزارشها، قادر خواهید بود تمامی نقاط ضعف و قوت سیستم معاملاتی خود را پیش از ورود به حساب واقعی به راحتی شناسایی کنید.
مراحل کلیدی ارزیابی اکسپرت در استراتژی تستر
نقشه راه اجرای بکتست استاندارد و بهینهسازی رباتهای معاملاتی در MT4
۱. تامین دیتای تاریخی (History Center)
دانلود و ایمپورت دادههای قیمتی ۱ دقیقهای (M1) با کیفیت بالا برای جلوگیری از خطای Mismatched charts و افزایش اعتبار تست.
۲. پیکربندی پارامترها (Settings)
تعیین نماد معاملاتی، بازه زمانی، تایمفریم و تنظیم دقیق میزان اسپرد (Spread) برای شبیهسازی شرایط بروکر در محیط لایو.
۳. انتخاب مدلسازی (Every Tick)
استفاده انحصاری از روش Every Tick جهت پردازش تمام نوسانات قیمتی خرد و دستیابی به کیفیت بکتست بالای ۹۰ درصد.
۴. تحلیل گزارش (Report Analysis)
ارزیابی فاکتور سود (بیشتر از ۱.۵)، حداکثر افت سرمایه (Max Drawdown) و نسبت موفقیت معاملات جهت تایید نهایی اکسپرت.
| مولفه / پارامتر استراتژی تستر | توضیحات و عملکرد فنی |
|---|---|
| Modeling Quality (کیفیت مدلسازی) | معیار اعتبار تست؛ دستیابی به عدد ۹۰٪ نیازمند دیتای کامل M1 و استفاده از روش Every Tick است. |
| Every tick Model | دقیقترین حالت شبیهسازی که تمام حرکات قیمتی داخل کندل (تیک دیتا) را پردازش میکند. |
| Optimization (بهینهسازی) | اجرای صدها بکتست متوالی برای یافتن بهترین ترکیب متغیرهای ورودی (Inputs) با کمترین ریسک. |
| Maximal Drawdown | بیشترین میزان افت سرمایه از بالاترین قله نمودار Equity؛ مهمترین فاکتور تایید ریسکپذیری ربات. |
| Profit Factor | نسبت کل سود ناخالص به کل ضرر ناخالص؛ اعداد زیر ۱.۲ نشاندهنده ناپایداری سیستم هستند. |
ویدئو آموزش متاتریدر ۴ و ۵
فایل صوتی آموزش متاتریدر ۴ و ۵
چرا بکتست گرفتن در استراتژی تستر متاتریدر ۴ پیش از لایو ترید الزامی است؟

اجرای بکتست در استراتژی تستر متاتریدر ۴ تنها راه علمی برای اثبات کارایی یک الگوریتم معاملاتی است. این ابزار به شما نشان میدهد که استراتژی در برابر نوسانات شدید گذشته، اخبار اقتصادی و بحرانهای مالی چگونه واکنش نشان داده است. بدون بکتست، معاملهگر صرفاً بر اساس حدس و گمان و سوگیریهای شناختی (Cognitive Biases) وارد بازار میشود.
بسیاری از تریدرها استراتژیهایی را طراحی میکنند که در تایمفریمهای بالا به خوبی کار میکنند، اما زمانی که پای مدیریت سرمایه و متغیرهای پنهان مانند Slippage و Commission به میان میآید، حساب را وارد ضرر میکنند. پنجره تستر به شما اجازه میدهد تا با تزریق دیتای واقعی، ضعفهای پنهان کدنویسی یا منطق اندیکاتورها را شناسایی کرده و پیش از به خطر انداختن حتی یک دلار، سیستم را اصلاح کنید.
پیشنیازهای فنی برای رسیدن به بکتست ۹۰ درصد معتبر چیست؟
برای دریافت بکتست باکیفیت و خطای صفر (کیفیت مدلسازی ۹۰ درصد)، داشتن دیتای تاریخی جامع (Historical Data) الزامی است. دیتای پیشفرض متاتریدر اغلب دارای گپهای قیمتی (Price Gaps) و کندلهای از دست رفته است که نتایج تست را کاملاً نامعتبر میکند.
اگر در گزارش نهایی خود با خطای Mismatched charts errors مواجه شدید، به این معناست که دیتای تایمفریمهای مختلف شما همپوشانی ندارند. برای رفع این مشکل، باید تمامی دیتای موجود در پوشه History پلتفرم را پاک کرده و از طریق منوی History Center (کلید F2)، دیتای تایمفریم ۱ دقیقهای (M1) را مستقیماً دانلود و به سایر تایمفریمها تعمیم دهید.
متاتریدر برای شبیهسازی تیکهای قیمتی در تایمفریمهای بالاتر (مانند H1)، از دیتای تایمفریمهای کوچکتر (M1 و M5) استفاده میکند. اگر دیتای M1 ناقص باشد، پلتفرم مجبور به درونیابی ریاضی (Interpolation) میشود که دقت بکتست را از ۹۰ درصد به شدت کاهش میدهد. بنابراین، همواره پیش از شروع فرآیند تست، از یکپارچگی دیتای چارت مطمئن شوید.
چگونه محیط استراتژی تستر (Strategy Tester) را در MT4 فعال و تنظیم کنیم؟
برای دسترسی به پنل استراتژی تستر در متاتریدر ۴، میتوانید از منوی بالا مسیر View > Strategy Tester را انتخاب کنید، کلیدهای ترکیبی Ctrl+R را روی کیبورد فشار دهید، یا روی آیکون ذرهبین روی نمودار در نوار ابزار کلیک کنید. پس از باز شدن، پنلی در پایین صفحه با تبهای تخصصی برای تنظیمات و گزارشگیری نمایان میشود.

در نگاه اول، تنها دو تب اصلی Settings و Journal در دسترس هستند. تب ژورنال برای بررسی ارورهای کدنویسی و اتصال به دیتابیس اهمیت دارد. پس از اجرای اولین بکتست، تبهای تحلیلی جدیدی شامل Results (لیست معاملات)، Graph (نمودار رشد) و Report (گزارش نهایی) به صورت خودکار ظاهر میشوند.
تب Settings؛ پارامترهای اصلی تنظیم بکتست کدامند؟
تب Settings مرکز فرماندهی شما برای شبیهسازی دقیق بازار است. در این بخش شما اکسپرت مورد نظر، جفتارز، بازه زمانی و میزان اسپرد را پیکربندی میکنید. کوچکترین اشتباه در این تنظیمات میتواند منجر به دریافت نتایج غیرواقعی و گمراهکننده (Curve Fitting) شود.
- Expert Advisor / Indicator: انتخاب نوع ابزار (ربات یا اندیکاتور) از لیست کشویی. فایلها باید از قبل در پوشه MQL4/Experts قرار گرفته و کامپایل شده باشند.
- Symbol & Period: انتخاب جفتارز (مانند EURUSD) و تایمفریم تحلیلی (مانند H1). توجه کنید که رباتهای مولتیتایمفریم در متاتریدر ۴ برای بکتست با محدودیتهایی مواجه هستند.
- Spread: تنظیم اسپرد بازار. اکیداً توصیه میشود از حالت Current (اسپرد متغیر لحظهای) در روزهای تعطیل استفاده نکنید، زیرا بروکرها در تعطیلات آخر هفته اسپردها را به شدت واید (Wide) میکنند و این امر باعث شکست قطعی بکتست شما میشود. عدد اسپرد را به صورت دستی وارد کنید (مثلاً ۲۰ پوینت برای ۲ پیپ).
- Visual Mode: با فعال کردن این گزینه، فرآیند باز و بسته شدن معاملات روی چارت به صورت انیمیشن نمایش داده میشود. این ابزار برای دیباگ کردن منطق ورود و خروج ربات بینظیر است.
تفاوت روشهای مدلسازی قیمتی (Modeling) در متاتریدر ۴ چیست؟
نحوه خوانش دیتا توسط هسته پردازشی متاتریدر مستقیماً به گزینه Model بستگی دارد. سه روش Every tick، Control points و Open price در متاتریدر وجود دارد که تفاوت آنها در نحوه رفتار با قیمتهای داخل یک کندل (میان Open و Close) است و مستقیماً کیفیت مدلسازی نهایی را تعیین میکنند.
درک عمیق این سه مدل برای هر توسعهدهنده سیستمهای الگوریتمی واجب است. استفاده از روش اشتباه میتواند استراتژی مخرب را به عنوان یک سیستم چاپ پول به شما معرفی کند!
مدل Every tick (هر تیک – بالاترین دقت)
در روش Every tick، پلتفرم از دیتای پایهای یک دقیقهای (M1) استفاده کرده و با الگوریتمهای فرکتالی، تمام نوسانات جزئی درون یک کندل بزرگتر (مثلاً H4) را شبیهسازی میکند. اگر استراتژی شما وابسته به فعال شدن حد ضرر (Stop Loss) پنهان یا تریلینگ استاپ (Trailing Stop) است، این تنها روش قابل اعتماد برای شماست.
مدل Control Points و Open Price
روش Control Points یک تعادل میان سرعت و دقت است. در این روش، متاتریدر تنها از ۱۲ نقطه قیمتی کلیدی درون هر کندل استفاده میکند. این روش صرفاً برای تستهای اولیه و رفع باگهای کلی ساختاری پیشنهاد میشود و خروجی آن برای استقرار سرمایه واقعی بیارزش است.
مدل Open Price سریعترین اما خطرناکترین روش است. در این حالت، اکسپرت فقط در لحظه باز شدن کندل جدید بازار را اسکن میکند. نوسانات شدید (Spikes) درون کندل کاملاً نادیده گرفته میشوند. کیفیت مدلسازی در این روش N/A (نامعتبر) است و اگر استراتژی شما به شکستهای قیمتی (Breakouts) حساس باشد، نتایج این تست کاملاً فریبنده خواهد بود.
پنجره Expert Properties؛ چگونه متغیرهای ربات معاملهگر را پیکربندی کنیم؟
با کلیک بر روی دکمه Expert Properties در تب Settings، وارد قلب تنظیمات منطقی ربات خود میشوید. این پنجره دارای سه تب تخصصی Testing، Inputs و Optimization است که به شما اجازه میدهد پارامترهای سرمایه، جهت معاملات و متغیرهای فرمول استراتژی را شخصیسازی کنید.

در سربرگ Testing، شما مشخص میکنید که حساب مجازی شما چه مقدار بالانس اولیه (Initial Deposit) داشته باشد (مثلاً ۱۰۰۰ دلار) و با چه ارزی (USD، EUR) کار کند. همچنین در بخش Positions میتوانید ربات را محدود به گرفتن فقط پوزیشنهای خرید (Only Long) یا فقط فروش (Only Short) کنید که برای بررسی سوگیری بازار (Market Bias) کاربردی است.
متغیرهای ورودی (Inputs) و گامهای بهینهسازی
تب Inputs لیستی از تمامی متغیرهای قابل تغییر در سورسکد اکسپرت (مانند دوره مووینگ اوریج، حجم لات، میزان ریسک به ریوارد) را نشان میدهد. ستون Value مقداری است که در یک بکتست عادی اعمال میشود. اما ستونهای Start (نقطه شروع)، Step (گام افزایش) و Stop (نقطه پایان) برای زمانهایی است که میخواهید فرآیند بهینهسازی (Optimization) را فعال کنید تا متاتریدر بهترین ترکیب عددی را برای شما پیدا کند.
فیلترهای بهینهسازی (Optimization) چگونه ریسک استراتژی را کاهش میدهند؟
تب Optimization در این پنجره، یک سیستم فیلترینگ قدرتمند است. فرض کنید ربات شما ۱۰۰۰ بار با متغیرهای مختلف تست میشود؛ شما نمیخواهید ترکیباتی که باعث نابودی حساب میشوند را در نتایج ببینید. با تنظیم محدودیت در این بخش، نتایج ضعیف به طور خودکار حذف میشوند.
- Maximum Drawdown: با تنظیم این گزینه روی درصد مشخص (مثلاً ۲۰٪)، پلتفرم هر ترکیبی که افت سرمایه بیشتری داشته باشد را از نتایج حذف میکند.
- Consecutive Loss Trades: مشخص میکند که سیستم حداکثر تحمل چند معامله زیانده متوالی را دارد. این متغیر برای استراتژیهای مارتینگل (Martingale) حیاتی است.
- Minimal Margin Level: از مارجین کال شدن حساب در طول تست جلوگیری کرده و ترکیبات با اهرم بیش از حد را فیلتر میکند.
تحلیل تب Results و Report؛ چگونه گزارش نهایی استراتژی تستر را بخوانیم؟
پس از اتمام فرآیند پردازش، تبهای Results و Report به نمایش درمیآیند. تب نتایج، تاریخچه دقیق تمام معاملات (شامل زمان ورود/خروج، سایز لات، قیمت تریگر شدن حد ضرر و حد سود) را به صورت جدول نمایش میدهد، در حالی که تب ریپورت، عصاره آماری عملکرد سیستم است.
مهمترین معیار سودآوری در تب Report، شاخص Profit Factor است. این عدد از تقسیم سود ناخالص (Gross Profit) بر زیان ناخالص (Gross Loss) به دست میآید. عدد ۱ به معنای سربهسر بودن سیستم است. به عنوان یک استاندارد صنعتی، تنها اکسپرتهایی با Profit Factor بالاتر از ۱.۵ ارزش پیادهسازی روی حساب واقعی را دارند.
در تب Report به نوار رنگی Modeling Quality دقت کنید. نوار سبز تیره نشاندهنده کیفیت بالای دیتا است. اگر نوار قرمز یا خاکستری مشاهده کردید، یعنی در آن بازه زمانی دیتای شما مخدوش بوده و هیچ اعتباری به نتایج تست نیست. همچنین فاکتور Expected Payoff به شما میگوید ارزش انتظاری (میانگین سود یا زیان در هر معامله) از نظر دلاری چقدر است.

دراودان (Drawdown) در گزارش بکتست چه هشدارهایی به تریدر میدهد؟
سودآوری بدون کنترل ریسک در بازارهای مالی بیمعناست. دراودان نشاندهنده میزان درد و فشاری است که سرمایه شما برای رسیدن به سود نهایی تحمل کرده است. در تب ریپورت، سه نوع دراودان اندازهگیری میشود که عدم درک آنها باعث از بین رفتن حساب معاملاتی (Blown Account) میشود.
ابتدا Absolute Drawdown را داریم که نشان میدهد موجودی حساب از مقدار واریزی اولیه (Initial Deposit) چقدر پایینتر رفته است. اما حیاتیترین شاخص، Maximal Drawdown است؛ این عدد بزرگترین افت متوالی سرمایه از آخرین قله سودآوری را نشان میدهد. اگر اکسپرت شما ۱۰۰ درصد سود کرده باشد اما Maximal Drawdown آن ۵۰ درصد باشد، از نظر مدیریت ریسک حرفهای، آن اکسپرت کاملاً مردود است.
چگونه نمودار رشد سرمایه (Equity Curve) را تفسیر و ذخیره کنیم؟
تب Graph داستان استراتژی شما را به زبان تصویر بیان میکند. در این نمودار شما دو خط اصلی مشاهده میکنید: خط آبی نمایانگر Balance (موجودی قطعی) و خط سبز نمایانگر Equity (موجودی شناور) است. زاویه صعودی این خطوط نشاندهنده پایداری سیستم است.
اگر متوجه شدید که خط سبز (Equity) به طور مکرر زیر خط آبی (Balance) نفوذهای عمیقی دارد، این هشداری جدی است که اکسپرت شما پوزیشنهای در ضرر را برای مدت طولانی باز نگه میدارد (احتمالاً بدون داشتن حد ضرر مشخص یا استفاده از تکنیکهای پرریسک مارتینگل/گرید). برای ذخیره این نمودار ارزشمند، کافیست روی گراف راستکلیک کرده و گزینه Save as Picture را انتخاب کنید تا روند تحلیل خود را برای آینده مستندسازی نمایید.

واقعا مقاله به موقع و دقیقی بود. این حرفتون که هر تریدری بدون تست و آزمون و خطا میره سراغ حساب ریل، پولش رو دور میریزه، عین حقیقته. خودم بارها دیدم و متاسفانه گاهی هم تجربه کردم که یه ایده خوب روی کاغذ یا حتی روی چارت دستی، تو بکتست یا روی حساب واقعی اصلا اون انتظارات رو برآورده نمیکنه. استراتژی تستر متاتریدر4 عصای دسته واقعا، خصوصا اگه با اکسپرتها کار کنی.
همونطور که گفتین، کیفیت دیتای گذشته بازار حرف اول رو میزنه. من یادمه اوایل کارم، خیلی سرسری دیتا دانلود میکردم و بعد میدیدم بکتستهام اصلا با واقعیت نمیخونه. بعدا فهمیدم چقدر این مدلسازی قیمتی و انتخاب Every Tick مهمه تا یه دید واقعی از عملکرد اکسپرتت پیدا کنی. بدون دیتای درست، هر چقدر هم استراتژی خفن باشه، بکتست 90٪ میشه یه رویا.
یه سوالی که همیشه برام پیش میاد اینه که چطور میشه توی استراتژی تستر متاتریدر4، شرایط واقعی بازار مثل اسلیپیجهای شدید تو اخبار یا مثلا پینگ بالای سرور بروکر رو شبیهسازی کرد؟ چون میدونم اینا میتونن روی نتایج نهایی اکسپرت تو حساب ریل خیلی تاثیر بذارن و عملا بکتست رو از حالت 90% اعتبارسنجی دور کنن. راهی هست که بشه این فاکتورها رو هم تو تستها گنجوند؟
سلام همراه گرامی، سوالتون خیلی خوب و به جاست. واقعیت اینه که استراتژی تستر متاتریدر4 به صورت بومی و مستقیم، قابلیت شبیهسازی دقیق فاکتورهایی مثل اسلیپیج یا پینگ رو نداره. این ابزار بیشتر برای تست منطق و عملکرد اکسپرت بر اساس دیتای قیمتی طراحی شده. برای شبیهسازی دقیقتر این شرایط، تریدرها معمولا از راهکارهای جانبی استفاده میکنن، مثلا تغییر اسپرد دستی در تنظیمات تستر برای شبیهسازی اسپرد متغیر یا اسلیپیجهای جزئی، یا استفاده از نرمافزارهای بکتست پیشرفتهتر که خارج از محیط متاتریدر هستن و امکانات بیشتری برای تنظیم این پارامترها دارن. اما در خود متا، متاسفانه این ویژگیها تعبیه نشده. امیدوارم این توضیح کمکی کرده باشه.
سلام ضمن تشکر بابت اطلاعات مفیدتون.
یک مشکلی دارم ،برای بک تست در متاتریدر ۴ در قسمتی که بازه زمانی میگذاریم تاریخها برای من شمسی هست و نمیتونم میلادیش کنم.
و هر بازه ای که تعیین میکنم باز هم یک ساله تست میگیره ( با اینکه داده ها را کامل در قسمت history گذاشتم)
سلام وقت بخیر
متوجه این بخش تاریخها شمسی هست نشدم لطفا از طریق تیکت به همراه اسکرین شات مشکل رو ارسال و توضیح بدید
سلام ارادت .
برای تست یک ربات در استراتژی تستر ، ما باید اسپرد طلا رو چند قرار بدیم .
سلام وقت بخیر
در تایم بازار بهتره که بزارید نرخ حساب رو بگیره در غیر اون در بروکرهای مختلف و انواع حسابشون متفاوت میشه
سلام
از دیشب استراتژی تستر کار نمیکنه. مشکل کجاست؟
چون روز شنبه و یکشنه هست و بازار تعطیل مشکل اینه؟؟؟
سلام وقت بخیر
ربطی به این موضوع نداره. منظورتون دقیقا از کار نمیکنه چی هست؟
میتونید در تیکت با اسکرین شات توضیحات رو ارسال کنید تا بررسی دقیقتر انجام بشه
اون نوار سبز زنگ که نشون میده در حال بررسی استراتژی تستر فعال میشه حرکت میکنه.
حتی کندلها هم نشون داده میشه که در حال اضافه شدن هست
ولی در قسمت نتایج ( results) چیری نماید
در صورتی که قبلا این ربات پوریشن زیاد میگرفته
ولی از دیشب فعال نمیشه متاسفانه.
احتمال زیاد تنظیمات رو تغییری دادید مثلا اسپرد رو کمتر قرار دادید یا موارد مشابه
شرمنده فقط یک سوال برام می مونه چرا تو قسمت input با دادن اطلاعات استاپ لاس و تیک پروفیت خودمون برا اکسپرت بدون اینکه تیک هیچ کدوم از متغییرها هم فعال نیست ولی بازم تو بک تست بعضی موقع ها می بینی اصلا اکسپرت با استاپ و تی پی دستیمون کار نمیکنه و از خودش استاپ و تی پی دیگه ای تو بک تست گذاشته به نظرتون چکار باید بکنیم وقتی این مشکل پیش میاد بازم از بزرگواریتون ممنونم
سلام وقت بخیر
میتونه عوامل مختلفی داشته باشه
اول تنظیمات بخش اکسپرت در استراتژی تستر رو چک کنید اگر به درستی انجام شده و عمل نمیکنه ممکن هست کدنویسی اکسپرت مورد نظر شما مشکلی داشته باشه.
ممنون از اطلاعات خوب و ارزشمندی که در اختیارمون گذاشتید واقعا خسته نباشید و خدا همیشه نگهدارتون باشه
احتراما زمانی که با استراتژی تستر کار می کنم باید F12 رو چند بار بزنم تا به اندازه یک کندل فرآیند قیمت جابجا بشه چطور میشه نمودار رو یک کندل یا مثلا یک دقیقه جابجاش کرد ممنون
سلام وقت بخیر
در بخش تنظیمات با کم و زیاد کردن سرعت بکتست گیری میتونید با مشخص کردن بازه زمامی مورد نظرتون قیمت و کندلها رو در سرعت مورد نظر مربوط به همون بازه زمانی مشاهده کنید.
سلام و سپاس از تلاش ارزشمند جنابعای لطفا راهنمایی بفرمایید چطور می تونم برای جابجایی کندل به کندل در بک تست گیری اقدام کنم ممنون
سلام همراه گرامی وقت شماهم بخیر
منظورتون از جابجایی کندل به کندل رو میشه توضیح بدید چی هست؟
سلام عالی بود
چطوری میشه اسلیپپیج و پینگ رو هم مثل اسپرد شبیهسازی کرد؟
اگه تستر خود متا نداره ، پیشنهاد خودتون چیه؟
سلام وقت بخیر
این مورد حداقل در متاتریدر 4 تاجایی که من اطلاع دارم شدنی نیست.
سلام.
تشکر از مطالب مفیدتون
سوالی دارم.
من در تست اکسرپ ها با خطای On Tick Critical Error مواجه میشم و تست اکسپرت متوقف میشه
در صورت امکان راهنمایی کنید
با تشکر
با سلام
در اولین مرحله باید بررسی کنید در بازه زمانی که این ارور میاد دیتای سالمی دارید یا خیر.
دوم به تنظیمات اکسپرت مراجعه کنید ببینید مغایرتی مثلا اسپرد وو با تنظیمات استراتژی تستر نداشته باشید.