آرایهها در MQL5 و کاربرد آنها در اندیکاتور زیگزاگ در متاتریدر برای فارکس
آرایهها در زبان برنامهنویسی MQL5، مانند یک لیست مرتب از مقادیر با یک نوع داده خاص هستند. این مقادیر میتوانند اعداد، رشتهها یا حتی اشیاء باشند. در اندیکاتور زیگزاگ، آرایهها برای ذخیره و مدیریت دادههای مختلفی مانند قیمتهای باز، بسته، بالا و پایین، و همچنین نقاط زیگزاگ شناسایی شده استفاده میشوند.
کاربردهای رایج آرایهها در اندیکاتور زیگزاگ:
- ذخیره نقاط زیگزاگ: یک آرایه معمولاً برای ذخیره قیمتهای نقاط زیگزاگ استفاده میشود. هر عنصر از این آرایه، قیمت یک نقطه زیگزاگ را نشان میدهد. با استفاده از این آرایه، میتوان به راحتی به قیمتهای گذشته دسترسی پیدا کرد و محاسبات مختلفی را بر روی آنها انجام داد.
- محاسبات فنی: آرایهها برای انجام محاسبات فنی مانند محاسبه میانگین متحرک، انحراف استاندارد و سایر اندیکاتورهای تکنیکال بر روی دادههای تاریخی استفاده میشوند.
- ذخیره پارامترهای ورودی: برخی از اندیکاتورها پارامترهای ورودی مختلفی دارند که میتوانند در یک آرایه ذخیره شوند.
- ذخیره نتایج محاسبات: نتایج محاسبات مختلف را میتوان در آرایهها ذخیره کرد تا در مراحل بعدی استفاده شوند.
چگونه آرایهها در سورس کد اندیکاتور زیگزاگ استفاده شدهاند؟
به طور کلی، شما میتوانید به دنبال عبارتهایی مانند double[], int[] یا string[] بگردید. این عبارات برای تعریف آرایههایی با انواع دادههای مختلف استفاده میشوند.
مثال ساده:
فرض کنید آرایهای به نام ZigZagPrice[] داریم که برای ذخیره قیمتهای نقاط زیگزاگ استفاده میشود. این آرایه ممکن است به صورت زیر تعریف شود:
double ZigZagPrice[];
سپس، در طول اجرای اندیکاتور، قیمت هر نقطه زیگزاگ شناسایی شده در یک عنصر از این آرایه ذخیره میشود. برای مثال، برای ذخیره قیمت اولین نقطه زیگزاگ در این آرایه، میتوانیم از کد زیر استفاده کنیم:
ZigZagPrice[0] = High[i]; // فرض کنید High[i] قیمت بالای کندل فعلی باشد
موارد دیگری که باید به آنها توجه کنید:
- اندازه آرایه: قبل از استفاده از یک آرایه، باید اندازه آن را مشخص کنید. این کار معمولاً با استفاده از تابع ArrayResize() انجام میشود.
- دسترسی به عناصر آرایه: برای دسترسی به یک عنصر خاص از آرایه، از اندیس آن استفاده میشود. اندیسها از صفر شروع میشوند.
- عملیات روی آرایهها: روی آرایهها میتوان عملیات مختلفی مانند مرتبسازی، جستجو و ... انجام داد.