Тип данных определяет множество значений, набор операций, которые можно применять к таким значениям и, возможно, способ реализации хранения значений и выполнения операций. Любые данные, которыми оперируют программы, относятся к определённым типам.
Например, если в памяти хранится целое число от -2147483648 до 2147483647, то для него в языке программирования MQL предусмотрен тип «int«.
Что такое «переменная»?
Переменные — это какие-то имена, которые привязаны к кускам памяти, где хранятся соответствующие данные.
Когда мы создаём переменную, мы говорим компьютеру, что мы хотим, чтобы он присвоил часть памяти определённого размера (в битах) нашей переменной. Поскольку хранение числа, буквы или большого числа занимает разный объём памяти, компьютер спросит, что Вы хотите хранить в этой памяти, и каков размер данных. Для этого и нужны типы данных.
Например, если мы дадим компьютеру следующую строчку кода:
int TakeProfit = 100;
то мы говорим компьютеру, что хотим, чтобы он выделил блок памяти длиной 4 байта под нашу переменную «TakeProfit ».
В этом примере:
int — тип данных integer
int — объявление
TakeProfit — имя переменной
= 100 — инициализация, то есть присвоение переменной TakeProfit значения 100.
Итак, int — это тип данных, предназначенный для операций с целыми числами.
Тип bool(булевый) предназначен для хранения логических значений true (истина) или false (ложь), числовое представление которых 1 или 0 соответственно.
В памяти представляется как целое число размером 1 байт. В логических выражениях допустимо использовать вместо типа bool другие целые или вещественные типы или выражения этих типов, компилятор не выдаст ошибки. В таком случае значение ноль будет интерпретировано как false, а все остальные значения как true.
Пример:
bool MyVar = false;
Тип double — существует для хранения дробных значений. Он может принимать как положительные, так и отрицательные значения.
Пример:
double Lots = 0.1;
Мы объявили переменную «Lots», указали, что у неё тип данных double, то есть дробный, и тут же присвоили ей значение 0.1.
Следующий тип данных — string. Этот тип данных предназначен для работы со строками.
Пример:
string ExpertName = "Мой торговый робот";
Этим самым мы объявили переменную «ExpertName», указали, что у неё тип данных string, то есть, она символьная, и присвоили ей уже текстовое значение, которое пишется в кавычках «Мой торговый робот».
Тип datetime — это значение даты и времени.
Значения этого типа могут использоваться в программах для анализа момента начала или окончания каких-либо событий, в том числе выхода важных новостей, начала/конца рабочего дня и пр. Константы даты и времени могут быть представлены в виде литеральной строки, которая состоит из 6 частей, представляющих числовое значение года, месяца, даты (либо даты, месяца, года), часа, минуты и секунды.
Константа обрамляется одинарными кавычками и начинается с символа D. Допускается использование усечённого значения: либо без даты, либо без времени, либо пустое значение. Диапазон изменения значений: от 1 января 1970 года до 31 декабря 2037 года. В памяти компьютера значения констант и переменных типа datetime занимают 4 байта. Значение представляет собой количество секунд, прошедших с 00:00 1 января 1970 года.
Пример использования в программе переменной типа datetime:
datetime NewYear = D'2017.01.01 00:00'; // Новый Год datetime aNewYear = D'01.01.2017'; // Новый Год datetime SomeTime = D'2017.05.12 16:30:45'; // 12 мая 2017г. 16 час.30 мин.45 сек. datetime NewTime = D'12.05.2017 16:30:45'; // 12 мая 2017г. 16 час.30 мин.45 сек. datetime Compile = D''; // аналогично D'[дата компиляции] 00:00:00'
Тип данных color. Это цвет, то есть, если мы напишем так:
color MyColor = clrRed;
То, этим самым переменной MyColor мы назначим красный цвет, и далее эту информацию мы сможем использовать в своих советниках (например, указывать цвет текста, линий и так далее).
Переменную типа color можно задать тремя способами:
- Используя название цвета: Для часто используемых цветов (из набора Web-цветов) можно прямо присваивать переменной имя требуемого цвета.
- Используя символьное соответствие: Надо написать ключевой символ ( C ), и после него заключённые в одинарные кавычки (‘) должны идти координаты требуемого цвета в трёхмерном пространстве RGB (красный, зелёный, синий). Эти координаты должны быть в пределах от 0 до 255. Их можно задавать в десятичной или шестнадцатиричной системе.
- Используя числовое значение: Каждому цвету из набоора Web-цветов поставлен в соответствии свой код, который можно записывать как десятичной, так и в шестнадцатиричной системе. В шестнадцатиричной системе код записывается проще всего: 0xBBGGRR (BB — синий, GG — зелёный, RR — красный).
Пример:
color clr1= Red; color clr1= C'128,128,128'; color clr1=32768;
Пожалуй, на этом по основным типам данных можно закончить. Как правило этих знаний вполне хватает в большинстве случаев при разработке скриптов и советников.