استفاده از اندیکاتور ها خارجی
درس سیزدهم
برای استفاده از تابع های خارجی زبان MQL تابع به خصوصی به نام iCustom دارد. این تابع حداقل 5 تابع ورودی می پذیرد.
به عنوان مثال :
قانون های نوشتن نام اندیکاتور:
- اندیکاتور مورد نظر باید در شاخه …/MQL4/Indicators/ وجود داشته باشد.
- در صورت که اندیکاتور در یک پوشه جدا گانه قرار داشته باشد باید نام ان پوشه نوشته شود به طور مثال اندیکاتور مورد نظردر پوشه New قرار دارد باید به صورت زیر درج گردد.
New\\indicator name
قبل از اینکه یک اندیکاتور خارجی را کدنویسی کنید یا مقدارگیری کنید باید ابتدا آن درون چارت قرار دهید و آنجا بررسی کنید. به طور مثال از اندیکاتور Aroon استفاده می شود:
یک مقدار ورودی با عدد 25 دارد.
در سربرگ رنگ ها دو جهبه رنگ مشاهده می شود که رنگ زرد بافر 0 و رنگ آبی بافر 1 مشخص شده است.
دو مقدار خروجی نمایش داده شده عبارتند از: بافر اول رنگ زود ، و بافر دوم رنگ آبی می باشد. چنانچه بخواهید مقدار بافر زرد را بگیرید باید نوع حالت آن را صفر قرار دهید و اگر بخواهید مقدار بافر آبی رنگ را بگیرید باید نوع حالت را 1 قرار دهید.
همچنین باید همواره دقت کنید که اندیکاتور فعلی درون شاخه ام کیو ال 4 ← andicator ← اندیکاتور فعلی وجود داشته باشد.
دقت نمایید برای گرفتن اطلاعات از اندیکاتور هیچ نیازی به فایل سورس نیست ، همانگونه که در تصویر بالا مشاهده می کنید اندیکاتور فایل سورس ندارد فقط فایل کامپایل شده موجود می باشد اغلب افراد گمان می کنند که باید فایل سورس وجود داشته باشد اما در واقع هیچ نیازی به فایل سورس وجود ندارد تنها کافیست اندیکاتور درون شاخه وجود داشته باشد.
مراحل کدنویسی آن را شروع کنید. اکسپرت جدید ساخته و نام گذاری کنید.
در تابع OnInt کد ها را بنویسید.
از تابع iCustom استفاده کنید. و برای نوشتن نام اندیکاتور به دلیل رشته بودن، آن را بین دو دابل کوتیشن بنویسید. دقت نمایید جهت جلوگیری از خطای احتمالی بهتر است نام اندیکاتور را کپی و paste کنید. چرا که ممکن است با خطای املایی ، برنامه به درستی جواب ندهد و دلیل آن را متوجه نباشید. لذا با کپی کردن نام اندیکاتور از این خطا پیش گیری کنید.
در پایان هر کدنویسی compile را کلیک و نباید اخطاری نمایش شود.
نام کلاس را درون چارت درگ و ok کنید.
مشاهده می کنید مقدار 8 را برای کندل شماره 1 نمایش داده است. چنانچه موس را بر کندل شماره 1 قرار دهید مقدار 8 در خروجی نمایش می شود.
اگر مقدار دوم را نیز بخواهید برای این کار کافی است به جای بافر 0 ، بافر شماره 1 را قرار دهید.
و compile را کلیک کنید.
بنابراین هر کندلی که بخواهید کافیست شماره بافر آن را تغییر دهید و مقدار را به دست بیاوردید.
اگر بخواهید مقدار input که به طور پیش فرض 25 بوده را تغییر دهید مراحل زیر را دقت نمایید.
بعد از نام اندیکاتور عدد مدنظر را وارد کنید به عنوان مثال عدد 50 بنویسید.
دقت کنید که مقدارها در اینجا متفاوت شده است زیرا که مقدارهای قبلی بر مبنای 25 بوده و اکنون بر مبنای 50 می باشد. روی خط چارت دابل کلیک کنید تا پنجره custum input ظاهر شود.
اینک مقدار اندیکاتور را تغییر دهید. مشاهده می کنید مقدار یکی خواهد بود روی کندل شماره1 اندیکاتور جدیدی را بسازید. مراحل زیر را دقت نمایید.
دو مقدار نمایش می دهد. خط اول خط قرمز می باشد و خط آبی رنگ خط دوم می باشد. که بافر 0 و 1 می باشد.
برای گرفتن مقدار مراحل زیر را پیش بروید.
همین نام را کپی کنید تا در کدنویسی دچار اشتباه تایپی نشوید. (ممکن است با خطایی مواجه شوید و ندانید از کجاست که در واقع از اشتباه تایپی می باشد. لذا در درستی نام ها دقت کافی داشته باشید).
در کدنویسی نام را همراه عبارت NEW// قرار دهید.
دقت نمایید که مقدارها یکسان می باشد.
چنانچه بخواهید چهار مقدار ورودی اندیکاتور را تغییر دهید مانند اندیکاتور قبلی عمل کنید. به عنوان مثال:
خواهی دید که مقدارها متفاوت شده اند.
اما اگر مقدار اندیکاتور را نیز تغییر دهید، نتیجه مساوی شدن اعداد خواهد شد.
اما اگر بخواهید مقدار 9 بماند و فقط عدد 26 را تغییر دهید باید در کدنویسی دو مقدار را وارد کنید.
مقدار اول مقدار استاندارد می باشد و دوم، مقدار جدید را وارد کنید.
همچنین اگر بخواهید مقدار سوم را تغییر دهید، باید دو مقدار استاندارد را نوشته و سپس مقدار سوم را تغییر دهید.
مشاهده می کنید مقدار اول یکسان و مقدار دوم (kijun sen) تغییر کرده است.
یک سری اندیکاتور وجود دارند که مقداری به ما نمی دهند تنها خطی را بر روی چارت نمایش می دهد. که در بخش پیشرفته شیوه به دست آوردن اطلاعات از آن ها را خواهید آموخت.
منبع : کتاب آموزش زبان MQL (دوره مقدماتی)
مدرس : استاد حسین احمدی
پاسخها