MQL4/5

From binaryoption
Jump to navigation Jump to search
Баннер1
  1. MQL4 / MQL5: راهنمای جامع برای مبتدیان

MQL4 و MQL5 زبان‌های برنامه‌نویسی هستند که به طور خاص برای توسعه ربات‌های معامله‌گر (Expert Advisors یا EA)، اندیکاتورهای تحلیل تکنیکال و اسکریپت‌ها در پلتفرم‌های معاملاتی MetaTrader 4 و MetaTrader 5 استفاده می‌شوند. این زبان‌ها امکان خودکارسازی استراتژی‌های معاملاتی و تحلیل بازار را فراهم می‌کنند. در این مقاله، ما به بررسی عمیق MQL4 و MQL5، تفاوت‌های کلیدی آن‌ها، ساختار، مفاهیم اساسی و نحوه شروع برنامه‌نویسی با این زبان‌ها خواهیم پرداخت.

MQL4 در مقابل MQL5: نگاهی سریع

| ویژگی | MQL4 | MQL5 | |---|---|---| | پلتفرم | MetaTrader 4 | MetaTrader 5 | | سال معرفی | 2000 | 2010 | | نوع داده | محدودتر | گسترده‌تر و دقیق‌تر | | سرعت اجرا | معمولاً کندتر | معمولاً سریع‌تر | | امکانات برنامه‌نویسی | ساده‌تر | پیچیده‌تر و قوی‌تر | | پشتیبانی از رویدادها | محدود | گسترده‌تر | | تست استراتژی | محدودتر | پیشرفته‌تر (استراتژی تستر) | | بازارها | عمدتاً فارکس | فارکس، سهام، آتی، CFD |

MQL4 زبان قدیمی‌تری است و به دلیل سادگی، برای مبتدیان مناسب‌تر به نظر می‌رسد. با این حال، MQL5 امکانات بسیار بیشتری را ارائه می‌دهد و برای توسعه استراتژی‌های معاملاتی پیچیده‌تر و بهینه‌تر مناسب است.

ساختار یک برنامه MQL4/5

هر برنامه MQL4/5 از بخش‌های زیر تشکیل شده است:

  • **شرح (Description):** اطلاعاتی در مورد برنامه، نویسنده و تاریخ ایجاد.
  • **ورودی‌ها (Inputs):** متغیرهایی که کاربر می‌تواند آن‌ها را تغییر دهد و بر عملکرد برنامه تأثیر بگذارد.
  • **متغیرهای سراسری (Global Variables):** متغیرهایی که در کل برنامه قابل دسترسی هستند.
  • **توابع (Functions):** بلوک‌های کد که وظیفه‌ای خاص را انجام می‌دهند.
  • **توابع اصلی (Main Functions):**
   *   `OnInit()`:  این تابع در هنگام شروع برنامه (بارگذاری یا راه‌اندازی) اجرا می‌شود.
   *   `OnDeinit()`: این تابع در هنگام توقف یا حذف برنامه اجرا می‌شود.
   *   `OnTick()`:  این تابع در هر تیک (تغییر قیمت) اجرا می‌شود و قلب تپنده ربات‌های معاملاتی است.
   *   `OnTrade()`: این تابع در هنگام انجام یک معامله (باز شدن، بسته شدن، اصلاح) اجرا می‌شود.
   *   `OnTimer()`: این تابع در فواصل زمانی مشخص (تعیین شده توسط کاربر) اجرا می‌شود.

مفاهیم اساسی برنامه‌نویسی MQL4/5

  • **انواع داده (Data Types):** MQL4/5 از انواع داده‌های مختلفی مانند `int` (عدد صحیح)، `double` (عدد اعشاری)، `bool` (منطقی)، `string` (رشته) و `datetime` (تاریخ و زمان) پشتیبانی می‌کند.
  • **عملگرها (Operators):** عملگرهای ریاضی (+، -، *، /)، عملگرهای مقایسه‌ای (==، !=، <، >، <=، >=) و عملگرهای منطقی (&&، ||، !) برای انجام عملیات مختلف در برنامه استفاده می‌شوند.
  • **دستورات شرطی (Conditional Statements):** دستورات `if`، `else if` و `else` برای اجرای کد بر اساس شرایط خاص استفاده می‌شوند.
  • **حلقه‌ها (Loops):** حلقه‌های `for`، `while` و `do-while` برای تکرار اجرای یک بلوک کد استفاده می‌شوند.
  • **آرایه‌ها (Arrays):** آرایه‌ها برای ذخیره مجموعه‌ای از داده‌های هم‌نوع استفاده می‌شوند.
  • **توابع (Functions):** توابع برای سازماندهی کد و استفاده مجدد از آن استفاده می‌شوند.
  • **متغیرها (Variables):** متغیرها برای ذخیره داده‌ها در حافظه استفاده می‌شوند.

