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

توابع زمانی و تاریخ

درس دوم

در درس گذشته مبحث آرایه ها (آرایه open)  openکندلی که می خواستید در قالب اکسپرت یا اندیکاتور را نمایش می داد، اما در برخی مواقع نیاز می شود که کندل را در دوره زمانی (PERIOD ) یا چارت های دیگر مورد بررسی قرار دهد برای این کار از تابع ها استفاده می شود.

توابع زمانی

برای آشنایی با توابع زمانی نوع یک به جدول زیر دقت نمایید.این دسته از توابع سه نوع ورودی می گیرند. (رشته، عدد صحیح و عدد صحیح)

شیوه نوشتاری آن به عنوان مثال :

                                                                          ;( شماره کندل ,تایم فرم ,نام چرات )iOpen
;iOpen(“USDCHF”,PERIOD_H1,1)
;iOpen(“USDCHF”,60,1)

برای آشنایی بیشتر با شیوه مقداردهی به جدول زیر توجه کنید.   

❓ مسئله شماره 4:
اکسپرتی بنویسید که شماره کندل، تایم فرم و نام چارت را از کاربر گرفته و مقدار open و close را در دستور پرینت چاپ نماید.

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

سربرگ Expert در قسمت پایین برنامه مقدار open و close را نمایش می دهد.
می توانید در پنجره Expert چارت دیگری را تعریف کنید. (با درگ کردن نام کلاس به داخل فضای برنامه پنجره نمایش می شود)

از چارت USDJPY استفاده کنید و تایپ 1 ساعت (60 دقیقه) و کندل 1 را وارد نمایید.

نکته قابل توجه در دستور نویسی این است که می توانید دستورها را بصورت مختصر در قسمت پرینت قید کنید در این صورت نمای مختصرتری خواهد داشت به عنوان مثال:

و عملکرد آن مانند مراحل پیشین خواهد بود.

❓ مسئله شماره 4:
اکسپرتی بنویسید که در ابتدای هر کندل، کندل قبلی جفت ارزهای  USDJPY و USDCHF را چک کند، اگر کندل صعودی در هر دو جفت ارز تشکیل شد در دستور کامنت BUY را چاپ نماید و اگر در هر دو جفت ارز کندل نزولی تشکیل شد SELL را چاپ کند.

در متاتریدر دستورات را در تابع OnTick بنویسید زیرا در تابع Onint تنها زمانی که اکسپرت راه اندازی می شود اجرا می گردد در حالی که تابع OnTick هر زمانی که اعلان جدید پیش بیاید فراخوانی و اجرا می شود.  دسترسی به داده های کندل ها به چند شکل امکان پذیر می باشد : که بهترین روش استفاده از توابع زمانی است. که در آینده بیشتر با آن ها آشنا خواهید شد. در حال حاضر بهترین روش استفاده از volume می باشد. این تابع به ما می گوید که آیا کندل بر آن خرید و فروش صورت گرفته یا خیر.

به شیوه ورود شرط ها در متاتریدر را مشاهده کنید.

می توانید رو به روی همان شرط ، شرط دیگری نیز تعریف کنید که در USDJPY صعودی است یا نه. شیوه دستور نویسی مانند چارت قبلی است با این تفاوت که نام چارت را تغییر دهید. به عنوان مثال:

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

برای sell دستور نویسی ها برعکس خواهد بود.

چنانچه دقت کرده باشید در هنگام دستور نویسی ، دستور بسیار طولانی بوده و نمای خسته کننده ای به خود داشت. بهترین روش استفاده از تابع می باشد. اگر بخواهید نوشته به شما نمایش دهد از تابع string استفاده کنید.

از آن جایی که تابع string می باشد و باید خروجی داشته باشد اگر دو دستور بالا نباشد چه چیزی را چاپ کند! در این صورت از else استفاده کنید.

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

اگر بخواهید کندل دیگری را بررسی کنید و مایل نباشید دستی آن را تغییر دهید بهترین روش این است که به تابع ورودی بدهید سپس نام متغیر را وارد کنید به عنوان مثال:

در این صورت سیگنال را نیز تغییر دهید.

هر جا بخواهید دو چارت دیگری را استفاده کنید کافی است سیگنال مورد نظر فراخوانی شود و داخل ورودی های آن اسم چارت را قرار دهید.

کندل تشکیل شده و BUY را چاپ کرده است.

 

 

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

 

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

دیدگاه‌ خود را بنویسید

عناوین این پست
Scroll to Top
اسکرول به بالا