
پاسخ کوتاه: MQL4 زبان رباتهای متاتریدر ۴ است و MQL5 زبان رباتهای متاتریدر ۵. هر ربات فقط روی پلتفرمی اجرا میشود که برایش نوشته شده، پس مهمترین معیار انتخاب ساده است: حساب معاملاتی شما روی کدام پلتفرم است. خود دو زبان از سالها پیش به هم نزدیک شدهاند. فرق اصلی در پلتفرم است: متاتریدر ۵ مدل معامله دقیقتر، تستری که چند نماد را با هم میسنجد و ۲۱ تایمفریم دارد.
این راهنما تفاوتها را بیاغراق کنار هم میگذارد، میگوید برای ربات شما کدام بهتر است و چه اشتباههایی هزینهٔ ساخت را دو برابر میکند. جزئیات فنی از مستندات رسمی MQL4، MQL5 و راهنمای متاتریدر ۵ آمده و نشانیها در پایان مقاله هست.
فهرست مطالب
MQL4 و MQL5 چیست؟
MQL زبان برنامهنویسی شرکت MetaQuotes برای ساختن اکسپرت (ربات معاملهگر)، اندیکاتور و اسکریپت در متاتریدر است. هر دو نسخه در یک محیط، یعنی MetaEditor، نوشته میشوند و طبق مستندات رسمی، نحو زبان بسیار نزدیک به C++ است:
- MQL4: برای متاتریدر ۴. فایل کد پسوند mq4 دارد و فایل اجرایی که در متاتریدر بارگذاری میشود ex4.
- MQL5: برای متاتریدر ۵. فایل کد mq5 و فایل اجرایی ex5.
یک تصور قدیمی هنوز رایج است: اینکه MQL4 زبانی ساده و محدود است و فقط MQL5 برنامهنویسی شیگرا دارد. این تصور از build 600 متاتریدر ۴ دیگر درست نیست. طبق مستندات رسمی، MQL4 در آن نسخه از نو نوشته شد و به سطح MQL5 رسید: کلاس، ساختار، ارثبری، چندریختی و تابع مجازی در هر دو هست. پس برای بیشتر رباتها، توانایی خود زبان معیار انتخاب نیست.
مهمترین تفاوت: ربات هر پلتفرم فقط روی همان پلتفرم اجرا میشود
فایل ex4 در متاتریدر ۵ اجرا نمیشود و فایل ex5 در متاتریدر ۴. تبدیل یکی به دیگری هم کپیکردن کد نیست، چون شیوهٔ معامله در دو پلتفرم فرق دارد:
- در MQL4، تابع OrderSend نماد، حجم، قیمت، حد ضرر و حد سود را میگیرد و شمارهٔ تیکت سفارش را برمیگرداند، یا در صورت شکست ۱-. بعد از آن هر معامله با همان تیکت مدیریت و بسته میشود.
- در MQL5، سفارش با یک ساختار درخواست (MqlTradeRequest) فرستاده میشود و نتیجه در ساختار دیگری (MqlTradeResult) برمیگردد. مستندات توصیه میکند درخواست پیش از ارسال با OrderCheck سنجیده شود و بعد از ارسال، کد پاسخ سرور (retcode) بررسی شود. موفق بودن خود تابع به معنی اجرای معامله نیست.
به همین دلیل، اگر رباتی برای متاتریدر ۴ دارید و حساب تازهتان روی متاتریدر ۵ است، بخش معامله ربات باید از نو نوشته شود. حتی اگر ابزاری کد را به شکل MQL5 دربیاورد، منطق سفارش و پوزیشن باید با مدل معاملهٔ متاتریدر ۵ دوباره ساخته و آزموده شود.
تفاوتها کنار هم
| موضوع | متاتریدر ۴ و MQL4 | متاتریدر ۵ و MQL5 |
|---|---|---|
| تایمفریمهای استاندارد | ۹ تایمفریم (یک دقیقه تا یک ماه) | ۲۱ تایمفریم، از جمله ۲، ۳، ۱۰ و ۲۰ دقیقه و ۲، ۳، ۶، ۸ و ۱۲ ساعت |
| مدل معامله | هر سفارش با تیکت خودش باز و بسته میشود | سفارش، معامله (deal) و پوزیشن سه چیز جدا هستند و به هم پیوند دارند |
| نوع حساب | همان مدل سفارش جدا، با تیکت هر سفارش | نتینگ (یک پوزیشن برای هر نماد) یا هجینگ (چند پوزیشن، حتی خلاف هم)؛ انتخابش با کارگزار است |
| تستر استراتژی | معامله فقط روی نمادی که تست میشود | تست ربات چندنمادی با دنبالهٔ تیک جدا برای هر نماد، تیک واقعی، و بهینهسازی روی عاملهای محلی، شبکه یا ابری |
| ارسال سفارش در کد | یک تابع با چند پارامتر که تیکت برمیگرداند | ساختار درخواست و نتیجه، سنجش پیش از ارسال و بررسی کد پاسخ سرور |
| زبان | از build 600 شیگرا و همسطح MQL5 | شیگرا، با کتابخانهٔ استاندارد |
نکتهٔ حساب نتینگ و هجینگ را دستکم نگیرید. راهنمای متاتریدر ۵ میگوید شیوهٔ حساب را کارگزار تعیین میکند. در حساب نتینگ برای هر نماد فقط یک پوزیشن هست و معاملهٔ خلاف جهت، آن را کم میکند، میبندد یا برعکس میکند. هجینگ در آوریل ۲۰۱۶ (build 1295) به متاتریدر ۵ اضافه شد تا معاملهگران فارکس بتوانند چند پوزیشن همزمان روی یک نماد داشته باشند. رباتی که بر پایهٔ چند پوزیشن همزمان نوشته شده، روی حساب نتینگ رفتار دیگری خواهد داشت.
برای ربات شما کدام بهتر است؟
به جای پرسیدن «کدام بهتر است»، این چهار سؤال را به ترتیب جواب بدهید:
۱. حساب واقعی شما روی کدام پلتفرم است؟
این تقریباً همیشه تصمیم را میگیرد. ربات باید روی همان پلتفرمی اجرا شود که حسابتان نزد کارگزار در آن باز است. اگر هنوز کارگزار را انتخاب نکردهاید، پیش از ساخت ربات بپرسید حساب مورد نظرتان روی متاتریدر ۴ است یا ۵، و چه نوع حسابی (نتینگ یا هجینگ) میدهد. برای سنجیدن خود کارگزار، نکتههای بررسی بروکر فارکس را بخوانید.
۲. استراتژی شما چند نماد را با هم معامله میکند؟
اگر ربات قرار است همزمان روی چند جفتارز یا نماد تصمیم بگیرد، تستر متاتریدر ۵ برای همین ساخته شده است: برای هر نماد دنبالهٔ تیک جدا میسازد و معامله روی همهٔ آنها را شبیهسازی میکند. طبق مستندات MQL4، در تستر متاتریدر ۴ معامله فقط روی نمادی انجام میشود که تست میشود. روش درست تست را در راهنمای بکتست اکسپرت در متاتریدر ۵ توضیح دادهایم.
۳. ربات یا اندیکاتور آمادهای دارید؟
اگر کد یا فایل ex4 رباتی را دارید که کار میکند و حسابتان هم روی متاتریدر ۴ است، دلیلی برای جابهجایی نیست. اگر مجبور به رفتن به متاتریدر ۵ هستید، هزینهٔ بازنویسی را در نظر بگیرید و نسخهٔ تازه را دوباره بکتست کنید. فقط فایل ex4 بدون کد منبع هم قابل تبدیل نیست؛ باید از روی رفتار ربات، مشخصات استراتژی را دوباره نوشت.
۴. ربات کجا شبانهروز اجرا میشود؟
اگر از هاستینگ مجازی خود متاتریدر استفاده میکنید، طبق قوانین سرویس MQL5 ترمینال متاتریدر ۴ فقط برای حساب متاتریدر ۴ است و ترمینال متاتریدر ۵ برای حساب متاتریدر ۵. انتخاب سرور را در راهنمای سرور مجازی ترید نوشتهایم.
اگر هیچ محدودیتی ندارید و ربات را از صفر میسازید، متاتریدر ۵ معمولاً انتخاب آیندهدارتری است: تستر کاملتر، تایمفریم بیشتر و امکان کار با هر دو نوع حساب. ولی اگر کارگزار شما فقط متاتریدر ۴ میدهد، ربات خوب متاتریدر ۴ از ربات متاتریدر ۵ که روی حساب شما اجرا نمیشود، بهتر است.
اشتباههایی که هزینهٔ ساخت ربات را دو برابر میکنند
- ساخت ربات پیش از پرسیدن پلتفرم حساب: ربات برای متاتریدر ۴ ساخته میشود و بعد معلوم میشود حساب روی متاتریدر ۵ است.
- اعتماد به تبدیل خودکار برای بخش معامله: کد کامپایل میشود ولی سفارشها درست مدیریت نمیشوند، چون مدل معامله دو پلتفرم فرق دارد.
- نادیده گرفتن نوع حساب در متاتریدر ۵: رباتی که چند پوزیشن همجهت یا خلاف هم باز میکند، روی حساب نتینگ پوزیشنها را با هم جمع میکند.
- تست استراتژی چندنمادی در تستر متاتریدر ۴: نتیجهٔ بکتست فقط نماد اصلی را نشان میدهد و تصویر کاملی از رفتار ربات نمیدهد.
- خرید ربات بدون کد منبع: با عوض شدن کارگزار یا پلتفرم، هیچ راهی برای اصلاح یا انتقال ربات نمیماند.
ساخت ربات با تیم طراحان آیا
تیم طراحان آیا اکسپرت و ربات معاملهگر را برای متاتریدر ۴ و ۵ (MQL4 و MQL5) میسازد. پیش از سفارش، پلتفرم و نوع حساب خود را مشخص کنید تا ربات برای همان حساب ساخته شود. مراحل کار، از مکتوب کردن استراتژی تا تست و اجرای واقعی، در راهنمای ساخت ربات معاملهگر متاتریدر آمده است. برای بررسی استراتژی خودتان، خدمت ساخت ربات معاملهگر را ببینید یا از صفحهٔ تماس درخواست مشاوره بدهید.
این مطلب آموزشی است و توصیهٔ سرمایهگذاری نیست. معامله در بازارهای اهرمی ممکن است به از دست رفتن تمام سرمایه منجر شود. هیچ ربات و هیچ پلتفرمی سود را تضمین نمیکند.
پرسشهای رایج
متاتریدر ۴ بهتر است یا ۵؟
برای ربات، پلتفرمی بهتر است که حساب واقعی شما روی آن است. اگر حق انتخاب دارید، متاتریدر ۵ امکانات بیشتری دارد: تستر چندنمادی با تیک واقعی، ۲۱ تایمفریم، و هر دو نوع حساب نتینگ و هجینگ.
MQL5 چیست؟
زبان برنامهنویسی متاتریدر ۵ برای ساختن ربات، اندیکاتور و اسکریپت. کد آن در MetaEditor نوشته و به فایل ex5 تبدیل میشود که فقط در متاتریدر ۵ اجرا میشود.
ربات متاتریدر ۴ را میشود در متاتریدر ۵ اجرا کرد؟
نه. فایل ex4 در متاتریدر ۵ اجرا نمیشود. اگر کد منبع (mq4) را دارید، ربات قابل بازنویسی به MQL5 است، ولی بخش معاملهاش باید از نو نوشته و دوباره تست شود.
برای یادگیری، MQL4 را شروع کنم یا MQL5؟
اگر از صفر شروع میکنید و محدودیت کارگزار ندارید، MQL5. از build 600 به این طرف، شیوهٔ نوشتن دو زبان بسیار نزدیک است، پس بیشتر آموختههایتان در هر دو به کار میآید. تفاوت اصلی را در بخش معامله و کار با تستر خواهید دید.
منابع
- مستندات MQL5: معرفی زبان و نزدیکی نحو آن به C++
- مستندات MQL4: تغییرات زبان در build 600 و نزدیک شدن به MQL5
- مستندات MQL4: تایمفریمهای متاتریدر ۴
- مستندات MQL5: تایمفریمهای متاتریدر ۵
- مستندات MQL4: تابع OrderSend
- مستندات MQL5: تابع OrderSend، OrderCheck و کد پاسخ سرور
- راهنمای متاتریدر ۵: سفارش، معامله، پوزیشن و حساب نتینگ و هجینگ
- یادداشت انتشار متاتریدر ۵ build 1295 (آوریل ۲۰۱۶): افزوده شدن هجینگ
- مستندات MQL4: تست اکسپرت در تستر متاتریدر ۴
- مستندات MQL5: تست چندنمادی و عاملهای تست
- قوانین رسمی سرویس هاستینگ مجازی MQL5
این راهنما در ۳ آبان ۱۴۰۵ با مستندات رسمی MQL4، MQL5 و راهنمای متاتریدر ۵ تطبیق داده شد. نام و جای گزینهها ممکن است در نسخههای تازه کمی عوض شود.