شروع برنامه‌نویسی با MQL4/5

1. **دانلود و نصب MetaEditor:** MetaEditor محیط توسعه یکپارچه (IDE) برای برنامه‌نویسی MQL4/5 است. این برنامه به همراه پلتفرم MetaTrader 4 یا MetaTrader 5 نصب می‌شود. 2. **ایجاد یک فایل جدید:** در MetaEditor، یک فایل جدید از نوع Expert Advisor، Indicator یا Script ایجاد کنید. 3. **نوشتن کد:** کد خود را با استفاده از دستورات و مفاهیم MQL4/5 بنویسید. 4. **کامپایل کردن کد:** کد خود را کامپایل کنید تا به یک فایل اجرایی (ex4 برای MQL4 و ex5 برای MQL5) تبدیل شود. 5. **تست کردن کد:** کد خود را در پلتفرم MetaTrader 4 یا MetaTrader 5 تست کنید.

مثال: یک ربات معاملاتی ساده MQL4

```mql4 //+------------------------------------------------------------------+ //| SimpleEA.mq4 | //| Copyright 2023, Your Name | //| https://yourwebsite.com | //+------------------------------------------------------------------+

  1. property copyright "Copyright 2023, Your Name"
  2. property link "https://yourwebsite.com"
  3. property version "1.00"

extern double Lots = 0.1; extern int TakeProfit = 50; extern int StopLoss = 25;

int OnInit() {

 return(INIT_SUCCEEDED);

}

void OnTick() {

 double Ask = MarketInfo(Symbol(), MODE_ASK);
 double Bid = MarketInfo(Symbol(), MODE_BID);
 // خرید در صورت بریک اوت از مقاومت
 if(Ask > 1.1000) {
   OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, Ask - StopLoss * Point, Ask + TakeProfit * Point, "Simple EA", 12345, 0, Green);
 }
 // فروش در صورت بریک داون از حمایت
 if(Bid < 1.0800) {
   OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, Bid + StopLoss * Point, Bid - TakeProfit * Point, "Simple EA", 12345, 0, Red);
 }

} ```

این ربات معاملاتی ساده در صورت بریک اوت قیمت از مقاومت (1.1000) یک سفارش خرید و در صورت بریک داون قیمت از حمایت (1.0800) یک سفارش فروش باز می‌کند.

مثال: یک اندیکاتور سفارشی ساده MQL5

```mql5 //+------------------------------------------------------------------+ //| SimpleMA.mq5 | //| Copyright 2023, Your Name | //| https://yourwebsite.com | //+------------------------------------------------------------------+

  1. property copyright "Copyright 2023, Your Name"
  2. property link "https://yourwebsite.com"
  3. property version "1.00"
  4. property indicator_chart_window

input int MAPeriod = 20;

double MA[];

int OnInit() {

 ArraySetAsSeries(MA, true);
 return(INIT_SUCCEEDED);

}

int OnCalculate(const int ratesTotal,

               const int prevCalculated,
               const int begin,
               const double &price[]) {
 for(int i = begin; i < ratesTotal; i++) {
   MA[i] = iMA(NULL, 0, MAPeriod, 0, MODE_SMA, PRICE_CLOSE, i);
 }
 return(ratesTotal);

} ```

این اندیکاتور سفارشی یک میانگین متحرک ساده (SMA) را با دوره زمانی مشخص شده توسط کاربر محاسبه و نمایش می‌دهد.

منابع یادگیری بیشتر

استراتژی‌های مرتبط

تحلیل تکنیکال

تحلیل حجم معاملات

نتیجه‌گیری

MQL4 و MQL5 ابزارهای قدرتمندی برای توسعه ربات‌های معاملاتی، اندیکاتورهای سفارشی و اسکریپت‌ها هستند. با یادگیری این زبان‌ها، می‌توانید استراتژی‌های معاملاتی خود را به صورت خودکار پیاده‌سازی کنید و از فرصت‌های معاملاتی در بازار بهره‌مند شوید. با تمرین و مطالعه مستمر، می‌توانید به یک برنامه‌نویس MQL4/5 ماهر تبدیل شوید.


شروع معاملات الآن

ثبت‌نام در IQ Option (حداقل واریز $10) باز کردن حساب در Pocket Option (حداقل واریز $5)

به جامعه ما بپیوندید

در کانال تلگرام ما عضو شوید @strategybin و دسترسی پیدا کنید به: ✓ سیگنال‌های معاملاتی روزانه ✓ تحلیل‌های استراتژیک انحصاری ✓ هشدارهای مربوط به روند بازار ✓ مواد آموزشی برای مبتدیان

Баннер