آیا تا به حال کسی به شما گفته است که یک ربات معامله گر می تواند تمام کارها را برای شما انجام دهد در حالی که شما فقط می نشینید و شاهد رشد سود خود هستید؟ تصور کنید از هوش مصنوعی برای تجزیه و تحلیل دادهها و تصمیمگیری بهینه معاملاتی استفاده میکنید، همه اینها با کلیک یک دکمه. خب، اینجا یک راز وجود دارد: پایتون، یکی از همه کاره ترین زبان های برنامه نویسی، همه چیز را ممکن می کند. این مقاله به شما درک عمیقتری از اینکه چرا پایتون اولین انتخاب برای تحلیل بازار مالی و معامله گری الگوریتمی است و اینکه چگونه یادگیری پایتون میتواند تجربه معاملاتی شما را متحول کند، به شما ارائه میدهد.
هدف ما از آموزش برنامه نویسی 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 ها
درس سی و نهم : جمع بندی و نگاهی به آینده
_ مروری بر آچه در دوره گفته شده
_ آنچه در ادامه پیش رو داریم
ساخت ربات معامله گر (ربات تریدر | Trader Bot) در بازارهای مالی حال حاضر توجه بسیاری از سرمایهگذاران را به خود جلب کرده است. اگرچه پلتفرمها و رباتهای معاملهگر از دیرباز مورد توجه فعالان بازارهای مالی بودهاند اما امروزه بیش از هر زمان دیگری توسعه یافتهاند. این دوره آموزش ساخت ربات تریدر با هدف آموزش ساخت ربات برای معاملهگران و برنامه نویسان تدوین و طراحی شده است.
پلتفرم معاملاتی متا تریدر محبوبترین پلتفرم معاملاتی دنیاست. علت محبوبیت بسیار زیاد این پلتفرم را میتوان در امکانات فوقالعاده و زیادی که به کاربران خود میدهد، جستجو کرد. امکان ساخت، تست و اجرای رباتهای معاملاتی از جمله این امکانات است. اکسپرت ادوایزر (Expert Advisor) به آن دسته از برنامههای کامپیوتری میگویند که روی پلتفرم متا تریدر راهاندازی میشود و بازارهای مالی را رصد میکند.
ربات معاملهگر یا ربات تریدر در واقع همان نرمافزاری است که به مانند یک معاملهگر تحت نظارت و برنامههای مشخص در بازارهای مالی حضور پیدا کرده و خرید و فروش انجام میدهد. این رباتها میتوانند برای حضور حرفهای در بازارهای مالی از جمله فارکس، ارز دیجیتال، بورس اوراق بهادار و غیره به معامله گران کمک کند. دوره آموزش ساخت ربات تریدر نیز با هدف آموزش ساخت ربات تریدر در مکتب خونه تهیه و تدوین شده است.
رباتهای معاملهگر بسته به اهدافی که از آنها بهرهگیری میشود، از یک سری الگوریتمها برای تصمیمگیری و تشخیص خط روندهای بازار استفاده میکنند تا فرصتهایی معاملاتی مناسبی را برای کاربر ایجاد کند و همچنین این ربات تریدرها میتوانند در هر ساعت از شبانهروز روندهای بازار را رصد کنند و کنترل معاملات کاربر را برعهده بگیرند.
فعالیت در بازارهای مالی و سرمایهگذاری در آن امروزه به یک کار مفرح و درعینحال پرسود تبدیل شده است. کسانی که با این بازار آشنا هستند بهخوبی میتوانند سرمایهگذاری کرده و سودهای کلانی به دست آورند.
بااینحال باز هم معاملهگران در تمام شرایط نمیتوانند یک ترید موفق داشته باشند یا همزمان بازارهای متعدد را بررسی کنند؛ بنابراین در این شرایط وجود یک ربات معاملهگر مانند اکسپرت ادوایزر (expert advisor) ضروری است. هدف از ساخت این رباتها کمک به معاملهگران برای پیداکردن سیگنالهای خریدوفروش در بازارها (مشاور) و همچنین معامله بهجای آنها (تریدر) است که در دوره آموزش ساخت ربات تریدر کاربران این مفاهیم را خواهدن آموخت.
دوره آموزش ساخت ربات تریدر برای افراد زیر مناسب است:
مهارتهایی که دانشجو پس از گذراندن دوره آموزش ساخت ربات تریدر (آموزش ساخت ربات معامله گر) کسب خواهد کرد، به صورت فهرست موارد زیر است:
در دوره آموزش ساخت ربات معامله گر با زبانهای MQL4 و MQL5 تلاش شده است تا تمامی مباحث از صفر تا صد بهصورت مفصل و کامل همراه با مثالهای متعددی توضیح داده شود. در این دوره شما میتوانید تمامی مراحل ساخت و اجرای اکسپرت از شروع برنامهنویسی تا اجرا و اتصال به ایمیل و VPS را بهصورت کامل و عملی یاد بگیرید.