نمونه کد نویسی اکسپرت به صورت کامل(بخش دوم) – درس هفتم – کتاب آموزش زبان mql (دوره متوسطه)

آموزش ام کیو ال

نمونه کد نویسی اکسپرت به صورت کامل(بخش دوم)

درس هفتم

کد نویسی اکسپرت

❓ مسئله شماره 11:
اکسپرتی با مشخصات و تنظیمات زیر را بنویسید:

  • در ابتدای هر کندل روزانه یک Order buy stop در high کندل روزانه قبلی و یک  Order Cell Stop در Low کندل روزانه قبلی قرار دهد.
  • در پایان روز Order های باز شده بسته شوند و Order های باز نشده پاک گردند.
  • میزان حجم Orders توسط کاربر قابل تغییر باشد.

قبل از پاسخ دهی شرایط قرار دادن order ها را دقت کنید. سپس وارد کدنویسی شوید.

اکسپرت

اکسپرتی بسازید و نام گذاری کنید. کاربر گرفته و مقدار اولیه را وارد نمایید به عنوان مثال:

آموزش اکسپرت

سپس وارد تابع OnTick شوید و دستورها وارد نمایید . به عنوان مثال:

آموزس کد نویسی اکسپرت

سپس دو شرط در کوتیشن را بررسی می کند:

شرط اول تابع orders را بررسی می کند. در حقیقت تابع orders پوزیشن هایی را می شمارد که شماره magic آنها  با ورودی تعریف شده یکی باشد. در مثال بالا پوزیشن هایی که شماره مجیک آن ها 1212 می باشند را می شماره به عنوان مثال کدها در تصویر زیر تعریف شده است:

MQL

با دستور for و if تک تک پوزیشن ها بررسی شد.

بنابراین اگر order با شماره مجیک 1212 وجود نداشت یعنی مساوی با صفر بود، BUYSTOP تعریف کند. جزئیات دستور در تصویر زیر می باشد.

حلقه For

سپس بررسی می کند order با شماره مجیک 2121 وجود نداشته باشد BUYSDND تعریف کند.

دستور If

در دو مثال بالا شرایط order گذاری تعریف گردید.

تابع Deleteorders:

این تابع void هست و بدون ورودی می باشد. با حقله for و if یک به یک پوزیشن ها را انتخاب می کند پوزیشن انتخابی ابتدا شماره مجیک را بررسی می کند که همان شماره های تعریف شده هستند یا خیر. تا اطمینان حاصل شود که اکسپرت بدون خطا گرفته شد.

فراخوانی بستن آن مرتبط به اول کندل یا اخر کندل نیست. به زمان پوزیشن ربط دارد.  منتهی نباید درون شرط قرار بگیرد.

orderopenTime:

روزی که پوزیشن باز شده را بررسی می کند. که درون تابع TimeDay قرار می گیرد.

تابع TimeDay

شرط بدین معناست که: اگر پوزیشن buystop یا sellstop بود، پوزیشن را delete کن. اما اگر buystop باز شده باشد تبدیل به BUY شده و اگر sellstop باز شده باشد تبدیل می شود به SELL.

buystop یا sellstop

 کدنویسی دندونه ای

در پایان کدنویسی compile را کلیک کنید و نباید اخطاری نمایش شود.

وارد برنامه شوید و از قسمت symbol نام کلاس را انتخاب کنید.

کد نویسی اکسپرت

می توانید از قسمت Export properties سربرگ inputs مقدار ورودی ها را بررسی نمود.

آموزش کد نویسی اکسپرت

با کلیک بر start برطبق پوز ها برنامه شروع به کار کردن می کند.

اکسپرت نویسی

آموزش ام کیو ال

آنچه در کادر زردرنگ مشاهده می کنید بدین معناست که پوزیشن stopsell باز شده، قیمت را نتوانسته بیاورد و بسته شد.
کادر سبز رنگ به معنای پوزیشن stopbuy می باشد که باز شده و در پایان روز آن را بسته.
تمام جزئیات عملیات را می توانید در سربرگ results مشاهده کنید.

کدنویسی کامل اکسپرت

کتاب آموزش ام کیو ال

اگر به صورت رورانه هم آن را بررسی کنید لازم است قسمت period گزینه Daily راانتخاب کنید تا عملکرد روزانه ان را مشاهده کنید. سپس srart را کلیک کنید.

اکسپرت

بنابراین برنامه به صورت کامل در حال انجام عملیات تعریف شده می باشد. Buy و sell را به طور منظم نمایش می دهد. ممکن است با چنین موردی مواجه شوید که کندل صعودی نیست و نزولی عمل می کند.

اکسپرت

در این صورت می توانید با تغییر دادن BUYSTOP و SELLSTOP در متاتریدر مشکل را برطرف نمود.

BUYSTOP و SELLSTOP

همچنین در Deleteorder به جای buystop و sellstop ، BUYLIMIT و SELLLIMIT قرار دهید.

BUYLIMIT و SELLLIMIT

بار دیگر پوزیشن گیری کنید.

پوزیشن گیری

پوزیشن گیری

در این حالت پوزیشن صعودی شد.

مبلغ سود

در قسمت گزارش گیری سربرگ Report مبلغ سود را مشاهده خواهی کرد. البته نکته شایان ذکر سود ماه گذشته را نمایش داده است.

 

 

منبع : کتاب آموزش زبان MQL (دوره مقدماتی)
مدرس : استاد حسین احمدی

 

سایر مقالات مرتبط

متا تریدر چیست؟
متاتریدر

متا تریدر چیست؟

متا تریدر چیست؟ اولین سوالی که هر فرد وقتی می خواهد آموزش های متاتریدر مانند آموزش صفر تا صد mql5،

کامل ترین و بهترین آموزش متاتریدر 4
mql4

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

بهترین آموزش متاتریدر 4 متاتریدر4 یک پلتفرم معاملاتی محسوب می‌ شود که دارای رابط کاربری ساده است و همین یادگیری

پاسخ‌ها

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. سلام خسته نباشید
    برای خط دستور من
    OrderSend(_Symbol, OP_BUY, lotSize, Ask, 3, 0, 0, “Buy Trade”, 0, 0, Green);
    ارور میدهد

    ‘OP_BUY’ – undeclared identifier
    ‘OrderSend’ – Wrong parameters count

    میشه راهنمایی کنید مشکل چی میتونه باشه ؟
    ممنون

    1. سلام ،به احتمال زیاد دارید روی متاتریدر 5 کد رو مبزنید این کد برای mql4 هست