هدف ما از آموزش برنامه نویسی MQL5 و ساخت اکسپرت چیست؟ هدف ما از آموزش متاتریدر 5 فرهنگ سازی معامله الگوریتمی است. فرهنگی که میتواند در عمر و هزینه معاملهگران صرفهجویی کند و زمان بیشتری برای تفکر وتحلیل داشته باشند. همچنین این یک بازار کار جدید برای برنامه نویسان است.
چند سال پیش زمانی که آموزش MQL5 تنها حضوری و با هزینه بسیار هنگفت انجام میشد، این بسته آموزشی نخستین بار با سرفصلی جامع تولید و منتشر شد. اکنون با گذشت چند سال به همت مدرس و ناشر بار محتوای این آموزش روزآمد و تقدیم شما میشود.
این بسته آموزش mql5 در واقع بخشی از بسته مقدماتی در مسیر آموزشی زیر است.
بخش اول – نصب ابزار و شروع کار
درس صفر: معرفی دوره در یک نگاه
– معامله الگوریتمی چیست ؟
– زبان برنامه نویسی mql5 چیست؟
– پیشنیاز این آموزش
– نگاهی به محیط این آموزش
– اهداف آموزش
درس یکم: نصب و راه اندازی محیط برنامه نویسی
– دریافت و نصب متاتریدر
– ساخت حساب دمو در متاتریدر
– اولین برخورد با MetaEditor
– بررسی مسیر نصب نرم افزار
– توصیه برای روزآمدی فرآیند نصب
درس دوم: ساخت اولین اکسپرت
– ساخت یک Expert Advisor در MetaEditor
– مفهوم تابع onInit و onDeInit و onTike چاپ یک پیغام روی نمودار
– درج یادداشت یا comment در کدهای mql
درس سوم : انواع فایل ها در MQL5
– آشنایی با انواع فایل mq5 و ex5 و mqh و set در زبان MQL5
– مفهوم فایل include و بررسی یک نمونه
– کامپایل برنامه و تولید فایل ex5 به عنوان خروجی اکسپرت
درس چهارم : مدیریت فایل ها
– آشنایی با پوشه بندی MetaEditor و پوشه های Experts و Includes
– مفهوم کتابخانه یا library در زبان mql5 در یک نگاه
بخش دوم – متغیرها وانواع داده در MQL5
درس پنجم: مفهوم متغیر و تعریف متغیر در MQL5
– چرا نیاز به متغیرها داریم؟
– مفهوم متغیر و identifier
– تعریف یک متغیر در MQL5
– قواعد نامگذاری متغیرها در MQL5
درس ششم: انواع داده در MQL5(integer)
– چرا به انواع دادهها نیاز داریم؟
– انواع داده عدد صحیح یا integer
– تفاوت char و short و int و long
– تفاوت uchar وushort و uint و ulong
درس هفتم: انواع داده در MQL5(real,string,Boolean)
– انواع داده عدد حقیقی یا real
– تفاوت float و double در MQL5
– نوع داده استرینگ یا string
– نوع داده منطقی یا بولین Boolean
– بررسی نوع داده ها در مستندات MQL5
درس هشتم: انواع داده در MQL5(color, datetime)
-نوع داده رنگ یا color
-نوع داده تاریخ وزمان یا datetime
-بررسی ثابت های تاریخ و زمان
درس نهم: آرایه ها
-تعریف آرایه یک بعدی استاتیک
_تعریف index در آرایه ها
-مقداردهی به آرایه های تک بعدی
– تفاوت آرایه های استاتیک و داینامیک
_ تعریف آرایه تک بعدی داینامیک
_ استفاده از تابع ArrayResaize برای تعیین اندازه آرایه ها
درس دهم: آرایه ها چند بعدی
-تعریف آرایه دو بعدی استاتیک
-مقداردهی به آرایه های تک بعدی
_ تعریف آرایه دو بعدی داینامیک
درس یازدهم: Enumeration
-تعریف Enumeration
_ استفاده از Enumeration
– تغییر اعداد متناظر به هر عضور از لیست Enumeration
درس دوازدهم: Structures
_ تعریف یک متغیر از نوع داده Structures
_ ساخت یک نمونه از متغییر Structures و مقدار دهی به متغیرهای آن
_ کاربا Structures داخلی MqlTick در زبان MQL5
_ استفاده از تابع SymbolInfoTick برای خواندن اطلاعات از سرورها و پر کردن متغیرهای MqlTick
_ اجرای اکسپرت نوشته شده روی نمودار سهم های مختلف
درس سیزدهم: متغیرهای ورودی ( input variables )
_ تعریف ویژگی های input variable
– آشنای با sintax متغیرهای ورودی
_ کاربرد expert نویسی برای بهینه کردن سود در اندیکاتور moving Average
_ مثال کاربردی از متغیرهای ورودی
درس چهاردهم : متغیرهای محلی و سراسری ( local variable and Global variable)
_ تعریف ویژگی های local variable
– آشنای با sintax متغیرهای محلی و سراسری
_ تعریف ویژگی های Global variable
درس پانزدهم : متغیرهای استاتیک ( static variable )
_ تعریف ویژگی های static variable
– آشنای با sintax متغیرهای استاتیک
_ بررسی تفاوت متغیرهای استاتیک و متغیرهای محلی
بخش سوم – عملگرها در زبان MQL5
درس شانزدهم : عملگرهای ریاضی ( Operations)
_ آشنایی با روش انجام عملیات ریاضی و ذخیره سازی نتایج عملیات در MQL5
_ تعریف عملگر جمع یا Addition و حل مثال از آن
_ تعریف عملگر ضرب یا Multiplication و حل مثال از آن
_ تعریف عملگر تفریق یا Subtraction و حل مثال از آن
_ تعریف عملگر تقسیم یا Division و حل مثال از آن
_ تعریف عملگر باقیمانده تقسیم یا Modulus و حل مثال از آن
درس هفدهم : عملیات تخصیص ( Assignment Operations)
_ تعریف عملگرهای تخصیص برای عملیات جمع
_ تعریف عملگرهای تخصیص برای عملیات تفریق
_ تعریف عملگرهای تخصیص برای عملیات ضرب
_ تعریف عملگرهای تخصیص برای عملیات تقسیم
_ تعریف عملگرهای تخصیص برای عملیات باقیمانده
درس هجدهم : عملیات مقایسه ای ( Relation Operations)
_ تعریف عملگرهای مقایسه ای
_ حل مثال از عملگر بزرگتر و کوچکتر
_ حل مثال از عملگر بزرگتر مساوی و کوچکتر مساوی
_ حل مثال از عملگر برابر و نابرابری
درس نوزدهم : عملیات منطقی ( Boolean Operations)
_ تعریف عملگرهای منطقی
_ تعریف و حل مثال از عملگر منطقی (AND)
_ تعریف و حل مثال از عملگر منطقی (OR)
_ تعریف و حل مثال از عملگر منطقی (NOT)
بخش چهارم – ساختارهای شرط و حلقه
درس بیستم : ساختار شرطی if
_ تعریف ساختارشرطی if
_ حل مثال از ساختارشرطی if
درس بیست و یکم : ساختار شرطی else
_ تعریف ساختارشرطی else
_ حل مثال از ساختارشرطی else
_ تعریف ساختارشرطی else if
_ حل مثال از ساختارشرطی else if
درس بیست و دوم : حلقه While
_ تعریف حلقه ها در MQL
_تعریف حلقه while
_ حل مثال از حلقه while
درس بیست و سوم : حلقه do_While
_ تعریف حلقه do-while
_ حل مثال از حلقه do_while
_ بررسی و حل مثال از تفاوت حلقه ی while و do_while
درس بیست و چهارم : حلقه for
_ تعریف حلقه for
_ حل مثال از حلقه for
_ تعریف و حل مثال از break operator
_ تعریف و حل مثال از continue operator
بخش پنجم – تابع
درس بیست و پنجم: معرفی تابع (Function)
_ معرفی نظری تابع ها
_ بیان 2 مزیت اصلی توابع
درس بیست و ششم : تعریف اولین تابع در MQL5
_ تعریف تابع GetStopLoss
_ تعریف ورودی و خروجی در تابع GetStopLoss
_ استفاده از تابع GetStopLoss در تابع OnTick
درس بیست و هفتم : تابع ها با مقدار ورودی پیش فرض (DefaultValue)
_ تعریف مزیت های تابع ها و دلیل استفاده از تابع ها
_ تعریف مقدار پیش فرض برای ورودی تابع ها
_ استفاده از تابع با با مقدار پیش فرض
درس بیست و هشتم : تابع های بدون خروجی ( void Type)
_ آشنای با عملگر return
_ تعریف مثال از تابع void
_ بررسی تفاوت تابع void و تابع که خروجی دارد
درس بیست و نهم : استفاده از داده های ویژه به عنوان ورودی تابع
_ معرفی تابع SymbolInfoTick
_ معرفی استراکچر MqlTick
_ساخت نمونه از استراکچر MqlTick
_ پاس دادن استراکچرها به عنوان ورودی تابع SymbolInfoTick
بخش ششم – شی گرایی و کلاس
درس سی ام : برنامه نویسی شی گرا ( object-oriented programming)
_ معرفی برنامه نویسی شی گرا
_ معرفی المان های کلاس و شی در طبیعت
_ معرفی المان های شی گرای کلاس و شی در صنعت
_ حل مثال از کاربرد شی گرایی در MQL5
درس سی و یکم : تعریف یک کلاس ( Classes)
_ تعریف کلاس CIndicator
_ معرفی المان های تعریف کلاس در MQL5
درس سی و دوم: سطح دسترسی در کلاس ( Access Modifiers)
_ معرفی انواع سطح دسترسی کلاس ها در MQL5
_ آشنایی با ویژگی های سطح دسترسی Public
_ آشنایی با ویژگی های سطح دسترسی private
_ آشنایی با ویژگی های سطح دسترسی protected
_ معرفی مفهوم encapsulation در oop
درس سی و سوم : کاربرد سطح دسترسی در کلاس ( Access Modifiers)
_ آشنایی با انواع روش تعریف تابع ها در کلاس
_ تعریف عملکرد تابع main در کلاس Cindicator
_ تعریف عملکرد تابع Release در کلاس Cindicator
_ استفاده از متغیرهای که به صورت protected در سطح کلاس تعریف شدن در تابع ها
درس سی و چهارم : constructor
_ تعریف ویژگی و کاربرد constructor پیش فرض
_ تعریف ویژگی و کاربرد constructor دستی در تابع
_حل مثال از constructor در کلاس Cindicator
درس سی و پنجم : ارث بری در برنامه نویسی شی گرا (ِDerived Classes)
_ تعریف مفهوم ارث بری inheritance
_ تعریف مفهوم کلاس والد یا کلاس parent class
– تعریف مفهوم کلاس فرزند یا derived class
_ تعریف کلاس اندیکاتور میانگین متحرک با نام CiMA به عنوان کلاس فرزند که از کلاس والد Cindicator
_ تعریف تابع Init() در کلاس CiMA و استفاده از متغیرهای ارث بری شده
درس سی و ششم : تابع های مجازی ( virtual functions)
_ تعریف کاربرد تابع های مجازی در کلاس ها
_ حل مثال کاربردی از تابع های مجازی در کلاس
درس سی و هفتم : نمونه یا object
_ آشنای با روش تعریف object از کلاس ها
_ تعریف object از کلاس CiMA یا کلاس اندیاتور میانگین متحرک
بخش هفتم – جمع بندی و طرح یک مثال
درس سی و هشتم : بررسی ساختار یه برنامه در MQL5
_ آشنایی با اجزای مختلف یک برنامه
_ نقش Preprocessor Directives در MQL5
_ تفاوت #include و #import
_ جایگاه متغیرهای input و global
_ جایگاه تابع ها و کلاس ها
_ مفهوم و جایگاه Event Handler ها
درس سی و نهم : جمع بندی و نگاهی به آینده
_ مروری بر آچه در دوره گفته شده
_ آنچه در ادامه پیش رو داریم