آموزش متا ادیتور – MetaEditor

سه شنبه ۸ شهریور ۱۴۰۱ - ۱۲:۴۸

در این بخش می‌خواهیم با نرم‌افزار اصلی برنامه‌نویسی به زبان MQL آشنا شویم. این برنامه به نام متا ادیتور با هدف ساخت، ویرایش و کامپایل برنامه‌های نوشته شده به زبان MQL ساخته شده است. MetaEditor ویرایشگر رابط کاربری ساده‌ای دارد. به همین دلیل کار با آن آسان است.

آموزش برنامه MetaEditor از دو بخش تشکیل شده است. بخش اول، بخش File System و بخش دوم هم بخش طراحی و استفاده از برنامه‌های نوشته شده است.

نرم‌افزار MetaEditor (متاادیتور) تمامی کدهای نوشته به زبان MQL را طبق ساختار داخلی خود در هارد دیسک ذخیره می‌کند. محل ذخیره برنامه‌های MQL با توجه به هدف از ساخت آن‌ها تعیین می‌شود. یعنی اگر اسکریپت است، در بخش اسکریپت‌ها ذخیره خواهد شد.

برای باز کردن برنامه متا ادیتور MetaEditor کافی است در داخل برنامه متاتریدر دکمه F4 را فشار دهید!


آشنایی با سیستم فایل های متا ادیتور

برنامه متاتریدر به عنوان پلتفرم کاربر، نوع برنامه‌ها را با توجه به محل ذخیره‌سازی آن‌ها می‌شناسد. تمامی برنامه‌هایی که توسط MQL می‌نویسید در آدرس ClienTerminal_folder\expers قرار می‌گیرند. اگر می‌خواهید از اکسپرت ها، اسکریپت‌ها و اندیکاتورها به روشی درست استفاده کنید، حتماً باید در محل درستی آن‌ها را ذخیره کنید. به تصویر زیر نگاه کنید. در این تصویر ساختار ذخیره‌سازی برنامه‌های MQL در برنامه متاتریدر را مشاهده می‌کنید.

اسکریپت‌ها را باید در پوشه \experts\scripts و اندیکاتورها را هم در پوشه \experts\indicators ذخیره کنید.

متا ادیتور آموزش ام کیو ال
آموزش MQL – پوشه های متاادیتور. به محل نصب متاتریدر برید، سپس پوشه MQL را باز کنید.

شما می‌توانید در این بخش پوشه‌های جدیدی هم ایجاد کنید، اما نمی‌توانید از برنامه‌هایی که در پوشه‌های جدید ایجاد کرده‌اید، در برنامه متاتریدر استفاده کنید.

انواع فایل

در MQL سه نوع فایل وجود دارند که می‌توانند کد برنامه را در خود نگه دارند: mq4, ex4, mqh.

نوع فایل mq4

نوع فایل mq4 نشانگر سورس کد برنامه است. فایل‌هایی از این نوع شامل متن کد تمامی انواع برنامه‌های متاتریدر هستند. یعنی سورس کد اسکریپت، اکسپرت و اندیکاتور در فایل های mq4 ذخیره می‌شوند. برای ساخت کد برنامه‌ها باید از نرم‌افزار MetaEditor استفاده کنید.

زمانی که کد به طور کامل یا ناقص نوشته شد، می‌توان آن را ذخیره کرد تا در آینده در صورت نیاز آن را ویرایش و یا تکمیل کرد. فایل های نوع mq4 را نمی‌توان برای اجرا در متاتریدر استفاده کرد. باید قبل از استفاده از فایل های mq4 آن‌ها را کامپایل کرد. با کامپایل کردن فایل mq4، فایل جدیدی با همان نام ساخته می‌شود، اما پسوند یا نوع آن از نوع ex4 است.

نوع فایل ex4

فایل از نوع ex4 یک برنامه کامپایل شده و آماده استفاده در متاتریدر است. فایل های این نوع را نمی‌توان ویرایش کرد. یعنی دسترسی به سورس کد وجود ندارد. برای ویرایش باید فایل سورس کد یا همان mq4 را باز کنید. بعد از باز کردن فایل mq4 باید آن را ویرایش و دوباره کامپایل کنید. بایستی توجه داشته باشید که فایل‌هایی با پسوند ex4 را می‌توانید مثل فایل های کتابخانه هم استفاده کنید.

توجه داشته باشید که بخش‌های “EAs”، “Custom Indicators” و “Scripts” در متاتریدر تنها نام فایل‌هایی با پسوند ex4 که در پوشه‌های مربوط به خود ذخیره شده‌اند را نمایش خواهد داد.

فایل نوع mqh

فایل های نوع mqh فایل های ضمیمه یا همراه هستند. این نوع فایل‌ها می‌توانند شامل سورس کد یک بلاک از کد باشند. شما می‌توانید از چنین فایل‌هایی برای استفاده در سورس کد اکسپرت ها، اسکریپت‌ها و اندیکاتورها در مرحله کامپایل استفاده کنید.

