متغیرها در برنامهنویسی را میتوان مانند ظرفی با یک نام در نظر گرفت که در داخل آن اطلاعاتی ذخیره میشوند. انواع متغیر در اکسپرت نویسی برای برچسب زدن به دادهها و تعریف نامی برای آنها استفاده میشود. بنابراین، استفاده از آنها در برنامهنویسی منجر به وضوح و سادهتر شدن درک کدها و بهبود خوانایی آنها توسط برنامهنویس و سایر افرادی میشود که به هر دلیلی نیاز به خواندن کدها دارند.
متغیر(variable) چیست؟
متغیر در برنامهنویسی یک قطعه نامگذاری شده در حافظه کامپیوتر است که دادهها در آن قابل ذخیرهسازی هستند. هر متغیر در برنامه نویسی معمولاً دارای یک نوع داده (Data Type) خاص است. برای ساخت اکسپرتهای سودده در بازار فارکس ابتدا باید با متغیرها آشنا شوید. در واقع ما باید دادههایی مثل قیمت، حدضرر، حدسود و… را ذخیرهسازی کنیم تا بتوانیم عملیات مدنظر را روی آنها اعمال کنیم، که متغیرها به این منظور استفاده میشوند.
فرمت متغیرها در برنامهنویسی
مقدارمتغیر = اسممتغیر نوعمتغیر
ابتدا باید نوع متغیر را مشخص کنید. سپس یک اسم دلخواه انتخاب کنید. (ترجیحا مرتبط با کاری که میخواهید انجام دهید، زیرا که موقع استفاده بدانید برای چه آن متغیر را ساختهاید) پس از نوع و اسمی که انتخاب کردید مساوی قرار داده و مقداری که میخواهید ذخیره شود را مینویسید.
برای انتخاب اسم متغیرها نکات زیر را باید رعایت کنیم:
- حداکثر میتواند 31 کاراکتر داشته باشد.
- نباید با عدد شروع شود؛ مثلا نباید با ۲۱abc شروع شود.
- نباید از کلمات کلیدی که از قبل در محیط برنامهنویسی رزرو شده است استفاده کنیم. مانند int , double و …
- حروف بزرگ و کوچک تاثیرگذار است، برای مثال ab و AB دو اسم متفاوت درنظر گرفته میشود.
انواع متغیر در برنامهنویسی
ذر ادامه انواع متغیر را توضیح خواهیم داد. ولی ۶ مورد اول بیشترین استفاده را در برنامهنویسی MQL دارد.
int -1
مخفف Integer است. این متغیر ظرفی است که میتوانیم فقط اعداد صحیح در آن قرار دهیم.
متغیرها را به دو صورت میتوانیم مقدار دهی کنیم
1. در همانجا که تعریف کردیم مقدار دهیم.
;int stoploss=20
2. میتوانیم ابتدا تعریف کنیم و سپس در جای دیگر مقداردهی کنیم.
;int stoploss
;stoploss=20
double -2
در این ظرف ما میتوانیم علاوه بر اعداد صحیح، اعداد اعشاری هم بریزیم.
;double price= 15.5
bool -3
مخفف boolean است. این ظرف فقط میتواند دو حالت داشته باشد و زمانی استفاده میشود که میخواهیم بگوییم یک چیزی یا درست یا غلط است. (در زبان برنامهنویسی یا 0 است یا 1) و با true و false مشخص میکنیم.
;bool signal=false
;signal = true
وقتی یک مقدار true است، لزوما نباید آن مقدار برابر با یک باشد بلکه هر مقداری به غیر از صفر برابر با true است. بیشترین استفاده این متغیر در شرطها است و میتوان به چند شکل از آنها استفاده کرد.
برای مثال در ابتدا یک متغیر از نوع int تعریف میکنیم و سپس در شرط استفاده میکنیم.
;int ticket=225650
if(ticket==true)
;Comment(“The position is open”)
else if(ticket==false)
;Comment(“The position is not open”)
همین شرط را میشود به شکل زیر هم نوشت و هر دو صحیح هستند.
if(ticket)
;Comment(“The position is open”)
else if (!ticket)
;Comment(“The position is not open”)
نوع داده bool زیرمجموعه integer type است.
اگر ما از توابعی که خروجی integer دارند از شرط if استفاده کنیم و خروجی آن برابر با صفر بود مقدار false را به خروجی میدهد و اگر آن مقدار غیر صفر بود مقدار true را به ما نشان میدهد.
نکته: دادههای اعشاری هم اگر غیر صفر باشند مقدار true خواهد بود.
string -4 یا char
ظرفی است که اصطلاحا به آن رشته میگویند و در برنامهنویسی داخل ” ” قرار میگیرد. از 0 تا 255 کاراکتر میتوانیم داخل آن بریزیم و این کاراکترها میتواند شامل حروف و عدد و علامت و … باشد.
string password = “ahmad@125” ;
تفاوت char با string در این است که char یک حرف و string مجموعه ای از حروف است و جملات است. در نوع char تنها امکان ذخیرهسازی یک کاراکتر واحد وجود دارد.
color -5
به دو صورت میتوانیم رنگ مد نظرمان را بنویسیم.
یک: اسم رنگ (color name)
راحتترین شکل استفاده از رنگها استفاده از اسم رنگ است؛ فقط در ابتدا clr را مینویسیم و سپس اسم رنگ را مینویسیم.
;color a =clrRed
;color b = clrYellow
;color c = clrGreen
این رنگها را شما میتوانید از کتابخانه خود mql ببینید و کپی کنید.

