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

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

کدنویسی و ساخت اندیکاتورهای خطی

درس نهم

مجموعه ای از خواص وجود دارد که باید در سربرگ (Header) کدها قرار بگیرند به عنوان مثال:

   مقدارهای ثابت (شناسه)         property#

در ادامه با آرگمان های بیشتری آشنا شوید.

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

بافر (buffers):

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

به عنوان مثال:بافر

از شناسه indicator_separate_window

استفاده شده است. که minimum مقدار صفر

و maximum مقدار 100 می باشد. چونکه دوخط

نمایش دشه بنابراین از 2 بافر استفاده شده است

 

برای خط کشیدن باید از تابع SetIndexStyle استفاده کنید. این تابع هیچ خروجی ندارد. چهار ورودی می گیرد به عنوان مثال :

; (اندازه خط ,نوع خط, DRAW_LINE,شماره بافر)SetIndexStyle

شماره بافر

❓مسئله شماره 13:

اندیکاتوری بنویسید که در چارت یک خط 10 پوینت بالاتر از high کندل قبلی و یک خط 10 پوینت پایین تر از low کندل قبلی رسم کند.
در پاسخ فایل جدید از نوع  Custom Indicator بسازید و نام گذاری کنید. سایر مراحل را بدون تغییر به پایان برسانید.

نوشتن اکسپرت

سپس دستورهای property را وارد کنید.

دستورهای property

توجه کنید تمام property ها ابتدای آن ها هشتگ (#) قرار می گیرد. همه آن ها با حروف کوچک نوشته می شوند.

indicator_chart_window:

به صورت پیش فرض تعریف شده است. عملکرد آن نمایش اندیکاتور در چارت اصلی  می باشد.

indicator_buffers :

در این اندیکاتور هر تعداد خط مدنظر دارید را وارد نمایید.

بعد از آن آرایه ها را تعریف کنید. تا مقدارها را در این دو آرایه قرار دهید. نام آن را به دلخواه انتخاب کنید. به عنوان مثال:

سپس در تابع OnInt دو بافر که بالا نوشتید را وصل کنید به اندیکاتور ، به تصویر زیر دقت نمایید.

اندیکاتور

دقت کنید که ایندکس از حروف بزرگ و کوچک تشکیل شده است. (SetIndexStyle)

چنانچه در تصویر بالا مشاهده می کنید دستور اول برای خط شماره یک ، شماره اندیکس آن صفر می باشد یعنی اولین خط را از صفر درنظر می گیرد و دومین خط شماره یک می باشد ، این نکته همانند تابع ordertotal  است.

در انتهای دستور استایل خط ها می توان رنگ را نیز تعریف کرد، اما به دلیل انتخاب رنگ در property لزومی به تکرار این عمل نیست.  در پایان compile  را کلیک و نباید اخطاری نمایش شود.

محاسبات داخل اندیکاتور را باید در int oncalculate انجام دهید.

اندیکاتور خطی

total عملکرد این متغیر بدین گونه است که مقدار بارهای کندل را نمایش می دهد. این متغیر با آرایه bar تفاوتی ندارد.

Const int orev_calculated مقدار آن صفر می باشد. از آن جایی که اندیکاتور بارها را می خواند و جلو می آید به مراتب به مقدار اضافه می شود. تا به بار بالا برسد. به عنوان مثال؛ اگر 100 بار (کندل) داشته باشید یا به تعبیری مقدار Const int rates_total عدد 100 باشد و مقدار Const int orev_calculated عدد صفر باشد ، زمانی که اندیکاتور را در  چارت بگذارید Const int rates_total سریعا مقدار 0 تا 100 را می شمارد.

دستور نوشته شده در دستور ابتدا متغیر ساخته و مقدارها در متغیر قرار داده شد. سپس بارها (مثلا 100) منهای صفر(0-) و منهای یک(1-) شدند. به عبارتی 100 منهای 1 عدد 99 شد. چرا که بارها(کندل) از صفر شروع می شوند.
بنابراین عدد 99 حاصل شده را در حلقه for بگذارید تا یک به یک کم شده تا زمانی که بار به صفر برسد.

مرحله بعد خط ها را مقداردهی کنید.

توابع اندیکاتور

Compile را کلیک و نباید اخطاری نمایش دهد.

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

نام کلاس را درون چارت درگ کنید در کادر نمایش شده رنگ ها را مشاهده کنید.

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

خط به وضوح قابل رؤیت هستند. که فاصله کوچکی با کندل دارند.

چنانچه بخواهید خطوط ضخامت بیشتری داشته باشند کافی است در کدنویسی در قسمت استایل ها عدد1 را به 2 تبدیل کنید. (ملاحظه: اگر خط انتخابی شما به صورت نقطه چین باشد با ضحامت دادن آن، نقطه چین از بین می رود).

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

حال اگر بخواهید فاصله را بیشتر کنید مقدار  point10  را افزایش دهید.

اندیکاتور خطی

کدنویسی و اندیکاتور خطی

در گذشته در ورژن های قدیمی شیوه محاسبات به  بوده لذا چنانچه در جایی نوع دستور نویسی زیر را مشاهده نمودید بدانید به سبک قدیمی دستورات تعریف شده اند.

کتاب MQL

اندیکاتور خطی

تفاوتی در شیوه اجرا برنامه وجود ندارد. اما این گونه کدنویسی دیگر منسوخ شده اند.

 

 

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

 

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

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

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

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

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

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

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

پاسخ‌ها

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

  1. سلام وقت بخیر
    شما این برنامه ها را از کجا یاد گرفتین؟ یعنی منبع یادگیریتون چیه؟

    1. سلام ،این نتیجه سال ها برنامه نویسه هست ،منبع من ربفرنس ام کیو ال بود، همون f1 که زمانی که دارید کد میزنید باز میشه