معمولاً فایل های mqh شامل تعریف توابع یا متغیرها و ثابت‌های عمومی می‌شوند. فایل های mqh در مسیر \experts\include ذخیره می‌شوند.

پوشه کتابخانه

نوع فایل های دیگری هم وجود دارند که یک برنامه کامل نیستند، اما برای ساخت برنامه استفاده می‌شوند. به طور مثال، برنامه‌ای که از چندین فایل متفاوت ساخته شده و یا از کتابخانه‌ها در آن استفاده شده است. شما می‌توانید از کتابخانه توابع در برنامه‌های خود استفاده کنید. توصیه می‌شود که فایل های کتابخانه را در مسیر \experts\libraries ذخیره کنید. فایل های نوع mq4 و ex4 را می‌توانید به عنوان فایل کتابخانه ذخیره کنید. فایل های کتابخانه قابلیت اجرایی ندارند.


آشنایی با نحوه ساخت و استفاده از برنامه‌های MQL

برنامه‌هایی که در MQL می‌نویسید، توسط برنامه MeteEditor خلق می‌شوند. برنامه متا ادیتور را می‌توانید از پوشه محل نصب متاتریدر پیدا کنید. اگر برنامه متاتریدر باز باشد، می‌توانید با فشردن دکمه F4 هم برنامه MetaEditor را باز کنید.

ساختار برنامه متا ادیتور MetaEditor

برای راحتی کار، متا ادیتور نوار ابزارهای آماده‌ای را در اختیار شما قرار می‌دهد. مثل نوار ابزار Navigator و نوار ابزار Toolbox.

متا ادیتور آموزش ام کیو ال
آموزش متا ادیتور – پنجره Navigaotr در متا ادیتور

متن برنامه در پنجره ادیتور نمایش داده می‌شود. پنجره‌های نوار ابزار هم برای تسهیل کار با متا ادیتور طراحی شده‌اند. پنجره Navigator با ترکیب دکمه‌های Ctrl+D به متا ادیتور اضافه می‌شود و پنجره نوار ابزار هم با ترکیب دکمه‌های Ctrl+T فعال می‌شوند.

ساخت برنامه جدید

معمولاً در زمان ساخت برنامه جدید، پنجره ابزار و Navigator مخفی می‌شوند تا توجه کاربر به ساخت برنامه جدید متمرکز شود. برای خلق برنامه جدید ابتدا باید به منوی File بروید و روی New کلیک کنید. با این کار، پنجره EA Wizard فعال خواهد شد. این پنجره لیست انواع برنامه‌های قابل ساخت را نشان می‌دهد.

اگر نیاز دارید که یک اکسپرت ایجاد کنید، باید روی گزینه EA کلیک کنید و سپس گزینه Next را بزنید. در پنجره بعدی باید نام اکسپرت را تعریف کنید.

متا ادیتور آموزش ام کیو ال
آموزش متا ادیتور

بعد از کلیک روی Ok، فایل mq4 ایجاد می شود و در پنجره navigator نمایش داده می شود.

متا ادیتور آموزش ام کیو ال
آموزش متا ادیتور

همچنین متن برنامه یا همان کد برنامه هم ایجاد می شود.

آموزش  متا ادیتور
آموزش برنامه نویسی MQL

همان‌طور که مشاهده می‌کنید، متن کد اکثراً شامل کامنت ها می شود. کامنت ها تأثیری در اجرای برنامه ندارند و صرفاً برای خود برنامه‌نویس اهمیت دارند.

در برنامه اکسپرت، سه نوع تابع اصلی وجود دارد: Init()، start() و deinit().

هر تابع تنها یک عملگر return(0) دارد، که برای خروج از تابع است. به همین دلیل، متن کدی که پنجره EA Wizard ایجاد می‌کند تنها قالب برنامه است. نیازی نیست که برنامه پایانی که می‌نویسید شامل هر سه تابع باشد. اما معمولاً برنامه‌هایی که نوشته می‌شوند، هر سه تابع را شامل می‌شوند. در هر صورت اگر نیازی به تابع نباشد، می‌توانید آن را حذف کنید.
دستورات زیر را هم می‌توانید از کد برنامه حذف کنید. هیچ اتفاقی در عملکرد برنامه نوشته شده نخواهد افتاد!

 متا ادیتور MetaEditor
آموزش برنامه نویسی MQL


متن کدی که توسط پنجره EA Wizard نوشته شده، هر چند که کارایی خاصی ندارد، اما از دید سنتکس یا دستور قواعد زبانی درست است و می‌توان آن را کامپایل کرد و به برنامه تبدیل کرد.

ظاهر برنامه

استفاده از کامنت ها در برنامه به شدت توصیه می شود و در برخی موارد هم وجود کامنت ضروری است. بایستی توجه داشته باشید که برنامه‌نویس هم برنامه را خلق می‌کند و هم شاید در آینده نیاز باشد که را آن مورد بازنگری قرار دهد. یعنی کدها را دوباره بخواند. گاهی اوقات خواندن برنامه کار سختی است. تجربه بسیاری از برنامه نویسان نشان داده که منطقی که باعث خلق یک برنامه شده، می‌تواند به مرور زمان فراموش شود و یا برنامه نوشته شده خوانایی برای دیگران نداشته باشد. در نبود کامنت، خواندن برنامه کار غیرممکنی خواهد بود!

