اکسپرت یا Expert Advisor در سادهترین تعریف، مجموعهای از قوانین کدنویسیشده است که داخل MetaTrader اجرا میشود تا بخشی از تحلیل، تولید سیگنال، ارسال سفارش یا مدیریت معامله را خودکار کند. تفاوت مهم آن با یک «ماشین سودده» همینجاست: EA فقط همان منطق، داده، تنظیمات و مجوزهایی را اجرا میکند که برایش تعریف شدهاند. اگر منطق ضعیف، داده نامناسب، تنظیم ریسک خطرناک یا شرایط اجرای واقعی متفاوت باشد، خودکارشدن فرایند مشکل را حل نمیکند؛ فقط اجرای آن را سریعتر و منظمتر میکند.
برای تصمیمگیری درباره یک اکسپرت، چهار سؤال از خود عبارت «چقدر سود میدهد؟» مهمتر است: دقیقاً چه قانونی را اجرا میکند، در چه محیطی آزمایش شده، افت سرمایه و هزینه اجرای آن چگونه کنترل میشود و برای اجرای زنده چه دسترسیهایی میخواهد. در ادامه از همین چهار زاویه به EA نگاه میکنیم تا هم تعریف و نصب آن روشن شود و هم بتوانید بکتست، Forward Test، فایلهای MT4/MT5 و ادعاهای فروشنده را واقعبینانهتر ارزیابی کنید.
اکسپرت ادوایزر چیست و دقیقاً چه کاری انجام میدهد؟

در اکوسیستم MetaTrader، Expert Advisor یک نوع برنامه است که میتواند بهصورت مداوم روی نمودار اجرا شود، داده بازار و خروجی اندیکاتورها را بخواند، شرطهای از پیش نوشتهشده را بررسی کند و در صورت مجاز بودن، درخواستهای معاملاتی بفرستد یا پوزیشنهای موجود را مدیریت کند. بنابراین ترجمه تحتاللفظی «مشاور» نباید باعث این برداشت شود که EA ذاتاً فقط پیشنهاد میدهد؛ اینکه یک اکسپرت فقط تحلیل کند، سیگنال بدهد یا معامله هم انجام دهد به کد آن و مجوز Auto Trading بستگی دارد.
در مستندات رسمی MetaTrader درباره اکسپرت، EA بهعنوان برنامهای برای خودکارسازی فعالیتهای تحلیلی و معاملاتی معرفی میشود و مجوز معامله خودکار نیز جداگانه قابل کنترل است.
این تعریف یک مرز مهم میسازد: «اکسپرت» نام یک ساختار نرمافزاری در MetaTrader است، نه نام یک استراتژی خاص. دو EA میتوانند کاملاً رفتار متفاوتی داشته باشند؛ یکی فقط Stop Loss و حجم را مدیریت کند، دیگری بر اساس شکست قیمت وارد معامله شود و سومی چند نماد را همزمان پایش کند.
EA از دریافت داده تا ارسال سفارش چگونه عمل میکند؟
دادههای مورد نیاز وارد برنامه میشوند: قیمت Bid/Ask، کندلها، زمان، وضعیت حساب، مشخصات نماد یا خروجی اندیکاتورها؛ دقیقاً به اندازهای که کد درخواست کرده است.
Rule Engine شرطها را بررسی میکند؛ برای مثال «اگر میانگین سریع بالاتر از میانگین کند رفت و Spread از حد تعریفشده کمتر بود و پوزیشن باز نداشتیم».
ماژول ریسک، در صورت وجود، حجم، Stop Loss، Take Profit، حداکثر تعداد پوزیشن یا سایر محدودیتها را محاسبه میکند.
اگر همه شرطها برقرار و مجوز معامله فعال باشد، EA درخواست سفارش را به ترمینال میدهد؛ اجرای واقعی بعدی به سرور بروکر و شرایط بازار وابسته است.
پس از ورود، برنامه میتواند پوزیشن را بر اساس قواعدی مثل Trailing Stop، خروج زمانی، تغییر سیگنال یا سقف زیان مدیریت کند و رویدادها را در Journal/Log بنویسد.
این چرخه ممکن است با هر Tick، با تشکیل کندل جدید، با Timer یا رخدادهای دیگر اجرا شود. پس جمله «EA هر لحظه معامله میکند» درست نیست؛ EA هر بار که منطقش فراخوانی میشود بررسی میکند آیا کاری باید انجام شود یا نه.
اکسپرت چه چیزی را نمیداند و چه چیزی را تضمین نمیکند؟
اکسپرت آینده را «نمیداند». حتی اگر از مدل آماری، یادگیری ماشین یا چند اندیکاتور استفاده کند، خروجی آن تابع داده و الگوریتمی است که در اختیارش قرار گرفته است. تغییر رژیم بازار، جهش ناگهانی Spread، گپ، خطای اتصال، تغییر مشخصات نماد یا رویدادی که در منطق برنامه دیده نشده میتواند رفتاری ایجاد کند که در بکتست دیده نشده است.
خودکار بودن همچنین به معنی حذف کامل تصمیم انسانی نیست. انتخاب EA، تنظیم Inputs، تعیین سرمایه، زمان روشن/خاموش کردن، انتخاب بروکر و واکنش به خطاها همچنان تصمیمهای انسانیاند. اتوماسیون میتواند اجرای قواعد را منظم کند؛ اما کیفیت قواعد و کیفیت کنترل ریسک را از هیچ ایجاد نمیکند.
اکسپرت با ربات تریدر، اندیکاتور و اسکریپت چه تفاوتی دارد؟
در وب فارسی، «اکسپرت»، «ربات فارکس» و «ربات تریدر» اغلب به جای هم استفاده میشوند. برای مکالمه روزمره این همپوشانی قابل فهم است، اما از نظر فنی بهتر است دامنه هر اصطلاح را جدا کنیم.
ابزار | ماهیت اجرا | تحلیل | معامله خودکار | کاربرد شاخص |
|---|---|---|---|---|
Expert Advisor (EA) | برنامه مداوم داخل MetaTrader | بله | بله، اگر کد و permission اجازه دهد | قواعد تحلیلی/معاملاتی، مدیریت پوزیشن و اتوماسیون |
Trading Bot | اصطلاح عمومیتر برای نرمافزار خودکار معامله | بسته به پلتفرم | معمولاً هدف اصلی آن معامله خودکار است | میتواند خارج از MetaTrader و از طریق API هم اجرا شود |
Custom Indicator | ابزار تحلیلی در MetaTrader | بله | خودِ Indicator معامله مستقیم انجام نمیدهد | محاسبه/نمایش داده و سیگنال تحلیلی |
Script | برنامه یکبار اجرا در MetaTrader | ممکن است | میتواند یک عملیات معاملاتی انجام دهد | کار تکمرحلهای؛ برخلاف EA دائماً فعال نیست |
آیا هر Expert Advisor همان ربات معاملهگر است؟
اگر منظور از «ربات معاملهگر» هر نرمافزاری باشد که قواعد معامله را خودکار میکند، یک EA خودکار میتواند زیرمجموعه این مفهوم باشد. اما هر Trading Bot الزاماً Expert Advisor نیست؛ رباتی که مستقیماً به API یک صرافی متصل است، از نظر معماری هیچ ارتباطی با MetaTrader ندارد. از طرف دیگر، یک EA مدیریت معامله ممکن است اصلاً نقطه ورود نسازد و فقط پوزیشنهای دستی شما را مدیریت کند. بنابراین دقیقتر است به جای جنگ روی واژهها، وظیفه واقعی برنامه را مشخص کنیم.
اکسپرت در MT4 و MT5 چگونه ساخته و اجرا میشود؟