دو: RGB
کافیه سه رنگ اصلی قرمز، سبز و آبی را داشته باشیم و به شکل زیر رنگ دلخواهمان را استفاده کنیم.
color candle =C’49,33,139′ ;
از برنامهای مثل (paint) رنگ قرمز، سبز و آبی دلخواهتان را بدست بیاورید.

Datetime -6
در این متغیر ما زمان را میریزیم و به شکل زیر میتوانیم استفاده کنیم.
datetime a=D’2021.01.08 13:08:30’ ;
نکته: اگر مثلا ساعت 13 بنویسیم خودش مقدار دقیقه و ثانیه را صفر میگذارد ولی تاریخ را نمیشود خالی گذاشت.
7- null
متغیر «null» به معنی خالی یا همان پوچ است. در اکثر زبانهای برنامه نویسی از null به عنوان ابراز عدم وجود مقدار برای یک متغیر یا موجودیت دیگر استفاده میشود. null به این معنی است که متغیر مربوطه به هیچ مقدار یا شیئی اشاره نمیکند.
در mql متغیرهای پیشفرضی وجود دارد که در زیر به 5 مورد آن میپردازیم.
Ask : نوع داده از نوع double است و آخرین قیمت فروشندگان را نشان میدهد. اگر شما بخواهید خریدی انجام بدهید باید از آخرین قیمتی که فروشندگان پیشنهاد میدهند استفاده کنید.
Bid : نوع داده از نوع double است و آخرین قیمت خریداران را نشان میدهد. شما میتوانید به قیمتی که خریداران پیشنهاد میدهند فروش انجام بدید.
Bars: نوع داده از نوع int است و تعداد بارها (کندلها) در چارت فعلی را نشان میدهد.
Digits: نوع داده از نوع double است و تعداد اعداد بعد از میز قیمت ارز جاری را نشان میدهد.
Point : مقدار پیپ یا پیپس (بستگی به بروکر دارد) را نشان میدهد.
دامنه یک متغیر در برنامه نویسی
معمولاً دامنه یک متغیر در برنامه نویسی با استفاده از یک بلوک (Block) مشخص میشود. یک بلوک میتواند در بعضی از زبانهای برنامه نویسی صراحتاً با استفاده از مشخص شدن شروع و پایان (Begin/End) آن مثلاً به وسیله آکولاد ({/}) مشخص شود. این در حالی است که در برخی زبانهای برنامه نویسی دیگر بلاکها به صورت ضمنی در نظر گرفته میشوند. برای مثال تابع در برنامه نویسی یک بلوک به حساب میآید.
متغیرها را میتوان به دو نوع محلی (Local Variable) و سراسری (Global Variable) تقسیم کرد. متغیرهای سراسری در قسمتی از برنامه تعریف میشوند که امکان استفاده از آنها در کل کدهای برنامه وجود داشته باشد. از طرف دیگر متغیر محلی که فقط در یک محدوده خاص از برنامه و در داخل یک بلوک قابلاستفاده است. متغیرهای سراسری در خارج از بلوک تعریف شدهاند، یعنی در محدوده سراسری متغیرها هستند. اما متغیرهای محلی در یک بلوک با داشتن محدوده شروع و پایان تعریف میشوند و فقط در آن بلوک معنی دارند و اگر خارج از بلوک مورد استفاده قرار بگیرند، خطا ایجاد میکنند.
طول عمر متغیر در برنامهنویسی
طول عمر متغیر به این معناست که متغیر تا چه زمانی در برنامه وجود دارد. بطور مثال متغیر سراسری در ابتدای برنامه و خارج از هر بلوکی تعریف شده است و تا انتهای برنامه فعال (Active) است و میتواند مورد استفاده قرار گیرد. اما متغیر محلی دقیقا پس از شروع بلوک و در داخل بلوک ایجاد میشود و تا زمانی فعال است که بلوک خاتمه یابد و خارج از بلوک بیمعنی و غیرفعال میشود.
جمع بندی: اگر شما در بازار فارکس فعالیت میکنید و دوست دارید استراتژی خود را تبدیل به اکسپرت کنید یا اندیکاتور مخصوص خودتان را بسازید، لازم است برنامهنویسی یاد بگیرید و ابتداییترین و پر استفادهترین جز از برنامهنویسی همین متغیرهایی است که در بالا به آنها اشاره کردیم.
برای ادامه آموزش برنامهنویسی میتوانید به مقاله آرایه مراجعه کنید و استفاده از متغیرها را مطالعه کنید.