مزیت اصلی کامنت ها

  • اول از همه، کامنت بخش‌های برنامه را از یکدیگر جدا می‌کند. خوانایی متن قالب‌بندی شده خیلی آسان‌تر از یک متن به هم پیوسته است.
  • دوم، کامنت ها توضیح می‌دهند که هدف برنامه‌نویس از نوشتن کدهای مربوطه چه بوده است.
  • سوم، در بخش بالایی برنامه، اطلاعات عمومی و کلی در رابطه با برنامه و نام برنامه‌نویس نوشته می شود. این اطلاعات نشان می‌دهند که برنامه چه توانایی‌ها و چه محدودیت‌هایی دارد.

هر برنامه‌نویس می‌تواند سبک خاص خود را داشته باشد. اما استایلی که برای کامنت نویسی از سوی توسعه‌دهندگان MQL4 توصیه شده، همان چیزی است که در برنامه create.mql4 آورده شده است. در ادامه ویژگی‌های اصلی این سبک نوشتن کامنت را بررسی می‌کنیم.

طول خط کامنت نباید بیشتر از سایز پنجره اصلی باشد. اگر جملاتی که در توصیف کد استفاده شده‌اند، طولانی هستند، بهتر است که آن‌ها را در چند خط زیر هم بنویسید تا طول کامنت از پنجره اصلی کامپیوتر بزرگ‌تر نباشد. معمولاً در سایز نمایشگرهای ۱۰۲۴*۷۶۸ حداکثر طول خط کامنت باید ۱۱۸ حرف یا نماد باشد.

تعریف متغیرها باید در ابتدای برنامه نوشته شود. توصیه می شود که کامنت های توصیفی را برای هر یک از متغیرها بنویسید. خیلی خلاصه توضیح دهید که متغیر تعریف شده چه معنی دارد و اگر لازم بود کاربرد آن را هم توضیح دهید.

هر عملگر باید در خط جداگانه‌ای قرار بگیرد. در صورت استفاده از آکولاد حتماً خط فاصله را رعایت کنید.

به تصویر زیر نگاه کنید. این نمونه کد یک EA تمیز است. در این نمونه کد، کامنت ها منطق الگوریتمی برنامه را افشا نمی‌کنند. اما ظاهر کد کاملاً خواناست.

متا ادیتور آموزش ام کیو ال
آموزش برنامه نویسی در متا ادیتور- کد نوشته شده همراه با کامنت

در نمونه کد بالایی، بخش‌های معنادار و مهم برنامه به کمک خطوط تیره از هم جدا شده‌اند. متغیرها در بلاک جداگانه‌ای تعریف شده‌اند و هر متغیر هم به کمک کامنت ها توصیف شده است. گاهی اوقات نیاز است که محل استفاده از متغیر در برنامه‌ها مشخص شود. این اتفاق به ندرت می‌افتد، ولی در صورت نیاز باید حتماً در کامنت ها نوشته شود.

متا ادیتور آموزش ام کیو ال
آموزش برنامه نویسی MQL – کد برنامه بدون داشتن کامنت قابلیت خوانایی ندارد!


کامپایل برنامه

برای این‌که کدهایی که نوشتید به یک برنامه قابل اجرا تبدیل شوند، باید برنامه را کامپایل کنید. برای این کار می‌توانید از آیکون Compile در نوار ابزار استفاده کنید و یا خیلی ساده دکمه F5 را در متا ادیتور فشار دهید. اگر کدی که نوشته‌اید ایرادی نداشته باشد، کامپایل خواهد شد و پیامی که در تصویر پایینی می‌بینید نمایش داده خواهد شد.

MetaEditor متا ادیتور
آموزش برنامه نویسی در MetaEditor – پیام کامپایل موفق برنامه

همچنین وقتی برنامه‌ای کامپایل می شود، فایل جدیدی در منوی Navigator و در بخش مربوطه نمایش داده می شود. مثلاً اگر نام برنامه‌ای که نوشته‌اید create است، فایل create.ex4 در منوی مربوط به اکسپرت ها نمایش داده خواهد شد. بعد از کامپایل موفق، برنامه مورد نظر آماده است که در ترمینال کلاینت (متاتریدر ۴) استفاده شود.

نکته: اگر کدی که نوشته‌اید خطا داشته باشد، متاادیتور خطاها را به ترتیب نمایش خواهد داد و شما می‌توانید با ویرایش کد برنامه، خطاها را بر طرف کنید و مجدداً برای کامپایل اقدام کنید.

نکته: برای استفاده از برنامه در متاتریدر، کافی است پس از کامپایل موفق برنامه به متاتریدر بروید و در پنجره Navigator به دنبال نام برنامه‌ای که کامپایل کردید بگردید. سپس روی نام برنامه کلیک کنید و کلیک چپ را نگه دارید و سپس آن را به داخل پنجره نمودار بیندازید (درگ اند دراپ!).