به فضای فصل پنجم از بسته بسته پیشرفته آموزش ساخت اکسپرت با زبان MQL5 است. هدف ما در این فصل، کدنویسی برای تنظیم زمان اجرای خودکار ربات یا همان اکسپرت معامله است. این یکی از گامهای اکسپرت نویسی حرفه ای است. این که ربات چه زمان خودکار وارد بازار شود و شرایط معامله را بررسی کند و چه زمانی از بازار خارج شود. زمان بندی معامله در اکسپرت مبحث مهمی در اجرای روزانه است که در این بسته به صورت گام به گام و دقیق فرامیگیرید.
لطفا دقت کنید که این فصل در واقع بخشی از آموزش پیشرفته mql5 در مسیر آموزشی زیر است.
- آموزش مقدماتی ساخت اکسپرت معامله با MQL5
- آموزش پیشرفته mql5 برای ساخت اکسپرت معامله
- بسته تکمیلی آموزش MQL5 برای ساخت اکسپرت معامله
*توجه: اگر بسته شماره ۲ را در بالا تهیه کردهاید دیگر نیازی به تهیه این فصل نیست؛ زیرا در همان بسته قرار داده شده است.
پیش از معرفی آموزش بگذارید شما را با دو موضوع مهم در ورود و خروج (اجرا) اکسپرت در بازار صحبت کنیم.
۱- انتخاب نقطه اجرا در آغاز تیک یا کندل؟ در طول آموزش اکسپرت نویسی پیشرفته تا این فصل، شرایط ارسال سفارش را در هر تیک (Tick) بررسی میکردیم. اگر در آن تیک شرایط برقرار بود سفارش را ارسال میکردیم. یکی از ایرادهای این روش آن است که اکسپرت ما براساس شرایط هر تیک (قیمت و مقدار اندیکاتور در آن تیک) تصمیم به ارسال سفارش میگیرد. گاه بهتر آن است که هر زمانی که کندل جدید باز شد اگر شرایط ارسال سفارش در کندل قبل برقرار بود در آن صورت سفارش در این کندل جدید ارسال شود.
۲- زمان مناسب ورود و خروج در بازارهای گوناگون: برای اجرای اکسپرت و انجام معاملات خودکار باید زمان اجرای آن را تعیین کنیم. به عنوان مثال اگر اکسپرت را برای فارکس کدنویسی کردیم، بهترین زمان برای معاملات در فارکس زمان باز شدن بازار لندن تا زمان بسته شدن بازار نیویورک است. در این بازه زمانی بیشترین معاملات در جهان صورت میگیرد. پس بهتر است که اکسپرت ما هم در این بازه زمانی فعال شود و در صورت فراهم بودن شرایط ارسال سفارش معاملات را انجام دهد.
این آموزش در یک نگاه
ما در آغاز این آموزش کلاس CnewBar و تابع CheckNewBar را برای شناسایی بازشدن کندل جدید تعریف میکنیم. بعد یک اکسپرت را در شرایط ارسال سفارش در هر «تیک» اجرا میکنیم. در ادامه همان اکسپرت را با کلاس CnewBar و تابع CheckNewBar بازنویسی میکنیم. این بار اکسپرت را با شرایط ارسال سفارش در آغاز هر «کندل» اجرا میکنیم و نتیجه را با حالت قبل بررسی کردیم.
در بخش بعد با نوع داده DateTime آشنا میشویم و عملیات ریاضی را روی متغیرهای با نوع داده DateTime انجام میدهیم. در همین راستا با تابع TimeToString و StringToTime کار میکنیم. در درس بعد استراکچر MqlDateTime را معرفی میکنیم. با این استراکچر میتوانیم اجزای یک متغیر DateTime را تجزیه کنیم. در ادامه تابع CheckTimer را تعریف میکنیم. این تابع دو ورودی از ما میگیرد که ساعت و دقیقه است. بعد تاریخ را از سرور میخواند و در نهایت یک متغیر از نوع DateTime به ما برمیگرداند.
در ادامه این آموزش ساخت اکسپرت ، تابع CheckTimer را تعریف میکنیم. با استفاده از این تابع، اطلاعات تاریخ و زمان هر تیک را از سرور میخوانیم. این تاریخ را با StartTime و EndTime که برای اکسپرت تعریف کردیم مقایسه میکنیم. اگر زمان حال بین این دو مقدار بود تابع به ما true را برمیگرداند در غیر این صورت False را return میکند. اما تابع CheckTimer در صورتی که ساعت شروع اجرای اکسپرت و ساعت پایان اجرا یک روز با هم فاصله داشته باشند به درستی کار نمیکند. پس ما تابع DailyTimer را تعریف میکنیم تا داخل این تابع از تابع CheckTimer و CreateDateTime استفاده کنیم. باگ تابع CheckTimer را برطرف میکنیم و با استفاده از تابع DailyTimer هر نوع Timer را برای اجرای اکسپرت تعریف میکنیم.
سپس تابع PrintTimerMessage را تعریف میکنیم. این تابع هر زمان که timer فعال شد متن Timer Started را برای ما نمایش دهد و هر وقت که Timer غیر فعال شد متن Timer Stoped را نمایش دهد. کاربر به این وسیله از فعال یا غیر فعال بودن اکسپرت مطلع میشود.
در درس آخر هم با OnTimer Event Handle آشنا میشویم. با عملکرد تابع EventSetTimer و EventKillTimer نیز آشنا خواهید شد.
تمام سورس کدها به فیلم آموزشی هر درس پیوست شده است.
این آموزش ساخت اکسپرت بینظیر است زیرا:
- سناریونویسی شده و دارای زمان بهینه است.
- مدرس آن یک اکسپرت نویس حرفهای (+) است.
- براساس منبع معتبر جهانی تهیه شده است.
- دارای مثالهای کاربردی و سورس کدها در کنار آموزش است.
پیشنیاز
- آموزش اکسپرت نویسی MQL5 – بسته مقدماتی
- آموزش پیشرفته اکسپرت نویسی با MQL5 – فصل اول حدضرر پویا
- آموزش پیشرفته ساخت اکسپرت با MQL5 – فصل دوم مدریت پول
- آموزش پیشرفته اکسپرت نویسی MQL5 – فصل سوم اطلاعات کندل ها
- آموزش پیشرفته ساخت اکسپرت با MQL5 – فصل چهارم: اندیکاتورها
کلیدواژگان:
آموزش mql5 پیشرفته – آموزش متاتریدر 5 – آموزش metatrader – زمان بندی اکسپرت – آموزش اکسپرت نویسی mql5 پیشرفته – آموزش ساخت اکسپرت – آموزش ساخت ربات معامله گر – expert timing – اکسپرت نویسی فارکس – اکسپرت بورس – زمان بندی معامله در اکسپرت – برنامه ریزی اجرای اکسپرت
محمدجواد –
سلام وقت بخیر
آیا برای بورس ایران هم میشه استفاده کرد؟ اگر بله توی کدوم اموزش به بورس ایران اتصال داده شده؟
معصومه کرمی –
سلام
آموزش مقدماتی ساخت اکسپرت با زبان MQL5
آموزش پیشرفته ساخت اکسپرت با زبان MQL5
دو آموزش بالا براساس بازار بورس طراحی شدند و از ابتدا تمام ربات های که می سازیم در نرم افزار مفیدتریدر روی نمادهای بورس ایران اجرا می کنیم.
اما درحال حاضر انجام معاملات الگوریتمی (ارسال سفارش و انجام معامله بر اساس استراتژی ما توسط ربات) به دلیل فراهم نبودن زیر ساخت ها در بازار بورس ایران ممکن نیست و فقط از اکسپرت ها در بازار بورس برای تست استراتژی ها و بهینه سازی آن ها و گرفتن سیگنال ورود و خروج به معاملات می تونیم استفاده کنیم.
مصطفی احمدزاده (خریدار محصول) –
با سلام. مجموعه کامل شامل دروس3-4-5هستش لطفا اصلاح کنید
روابط عمومی هم رویش –
با سلام و عرض ادب
با تشکر از اطلاع شما لینک دریافت یکجای بسته اصلاح شد
مصطفی آصفی –
فقط می تونم بگم بی نظیر هستن آموزش های مهندس کرمی.
معصومه کرمی –
ممنونم از حمایت شما مهندس آصفی عزیز.