اکسپرت متاتریدر (Expert Advisor یا EA) برنامهای است که روی نمودار متاتریدر ۴ یا ۵ اجرا میشود، قیمت را لحظهبهلحظه بررسی میکند و طبق قوانینی که از قبل برایش تعریف شده، بدون دخالت دستی معامله باز و بسته میکند یا حد ضرر و حد سود را مدیریت میکند. اکسپرت با زبان MQL4 یا MQL5 در محیط MetaEditor نوشته میشود و پیش از اجرا روی حساب واقعی باید در Strategy Tester بکتست و روی حساب دمو آزمایش شود. در این مقاله توضیح میدهیم اکسپرت دقیقاً چیست، از چه اجزایی تشکیل میشود، تفاوت MQL4 و MQL5 چیست و ساخت یک اکسپرت قابل اعتماد چه مراحلی دارد.
توجه: این مقاله فنی است و توصیه سرمایهگذاری نیست. هیچ اکسپرت یا بکتستی سودآوری را تضمین نمیکند و معامله در بازارهای مالی با ریسک از دست رفتن سرمایه همراه است.
اکسپرت متاتریدر چیست و چه فرقی با اندیکاتور و اسکریپت دارد؟
در متاتریدر سه نوع برنامه اصلی وجود دارد که اغلب با هم اشتباه گرفته میشوند. اندیکاتور فقط محاسبه و رسم میکند، اسکریپت یک بار اجرا میشود و تمام میشود، اما اکسپرت بهطور مداوم روی نمودار فعال میماند و میتواند معامله کند.
| نوع برنامه | نحوه اجرا | امکان معامله | کاربرد رایج |
|---|---|---|---|
| اکسپرت (EA) | با هر تیک قیمت، تایمر یا رویداد معاملاتی | دارد | اجرای خودکار استراتژی، مدیریت معاملات باز |
| اندیکاتور | با هر تیک، فقط محاسبه و رسم | ندارد | نمایش سیگنال، سطوح و فیلترها روی نمودار |
| اسکریپت | یکبار با اجرای دستی | دارد | بستن همه معاملات، ثبت سفارش گروهی |
کد اکسپرت در فایلهای .mq4 یا .mq5 نوشته و به فایل اجرایی .ex4 یا .ex5 کامپایل میشود. برای اینکه اکسپرت معامله کند، دکمه AutoTrading (در متاتریدر ۴) یا Algo Trading (در متاتریدر ۵) باید فعال باشد.
اجزای یک اکسپرت استاندارد
اکسپرتی که فقط «سیگنال خرید و فروش» داشته باشد در عمل کافی نیست. یک اکسپرت قابل اتکا معمولاً این بخشها را دارد:
- منطق سیگنال: شرایط ورود و خروج، مثلاً شکست یک سطح، تقاطع میانگینها یا رسیدن قیمت به لبه یک کانال.
- فیلترها: شرایطی که معامله را متوقف میکنند؛ مثل فیلتر روند در تایمفریم بالاتر، ساعتهای معاملاتی یا اسپرد بیش از حد.
- مدیریت حجم: محاسبه لات بر اساس موجودی، اکوییتی یا درصد ریسک، با رعایت حداقل لات و گام لات بروکر.
- مدیریت معامله باز: حد ضرر، حد سود، حد ضرر متحرک، بستن بخشی از معامله یا بستن سبدی.
- محافظهای ریسک: سقف تعداد معاملات، توقف در افت سرمایه مشخص، بررسی مارجین آزاد.
- شناسه جادویی (Magic Number): تا اکسپرت فقط معاملات خودش را مدیریت کند و با معاملات دستی یا اکسپرتهای دیگر قاطی نشود.
- ثبت رویداد (لاگ): ثبت دلیل هر ورود و خروج و هر خطای بروکر برای عیبیابی.
اکسپرت یا اندیکاتور اختصاصی میخواهید؟
استراتژی خود را بگویید تا ساخت اکسپرت یا اندیکاتور سفارشی متاتریدر را بررسی و برآورد کنیم.
درخواست دمو و مشاوره رایگانتماس: ۰۲۱-۹۱۳۰۲۴۲۷ساخت اکسپرت و اندیکاتور
MQL4 یا MQL5؛ اکسپرت را برای کدام نسخه بسازیم؟
انتخاب نسخه معمولاً به بروکر و نوع حساب بستگی دارد. نکته مهم این است که کد این دو زبان مستقیماً با هم سازگار نیست و فایل .ex4 در متاتریدر ۵ اجرا نمیشود؛ انتقال اکسپرت بین دو نسخه نیازمند بازنویسی بخش معاملاتی است.
| ویژگی | متاتریدر ۴ (MQL4) | متاتریدر ۵ (MQL5) |
|---|---|---|
| مدل معاملات | سفارشمحور؛ هر معامله یک Order مستقل | Order، Deal و Position جدا؛ حساب نتینگ یا هجینگ |
| تست استراتژی | تکنماد | چندنمادی، چندهستهای، امکان تست با تیک واقعی |
| تعداد تایمفریم | ۹ | ۲۱ |
| تابع معامله | OrderSend و توابع Order* | ساختار MqlTradeRequest یا کلاس CTrade |
مراحل ساخت اکسپرت؛ از ایده تا حساب واقعی
- مستند کردن قوانین: همه شرایط باید عددی و بیابهام نوشته شوند. «وقتی روند صعودی است بخر» قابل کدنویسی نیست؛ «وقتی ADX تایمفریم چهارساعته بالای ۲۵ است و قیمت بالای میانگین ۵۰ بسته شد بخر» هست.
- تعیین موارد مرزی: اگر همزمان سیگنال خرید و فروش صادر شد چه شود؟ اگر متاتریدر وسط معامله بسته و دوباره باز شد؟ اگر بروکر سفارش را رد کرد؟
- کدنویسی و کامپایل در MetaEditor با پارامترهای ورودی قابل تنظیم.
- بکتست روی داده تاریخی با کیفیت مناسب و اسپرد واقعبینانه.
- تست فوروارد روی حساب دمو برای دیدن رفتار در شرایط زنده: اسلیپیج، تأخیر و خطاهای سرور.
- اجرای محدود روی حساب واقعی با حداقل حجم و پایش نزدیک.
- نگهداری: اجرا روی VPS برای کارکرد شبانهروزی و بررسی دورهای لاگها.
بیشترین هزینه و تأخیر در پروژههای اکسپرت، مثل هر پروژه نرمافزاری دیگر، از نیازمندیهای مبهم میآید؛ موضوعی که در مقاله دلایل تأخیر در تحویل پروژههای نرمافزاری مفصلتر بررسی شده است.
بکتست را چطور بخوانیم؟
گزارش Strategy Tester عددهای زیادی دارد. این چند شاخص مهمترند و باید با هم دیده شوند، نه جداگانه:
| شاخص | تعریف | نکته |
|---|---|---|
| Profit Factor | سود ناخالص تقسیم بر زیان ناخالص | زیر ۱ یعنی استراتژی در آن دوره زیانده بوده است |
| Maximum Drawdown | بیشترین افت از یک قله سرمایه | مهمترین معیار تحمل ریسک |
| Recovery Factor | سود خالص تقسیم بر بیشترین افت | نشان میدهد سود به چه قیمتی به دست آمده |
| Expected Payoff | سود خالص تقسیم بر تعداد معاملات | اگر از هزینه اسپرد و کمیسیون کمتر باشد، نتیجه شکننده است |
| تعداد معاملات | کل معاملات دوره تست | تعداد کم، نتیجه را از نظر آماری بیاعتبار میکند |
مهمترین خطر، بهینهسازی بیش از حد (Overfitting) است: پارامترها آنقدر روی داده گذشته تنظیم میشوند که نتیجه بکتست عالی است اما در بازار زنده تکرار نمیشود. تقسیم داده به دوره بهینهسازی و دوره آزمون جداگانه و آزمایش پارامترهای نزدیک به مقدار بهینه، دو راه ساده برای کاهش این خطر است.
چکلیست خطاهای رایج در اکسپرتها
- در نظر نگرفتن اسپرد متغیر و کمیسیون در منطق ورود و خروج
- نادیده گرفتن حداقل فاصله حد ضرر (Stop Level) و Freeze Level بروکر
- گرد نکردن حجم به گام لات مجاز و رد شدن سفارش
- تکیه بر متغیرهای حافظه که با ریاستارت متاتریدر از بین میروند
- تفاوت منطقه زمانی سرور بروکر با ساعت محلی در فیلترهای زمانی
- نبود رفتار مشخص در گپهای آخر هفته و انتشار اخبار
- بررسی نکردن کد بازگشتی سفارش و تکرار بیپایان درخواست ناموفق
ساخت اکسپرت و اندیکاتور در ژابیز پردا
ژابیز پردا اکسپرت و اندیکاتور اختصاصی برای متاتریدر ۴ و ۵ (MQL4/MQL5)، اندیکاتور و استراتژی Pine Script برای تریدینگویو، تبدیل ابزار بین پلتفرمها و ابزارهای مبتنی بر API بروکرها را طراحی و پیادهسازی میکند. بهعنوان نمونه، یک اکسپرت گرید کانالی برای متاتریدر ۴ ساختهایم که کانال قیمت را از سقف و کف N کندل اخیر با حداقل و حداکثر عرض مجاز تشخیص میدهد، شبکه سفارشهای Limit یا Stop را با فاصله ثابت یا وابسته به اسپرد و ATR میچیند، با فیلتر ADX در تایمفریم بالاتر از معامله در روند قوی پرهیز میکند، حجم را بر اساس اکوییتی و بزرگتر در نزدیکی لبههای کانال تنظیم میکند و در شکست کانال همه معاملات را میبندد، در صورت تنظیم یک معامله شکست باز میکند و کانال را دوباره تشخیص میدهد؛ همراه با محافظهای اسپرد، سقف تعداد معاملات، معاملات یکطرفه، توقف در افت سبد و کنترل مارجین.
تجربه بیش از دو دهه توسعه نرمافزار سفارشی باعث میشود پیش از کدنویسی، قوانین استراتژی را با شما مستند و موارد مرزی را مشخص کنیم. اگر میخواهید بدانید ساخت ابزار اختصاصی چه زمانی بر خرید اکسپرت آماده برتری دارد، مقاله مقایسه نرمافزار آماده و سفارشی را ببینید. برای ارسال هشدار و گزارش معاملات به گوشی هم میتوان اکسپرت را به ربات تلگرام متصل کرد. برای مشاهده نمونهکارها و ثبت سفارش به صفحه طراحی اکسپرت و اندیکاتور اختصاصی مراجعه کنید یا با شماره ۰۲۱-۹۱۳۰۲۴۲۷ تماس بگیرید.
تأکید میکنیم که ما ابزار نرمافزاری میسازیم، نه استراتژی سودده؛ مسئولیت انتخاب استراتژی و مدیریت ریسک با معاملهگر است و هیچ وعده سودی داده نمیشود.
پرسشهای متداول
آیا اکسپرت متاتریدر سود تضمینی دارد؟
خیر. اکسپرت فقط قوانین تعریفشده را دقیق و بدون احساسات اجرا میکند. اگر استراتژی در شرایط فعلی بازار مزیت نداشته باشد، اکسپرت همان زیان را سریعتر و منظمتر محقق میکند. نتیجه خوب بکتست هم تضمینی برای آینده نیست.
آیا برای اجرای اکسپرت باید کامپیوتر همیشه روشن باشد؟
بله، اکسپرت فقط وقتی کار میکند که متاتریدر باز و به اینترنت متصل باشد. به همین دلیل معمولاً آن را روی یک سرور مجازی (VPS) با اتصال پایدار اجرا میکنند.
آیا میتوان اندیکاتور تریدینگویو را به اکسپرت متاتریدر تبدیل کرد؟
بله، به شرط اینکه منطق اندیکاتور مشخص باشد. کد Pine Script مستقیماً در متاتریدر اجرا نمیشود و باید در MQL4 یا MQL5 بازنویسی شود؛ سپس بخشهای معاملاتی مثل مدیریت حجم، حد ضرر و محافظهای ریسک به آن اضافه میشود و نتیجه دو نسخه روی داده یکسان مقایسه میشود.