اگر هنوز نقش پلتفرم، تفاوت نسخهها و اتصال حساب برایتان روشن نیست، راهنمای متاتریدر 4 و 5 این مبانی را جداگانه توضیح میدهد.
برای MT4 نیز مستندات رسمی Expert Advisors در MetaTrader 4 استفاده از MQL4 برای خودکارسازی تحلیل و فعالیت معاملاتی را توضیح میدهد؛ فایلهای MT4 و MT5 را نباید مستقیماً قابلجایگزینی فرض کرد.
در عمل، هر EA باید برای محیط مقصد خودش ساخته شود. تفاوت فقط نام فایل نیست؛ MQL4 و MQL5 مدلهای برنامهنویسی و APIهای متفاوتی دارند و منطق مدیریت سفارش/پوزیشن نیز میتواند نیازمند Port کردن باشد. داشتن سورس کد، امکان اصلاح و کامپایل مجدد را میدهد؛ داشتن فقط فایل اجرایی، برای اجرای همان نسخه کافی است اما برای بررسی یا تغییر منطق محدودیت ایجاد میکند.
MQL4 و MQL5 و فایلهای MQ4، EX4، MQ5 و EX5
Platform | Language | Source file | Compiled file | Experts folder | Cross-version |
|---|---|---|---|---|---|
MT4 | MQL4 | MQ4 | EX4 | MQL4 > Experts | EX4 روی MT5 اجرا نمیشود |
MT5 | MQL5 | MQ5 | EX5 | MQL5 > Experts | EX5 روی MT4 اجرا نمیشود |
راهنمای رسمی ساخت و کامپایل برنامههای MQL5 نشان میدهد فایل سورس MQ5 در MetaEditor کامپایل میشود و خروجی اجرایی EX5 برای اجرا در پلتفرم ساخته میشود.
برای MT4 نیز منطق کلی Source → Compile → Executable برقرار است. اگر فایل سورس دارید و بعد از بهروزرسانی پلتفرم خطا میبینید، باید Compile errors و dependencyها بررسی شوند؛ صرف تغییر پسوند فایل یا کپی EX4 به پوشه MT5 تبدیل واقعی انجام نمیدهد.
Inputs، Magic Number و مجوزهای اجرای خودکار چه نقشی دارند؟
Inputs همان پارامترهایی هستند که توسعهدهنده برای تغییر رفتار EA در اختیار کاربر گذاشته است؛ مثل حجم ثابت، درصد ریسک، دوره اندیکاتور، ساعت معامله، حداکثر Spread یا فاصله Stop. وجود Input به معنی امن بودن بازه مقدار نیست؛ یک مقدار افراطی میتواند منطق نسبتاً محافظهکارانه را به سیستم پرریسک تبدیل کند.
Magic Number نیز شناسهای است که بسیاری از EAها برای تشخیص معاملههای متعلق به خود استفاده میکنند. هر EA الزاماً این گزینه را به کاربر نشان نمیدهد، اما وقتی چند سیستم روی یک حساب کار میکنند، تفکیک صحیح سفارشها و پوزیشنها حیاتی است. علاوه بر Inputs، مجوز Auto Trading در سطح پلتفرم و خود EA، و در بعضی برنامهها permissionهایی مثل DLL یا WebRequest، رفتار نهایی را تعیین میکنند.
انواع اکسپرت را از دو زاویه طبقهبندی کنید
دو طبقهبندی را با هم قاطی نکنید: «سطح خودکارسازی» میگوید EA چه مقدار از کار را انجام میدهد؛ «منطق استراتژی» میگوید بر اساس چه قواعدی تصمیم میگیرد. یک EA نیمهخودکار میتواند Trend-following باشد و یک EA کاملاً خودکار هم میتواند همان منطق را اجرا کند.
انواع EA بر اساس سطح خودکارسازی
نوع | چه کاری میکند | نکته ارزیابی |
|---|---|---|
تمامخودکار | تحلیل + ورود + مدیریت + خروج طبق کد | ریسک تنظیم اشتباه یا توقف نظارت؛ نیاز به kill switch و limits |
نیمهخودکار / Signal | تحلیل و پیشنهاد/هشدار؛ تأیید نهایی با کاربر | تأخیر یا تصمیم دستی میتواند نتیجه را از بکتست جدا کند |
Trade Manager | مدیریت پوزیشنهای دستی یا موجود؛ SL/TP/Trailing/Partial close/size | نباید با EA دارای edge ورود اشتباه گرفته شود |
انواع EA بر اساس منطق استراتژی
اگر هنوز بین Trend، Breakout، Mean Reversion یا سبکهای دیگر مرزبندی روشنی ندارید، انواع استراتژیهای معاملاتی منطق تولید سیگنال و روش آزمون این خانوادهها را توضیح میدهد.
Family | منطق نمونه | ریسک کلیدی |
|---|---|---|
Trend / Momentum | ادامه حرکت و فیلتر جهت | بازار رنج و whipsaw |
Breakout | عبور از محدوده/سطح | False breakout و slippage هنگام جهش |
Mean Reversion / Range | بازگشت به میانگین/حدود رنج | شکستن رژیم رنج و ادامه روند |
Scalping | هدفهای کوچک و تعداد اجرای بالا | Spread، commission و latency بسیار حساس |
Event / News | قواعد پیرامون رویداد یا volatility | گپ، spread widening، execution uncertainty |
Grid | چند سفارش در سطوح مختلف | انباشت exposure در حرکت یکطرفه |
Martingale-like sizing | افزایش حجم پس از زیان یا الگوی مشابه | ریسک رشد سریع exposure و tail loss؛ «مدیریت ریسک» تلقی نشود |
نصب و فعالسازی اکسپرت در متاتریدر 4 و 5
قبل از کپی هر فایل، نسخه و منبع آن را بررسی کنید. فایل EX4 برای MT4 و EX5 برای MT5 است؛ فایل MQ4/MQ5 سورس محسوب میشود و در صورت نیاز باید در MetaEditor همان نسخه کامپایل شود. اگر فروشنده یک DLL، فایل کتابخانه یا URL خارجی نیز میخواهد، آن dependency بخشی از سطح ریسک برنامه است و باید جداگانه اعتبارسنجی شود.
در MetaTrader از File → Open Data Folder وارد پوشه داده شوید.
برای MT4 به MQL4 → Experts و برای MT5 به MQL5 → Experts بروید و فایل سازگار را قرار دهید.
Navigator را Refresh کنید یا پلتفرم را دوباره اجرا کنید. اگر سورس دارید و برنامه نمایش داده نمیشود، Compile errors را در MetaEditor بررسی کنید.
نمودار نماد و تایمفریم مورد نظر را باز کنید و EA را از Navigator روی Chart قرار دهید.
Inputs را خطبهخط کنترل کنید؛ مقدار پیشفرض را صرفاً چون «default» است امن فرض نکنید.
ابتدا Auto Trading/Algo Trading را خاموش نگه دارید، منطق تحلیلی و Journal را بررسی کنید و فقط بعد از تست اجازه معامله بدهید.
Experts/Journal و وضعیت اتصال حساب را پس از راهاندازی کنترل کنید؛ اجرای silent بدون log قابل اتکا نیست.
در MT5، MetaTrader صراحتاً هشدار میدهد Allow DLL Imports را برای برنامهای که به آن اعتماد ندارید فعال نکنید. DLL میتواند قابلیت برنامه را گسترش دهد، اما سطح دسترسی و ریسک را نیز بالا میبرد. WebRequest هم بهتر است فقط برای URLهایی فعال شود که واقعاً لازم و شناختهشدهاند.
خطاهای رایج بعد از نصب اکسپرت

مشکل | علتهای محتمل | مسیر بررسی |
|---|---|---|
EA در Navigator دیده نمیشود | مسیر اشتباه، فایل نسخه دیگر، compile error | Data Folder، folder صحیح، Refresh و MetaEditor را چک کنید |
EA روی Chart هست اما معامله نمیکند | Auto Trading خاموش، permission داخلی خاموش، شرطها برقرار نیستند | اول Journal و سپس Common/Inputs و وضعیت Algo Trading را بررسی کنید |
Invalid volume / stops / price | Lot step، minimum stop distance، digits یا symbol spec با فرض کد نمیخواند | مشخصات نماد در بروکر و محاسبات EA را تطبیق دهید |
DLL/WebRequest error | permission یا dependency غیرفعال/ناموجود | قبل از فعالسازی، trust و نیاز واقعی dependency را ارزیابی کنید |
رفتار چند EA با هم عجیب است | تداخل مدیریت پوزیشن/شناسهها یا ریسک تجمیعی | Magic/filters، symbol scope و total exposure را بررسی کنید |
قبل از حساب واقعی، اکسپرت را چطور آزمایش کنیم؟
Strategy Tester رسمی MetaTrader 5 امکان اجرای EA روی داده تاریخی، Optimization و تقسیم بازه برای Forward Test را فراهم میکند؛ این ابزار برای آزمون است، نه برای تضمین نتیجه آینده.
ترتیب منطقی ارزیابی این است: ابتدا صحت عملکرد کد، بعد Backtest، سپس دادهای که برای تنظیم پارامترها استفاده نشده، بعد Demo/Forward و در نهایت اگر همه کنترلها قابل قبول بودند، اجرای محدود و قابل توقف با پول واقعی. پرش مستقیم از یک نمودار سودده بکتست به حساب اصلی، دقیقاً مرحلهای را حذف میکند که باید تفاوت مدل و واقعیت را آشکار کند.
بکتست واقعبینانه چه تنظیماتی میخواهد؟
نماد و مشخصات قرارداد: همان market/symbol یا شرایطی تا حد امکان مشابه محیط اجرای آینده.
بازه زمانی: چند وضعیت بازار را پوشش دهد؛ فقط یک دوره کوتاه یا یک روند مطلوب، robustness را نشان نمیدهد.
مدل داده: برای استراتژی حساس به intrabar/tick، حالتهای سادهتر مانند Open Prices Only میتوانند بیش از حد خوشبینانه یا اساساً نامتناسب باشند.
Spread، commission، swap/funding و delay: تا حد ممکن مشابه یا محافظهکارانه نسبت به اجرای واقعی لحاظ شوند.
Initial deposit، leverage و currency: با حسابی که قرار است استفاده شود همخوان باشد؛ sizing از این ورودیها اثر میگیرد.
Visual/Journal sanity check: چند معامله را دستی دنبال کنید تا مطمئن شوید کد چیزی غیر از آنچه تصور میکنید انجام نمیدهد.
در MT5، Strategy Tester میتواند delay شبکه را نیز شبیهسازی کند و داده تاریخی/تیکها را بر اساس mode انتخابی آماده کند. برای یک EA اسکالپ، تفاوت چند پوینت Fill میتواند نتیجه را بیش از یک سیستم با هدفهای بزرگ تغییر دهد؛ بنابراین «بهترین mode» مطلق وجود ندارد، بلکه باید mode با منطق Strategy تناسب داشته باشد.
Forward Test و داده خارج از نمونه چرا مهماند؟

بهینهسازی پارامترها روی همان دادهای که بعداً با آن عملکرد را گزارش میکنید، خطر Curve Fitting را بالا میبرد. MetaTrader در Forward Test بخشی از بازه را از مرحله تنظیم جدا میکند و پارامتر انتخابشده را روی قسمت بعدی میسنجد. این کار یک کنترل مفید است، اما اگر دهها بار split را عوض کنید تا بالاخره نتیجه خوب شود، همان داده خارج از نمونه نیز عملاً وارد چرخه بهینهسازی شده است.
Robustness بیشتر زمانی دیده میشود که نتیجه به یک نقطه بسیار باریک از Inputs وابسته نباشد، در چند بازه و شرایط مختلف منطق رفتاری مشابهی داشته باشد و با اضافهشدن هزینههای واقعبینانه فوراً از سود به زیان نچرخد. هدف Forward Test این نیست که دقیقاً همان سود بکتست تکرار شود؛ مهمتر این است که رفتار سیستم—تعداد معامله، holding time، drawdown و منطق ورود/خروج—بهطور غیرقابل توضیح فرو نریزد.
دمو و Forward Live چه چیزی را نشان میدهند؟
Demo/Forward Live مدل تاریخی را با جریان قیمت و اتصال واقعی ترکیب میکند، اما هنوز کیفیت اجرای حساب واقعی را کاملاً بازنمایی نمیکند. Demo میتواند برای یافتن crash، خطای session، ناسازگاری symbol، مشکل timezone، news filter و dependency خارجی بسیار مفید باشد. اگر رفتار Demo با Backtest اختلاف بنیادی دارد، قبل از سرمایه واقعی باید علت را پیدا کنید، نه اینکه آن را «نوسان طبیعی» بنامید.
گزارش بکتست اکسپرت را با چه معیارهایی بخوانیم؟
تعریف رسمی شاخصهای گزارش تست MetaTrader 5 شامل Drawdown، Profit Factor، Recovery Factor، Expected Payoff، Sharpe Ratio و تعداد معاملات است؛ هیچکدام بهتنهایی حکم «خوب» یا «بد» قطعی برای همه استراتژیها نمیدهند.
Metric | چه میگوید؟ | چطور بد تفسیر نشود؟ |
|---|---|---|
History Quality / Ticks | کیفیت و حجم داده شبیهسازی | اگر داده/مدل با Strategy ناسازگار باشد، بقیه metrics ظاهری میشوند |
Total Net Profit | نتیجه مالی دوره تست | بدون نسبت به risk و capital معنی ناقص دارد |
Equity Drawdown | افت equity از قله به کف | برای درک ریسک شناور و فشار واقعی حساب بسیار مهم است |
Profit Factor | Gross Profit ÷ Gross Loss | PF=1 یعنی سود و زیان ناخالص برابر؛ بالاتر بودن بهتنهایی robustness را ثابت نمیکند |
Recovery Factor | Profit ÷ Maximum Drawdown | نسبت بازده ثبتشده به افت؛ به sample و تعریف drawdown حساس است |
Expected Payoff | میانگین نتیجه آماری هر deal/trade طبق گزارش | باید در برابر هزینه execution و اندازه نمونه دیده شود |
Sharpe Ratio | بازده نسبت به نوسان return در Tester | برای مقایسه مفید است اما به ساختار داده و توزیع بازده حساس است |
Total Trades | اندازه نمونه معاملات | نمونه کوچک میتواند metricهای زیبا ولی ناپایدار بسازد |
Consecutive losses | رشتههای زیان | برای تحمل روانی/سرمایه و طراحی risk limits مهم است |
چرا سود خالص و Win Rate بهتنهایی کافی نیستند؟
Win Rate بالا میتواند کنار Risk/Reward ضعیف باشد؛ Profit Factor مناسب میتواند روی تعداد معامله کم ساخته شده باشد؛ Net Profit بالا ممکن است با Drawdownی به دست آمده باشد که برای حساب شما قابل تحمل نیست. حتی Sharpe نیز «مجوز معامله» نیست. یک گزارش را باید بهعنوان مجموعهای از شواهد بخوانید، نه مسابقهای که هر عدد بزرگتر برنده است.
یک کنترل ساده این است که Average/Expected trade را با هزینه واقعی اجرای هر معامله مقایسه کنید. اگر edge متوسط هر معامله فقط کمی بزرگتر از Spread+commission+slippage است، تغییر کوچک در شرایط اجرا میتواند کل نتیجه را عوض کند. این نکته بهخصوص برای Scalping و سیستمهای پرتعداد اهمیت بیشتری دارد.
یک گزارش فرضی را چگونه مقایسه کنیم؟
فرض کنید EA-A در یک تست 35٪ رشد با 28٪ Equity Drawdown، Profit Factor برابر 1.40 و 40 معامله دارد؛ EA-B در همان سرمایه اولیه 20٪ رشد با 8٪ Drawdown، Profit Factor برابر 1.25 و 450 معامله ثبت کرده است. از این چهار عدد نمیتوان گفت B یا A «بهتر» است. باید بدانیم داده، هزینه، مدت تست، منطق استراتژی، توزیع زیانها و نتیجه Forward هرکدام چیست.
همین مثال نشان میدهد چرا Screenshot یک منحنی صعودی برای خرید EA کافی نیست. گزارش قابل ارزیابی باید settingها، symbol/timeframe، بازه، مدل داده، هزینهها و اگر Optimization انجام شده، نحوه جدا کردن داده validation را نیز روشن کند.
چرا نتیجه بکتست با حساب واقعی فرق میکند؟
عامل | اثر روی EA | چرا Backtest و Live جدا میشوند؟ |
|---|---|---|
Spread | هزینه ورود/خروج و تغییرپذیری آن | در خبر یا ساعات کمعمق میتواند widening داشته باشد |
Commission | هزینه مستقیم به ازای حجم/معامله | سیستم پرتعداد حساستر است |
Slippage | فاصله قیمت درخواست/trigger با fill | در جهش و نقدشوندگی کم تشدید میشود |
Latency | زمان بین تصمیم EA و رسیدن/اجرای درخواست | برای setupهای سریع مهمتر است |
Gap / News | پرش قیمت و نبودن quoteهای میانی | Stop ممکن است دقیق در قیمت مورد انتظار پر نشود |
Symbol specifications | digits، tick size/value، lot step، stops level | کد hard-coded میتواند روی بروکر دیگر خطا یا sizing متفاوت بدهد |
Swap/Funding | هزینه نگهداری پوزیشن | برای holding طولانی میتواند نتیجه را تغییر دهد |
Uptime/Connection | توقف terminal/VPS یا اتصال server | فرصت/مدیریت پوزیشن ممکن است از دست برود |
هزینه اجرا، Spread و Slippage کجا وارد نتیجه میشوند؟
برای اینکه هزینه اجرا را فقط یک عدد تبلیغاتی نبینید، راهنمای اسپرد و هزینه واقعی معامله تفاوت Bid/Ask، کمیسیون و اسلیپیج را جداگانه باز میکند.
اگر استراتژی در هر معامله بهطور متوسط هدف کوچکی میگیرد، یک Spread بزرگتر یا چند پوینت Slippage میتواند نسبت بزرگتری از Expected Payoff را بخورد. در مقابل، سیستمهای کندتر با هدفهای بزرگتر ممکن است نسبت به latency چند میلیثانیهای حساسیت کمتری داشته باشند. بنابراین باید friction را نسبت به ساختار Strategy بسنجید، نه با یک نسخه عمومی.
بروکر، نماد و زیرساخت اجرای EA چرا مهماند؟
نماد EURUSD در دو بروکر میتواند نامگذاری، digits، contract size، minimum lot، lot step، stop level یا session متفاوت داشته باشد. EA باید این ویژگیها را از platform بخواند یا فرضهایش با محیط مقصد همخوان باشد. hard-code کردن lot یا pip conversion بدون کنترل symbol specifications یکی از مسیرهای خطای قابل پیشگیری است.
برای EAهایی که news filter دارند، راهنمای خواندن تقویم اقتصادی و تحلیل واکنش بازار کمک میکند فرق زمان رویداد، اهمیت خبر و Surprise داده را بفهمید.
همچنین اگر EA به فایل خارجی، WebRequest یا API نیاز دارد، availability آن سرویس بخشی از سیستم معاملاتی شماست. یک Backtest محلی ممکن است این dependency را شبیهسازی نکند. در ارزیابی «اکسپرت» فقط کد ورود را نبینید؛ کل زنجیره data → terminal → network → broker → market را سیستم واحد فرض کنید.
مزایا و محدودیتهای اکسپرت فارکس
مزیت | ارزش واقعی | محدودیت همراه |
|---|---|---|
اجرای منظم Rule Set | دستورهای یکسان را بدون تردید لحظهای اجرا میکند | اگر Rule Set بد باشد، همان خطا با انضباط اجرا میشود |
سرعت واکنش | شرطها را سریعتر از اجرای دستی بررسی میکند | execution latency و server/broker همچنان وجود دارد |
قابلیت Backtest | منطق قابلکدنویسی را میتوان روی تاریخ آزمود | Backtest آینده را تضمین نمیکند و ممکن است overfit شود |
نظارت مداوم | تا وقتی terminal/environment فعال است بازار را پایش میکند | نیازمند uptime، اتصال و monitoring است |
مدیریت چند rule/نماد | در صورت طراحی مناسب میتواند کارهای تکراری را مقیاس دهد | ریسک تجمیعی/correlation و bug میتواند همزمان چند موقعیت را درگیر کند |
کاهش دخالت احساسی در execution | در اجرای fully automated از تصمیم لحظهای کم میکند | انتخاب پارامتر، شروع/توقف و risk budget هنوز انسانی است |
پس مزیت اصلی EA «سود بیشتر» نیست؛ مزیت پایه آن تبدیل یک فرایند تعریفپذیر به اجرای تکرارشونده و قابلآزمایش است. اینکه این اجرا در نهایت سودآور، زیانده یا ناپایدار باشد سؤال جداگانهای است که فقط با داده و کنترل ریسک پاسخ میگیرد.
اکسپرت آماده، رایگان، پولی یا اختصاصی؟
نوع | مزیت محتمل | ریسک/هزینه | برداشت درست |
|---|---|---|---|
Ready-made رایگان | هزینه ورود کم؛ امکان یادگیری/آزمون | منبع، کد، update و permission ممکن است نامشخص باشد | قیمت صفر دلیل کیفیت یا ناامنی نیست |
Ready-made پولی | ممکن است support، license و history بهتری داشته باشد | marketing، cherry-picked backtest و محدودیت license | قیمت بالا مدرک edge نیست |
اختصاصی / Custom | قواعد متناسب با Strategy شما؛ امکان audit/تغییر در قرارداد درست | هزینه توسعه، bug، نیاز به specification دقیق | وقتی Strategy rule-based و قابل تست دارید منطقیتر است |
Trade Manager | برای نظم در SL/TP/size و مدیریت پوزیشن | ممکن است هیچ edge ورود ارائه نکند | برای اتوماسیون مدیریت با ترید دستی مفید است |
هشدار CFTC درباره وعدههای سود تضمینی رباتهای معاملاتی یادآوری میکند که ادعاهای بازده بسیار بالا یا تضمینی، بهویژه همراه با تبلیغات الگوریتم یا AI، میتوانند نشانه خطر باشند و هزینههایی مثل Spread و Subscription نیز باید در ارزیابی لحاظ شوند.
اکسپرت حرفهای فارکس را با چه معیارهایی بسنجیم؟
منطق معامله یا حداقل دسته Strategy قابل توضیح است؛ «الگوریتم محرمانه همیشه سودده» پاسخ قابل ارزیابی نیست.
نسخه پلتفرم، فایلها، dependencyها و سازگاری broker/symbol روشن است.
Risk controls شامل حجم، maximum exposure، stop logic و شرایط توقف مستند است.
Backtest با settingهای کامل، دوره کافی و هزینههای واقعبینانه ارائه شده و فقط screenshot منحنی نیست.
اگر Optimization انجام شده، Forward/Out-of-sample یا روش validation روشن است.
نتیجه Demo/Forward و رفتار عملی با Backtest تناقض بنیادی بدون توضیح ندارد.
Permissions مثل DLL/WebRequest حداقل و توجیهپذیرند.
نسخهبندی، changelog، پشتیبانی و رفتار در updateهای platform مشخص است.
وعده سود تضمینی، Win Rate 100٪ یا بازده ثابت بدون ریسک وجود ندارد.
قبل از حساب واقعی امکان تست مستقل شما وجود دارد.
بنابراین «اکسپرت حرفهای فارکس» را بهتر است برچسب بازاریابی ندانیم. حرفهای بودن از شفافیت منطق، قابلیت بازتولید تست، کنترل ریسک، پایداری نسبی پارامترها، امنیت اجرا و امکان مانیتورینگ میآید؛ نه از تعداد معاملات برنده در یک تصویر انتخابشده.
دانلود اکسپرت از منبع ناشناس چه ریسکی دارد؟
فایل اجرایی compiled بهتنهایی برای اجرا کافی است، اما شما معمولاً نمیتوانید منطق داخلی آن را مثل سورس بخوانید. اگر چنین فایل ناشناسی DLL یا WebRequest هم میخواهد، سطح اعتماد لازم بالاتر میرود. منبع دانلود، hash/version در صورت ارائه، نام توسعهدهنده، changelog و permissionها را نگه دارید و فایل ناشناس را مستقیماً روی محیطی که حساب اصلی شما باز است آزمایش نکنید.
همچنین «قفلشدن سورس» با «بدافزار بودن» یکی نیست؛ بسیاری از محصولات تجاری فقط executable میدهند. مسئله این است که وقتی audit کد ممکن نیست، باید شواهد رفتاری، منبع، permission و محیط تست سختگیرانهتر شود. اگر EA از شما اطلاعات ورود، API key یا URL ناشناس میخواهد، دقیقاً بدانید این داده کجا و چرا استفاده میشود.
مدیریت ریسک اکسپرت قبل از فعالکردن Auto Trading
اگر EA از Stop Loss استفاده میکند، راهنمای حد ضرر و ریسک اجرای Stop Loss توضیح میدهد چرا Trigger شدن استاپ لزوماً به معنی Fill دقیق در همان قیمت نیست.
اگر EA حجم یا مارجین را بر اساس ورودی دستی میگیرد، ماشین حساب معاملاتی میتواند برای کنترل مستقل عدد قبل از فعالسازی حساب واقعی مفید باشد.
کنترل | سؤال قبل از اجرا | فایده |
|---|---|---|
Risk per trade / lot sizing | حجم چگونه تعیین میشود؟ ثابت، درصدی یا بر اساس فاصله Stop؟ | یک مقدار غیرواقعی میتواند risk را چند برابر کند |
Maximum simultaneous positions | چند معامله/نماد همزمان مجاز است؟ | risk تجمعی و correlation را محدود میکند |
Daily/Equity loss limit | آیا بعد از سقف زیان EA متوقف میشود؟ | یک fail-safe جدا از منطق ورود ایجاد میکند |
Spread/Slippage filter | چه شرایطی باعث عدم ورود میشود؟ | در بازار پرهزینه از execution نامطلوب میکاهد؛ تضمین fill نیست |
News/session filter | آیا زمانهای خاص مستثنا هستند؟ | باید timezone و منبع رویداد درست باشد |
Position ownership | EA چطور معاملههای خودش را تشخیص میدهد؟ | برای چند EA یا معامله دستی از تداخل جلوگیری میکند |
Kill switch / monitoring | چطور سریع Auto Trading را قطع و log را بررسی میکنید؟ | برای bug، data failure یا رفتار غیرمنتظره لازم است |
هیچ عدد ثابتی مثل «۲ درصد برای همه» در این مقاله بهعنوان استاندارد جهانشمول تجویز نمیشود. Risk budget باید با Strategy، Drawdown هدف، تعداد معاملات همزمان، همبستگی نمادها و توان تحمل زیان شما سازگار باشد. به همین دلیل URL جدید قانون ۲ درصد FXAmazon نیز تا زمان تأیید live/publish در این اجرا لینک نشد.
Grid و Martingale را با مدیریت ریسک اشتباه نگیرید
Grid یعنی چیدن چند سفارش/پوزیشن در سطوح مختلف؛ Martingale-like sizing یعنی افزایش حجم بعد از زیان یا الگوی مشابه. ممکن است یک EA هر دو، یکی یا هیچکدام را داشته باشد. نکته اصلی این است که «افزایش حجم برای جبران» مدیریت ریسک محافظهکارانه محسوب نمیشود؛ exposure را بالا میبرد و در روند یکطرفه یا رشته زیان میتواند Drawdown را با سرعت زیادی بزرگ کند.
اگر فروشنده Max Drawdown بسیار کم نشان میدهد، بررسی کنید آیا زیانهای شناور در Equity دیده شدهاند، آیا پوزیشنهای باز پایان تست بسته شدهاند و آیا Stop واقعی وجود دارد. Balance curve صاف در سیستمی که زیان را مدت طولانی باز نگه میدارد میتواند تصویر ناقصی از ریسک باشد؛ Equity و floating P/L را کنار Balance ببینید.
آیا برای اجرای 24 ساعته اکسپرت به VPS نیاز دارید؟
راهنمای Virtual Hosting متاتریدر توضیح میدهد که محیط مجازی برای اتصال مداوم پلتفرم و کاهش فاصله شبکه تا سرور بروکر طراحی شده است؛ VPS منطق استراتژی یا احتمال سود را بهتر نمیکند.
اگر EA باید در تمام ساعات بازار فعال باشد، خاموش شدن PC، Sleep، قطع برق یا قطع اینترنت میتواند چرخه آن را متوقف کند. VPS یا Virtual Hosting این مشکل عملیاتی را کاهش میدهد. برای سیستمهایی که فقط در یک جلسه کوتاه و تحت نظارت شما کار میکنند، VPS الزام مطلق نیست؛ اما باید بدانید در زمان خاموش بودن ترمینال چه اتفاقی برای مدیریت پوزیشنهای باز میافتد.
Latency پایینتر میتواند برای Strategyهای حساس به اجرای سریع مفید باشد، اما «VPS نزدیک بروکر» یک Strategy بدون edge را سودده نمیکند. همچنین برخی محیطهای virtual محدودیتهایی برای DLL دارند؛ dependencyهای EA را قبل از مهاجرت بررسی کنید و بعد از Migration حتماً log و charts فعال را کنترل کنید.
پرسشهای پرتکرار درباره Expert Advisor
پرسشهای زیر برای پاسخ به Intentهای پرتکرار کاربر نوشته شدهاند. این بخش محتوایی است و بهدلیل وضعیت فعلی Google، FAQPage برای Rich Result پیشنهاد نشده است.
آیا اکسپرت بدون باز بودن MetaTrader کار میکند؟
خیر، برای EA معمولی محیط MetaTrader باید در حال اجرا و به سرور متصل باشد تا رویدادها را دریافت و منطق را اجرا کند. اگر کامپیوتر شخصی خاموش میشود، VPS/Virtual Hosting میتواند محیط را آنلاین نگه دارد. سفارشهایی که قبلاً روی سرور بروکر ثبت شدهاند ممکن است مستقل از ترمینال باقی بمانند، اما مدیریت پویا توسط EA بدون runtime فعال ادامه پیدا نمیکند.
آیا اکسپرت MT4 روی MT5 اجرا میشود؟
فایل compiled MT4 یعنی EX4 مستقیماً روی MT5 اجرا نمیشود و EX5 هم روی MT4 اجرا نمیشود. اگر سورس MQ4/MQ5 را دارید، تبدیل بین نسخهها معمولاً به Port کردن منطق و APIها و سپس Compile در محیط مقصد نیاز دارد؛ تغییر پسوند فایل تبدیل محسوب نمیشود.
آیا اکسپرت رایگان لزوماً ضعیفتر از اکسپرت پولی است؟
خیر. قیمت معیار کیفیت، امنیت یا robustness نیست. یک EA رایگان میتواند شفاف و مفید باشد و یک EA گران میتواند بیشازحد بهینهشده یا نامناسب برای حساب شما باشد. منطق، تست مستقل، risk controls، permissionها، versioning و پشتیبانی را ارزیابی کنید.
آیا میتوان چند اکسپرت را همزمان اجرا کرد؟
بله، اما در MT5 در هر Chart فقط یک Expert Advisor اجرا میشود؛ برای چند EA معمولاً Chartهای جدا استفاده میشوند. علاوه بر این محدودیت UI، باید مطمئن شوید سیستمها پوزیشنهای یکدیگر را دستکاری نمیکنند و risk تجمعی حساب از حد مورد نظر شما بالاتر نمیرود.
آیا بکتست سودده، سود آینده را ثابت میکند؟
خیر. Backtest فقط نشان میدهد منطق تحت فرضهای داده و اجرای آن تست در گذشته چه رفتاری داشته است. Forward Test، داده خارج از نمونه، هزینه واقعی، تغییر رژیم بازار و خطاهای عملیاتی میتوانند نتیجه متفاوتی بسازند. Past performance مدرک سود آینده نیست.
آیا برای استفاده از اکسپرت باید برنامهنویسی بلد باشیم؟
برای استفاده از یک EA آماده الزاماً نه؛ اما باید Inputs، ریسک و permissionهای آن را بفهمید. برای تغییر منطق داخلی یا ساخت EA اختصاصی، دانش MQL4/MQL5 یا همکاری با توسعهدهنده لازم است. وجود سورس کد امکان audit و تغییر را بیشتر میکند.
آیا VPS باعث سودده شدن اکسپرت میشود؟
خیر. VPS فقط availability و در بعضی موارد latency را بهبود میدهد. اگر Strategy edge ندارد، sizing خطرناک است یا EA overfit شده، اجرای 24 ساعته همان مشکل را پیوستهتر اجرا میکند. VPS زیرساخت است، نه منبع بازده.
اکسپرت را بهعنوان سیستم قابل آزمون ارزیابی کنید، نه وعده سود
یک EA خوب باید بتواند از مرحله «ایده» تا «رفتار زنده» ردپای قابل توضیح داشته باشد: Rule Set روشن، فایل و نسخه سازگار، Backtest با فرضهای مشخص، Forward/Out-of-sample، risk controls، permissionهای حداقلی و monitoring. هرجا یکی از این حلقهها حذف شود، عدد سود اهمیت کمتری پیدا میکند چون نمیدانید نتیجه از edge واقعی آمده یا از overfit، هزینه ندیده، exposure پنهان یا شرایط خاص یک دوره.
برای کاربر مبتدی، شروع منطقی این نیست که «بهترین اکسپرت فارکس» را پیدا کند؛ ابتدا باید بفهمد EA چه کاری میکند، چه چیزی را نمیتواند تضمین کند و چطور میشود ادعای آن را آزمود. برای کاربر نیمهحرفهای، قدم بعدی ساخت یک validation process ثابت است تا هر EA جدید—رایگان، پولی یا اختصاصی—با همان معیارها سنجیده شود. این رویکرد ربات را از یک وعده بازاریابی به یک سیستم نرمافزاری قابل اندازهگیری تبدیل میکند.




