Что такое тип данных?
Любой язык программирования имеет свои названия для описания различных данных хранящихся в памяти.
Например, если в памяти хранится число от -2147483648 до 2147483647, в большинстве языков программирования оно будет называться "integer".
Переменные?
Переменные - это всего лишь имена, которые привязаны к кускам памяти, где храняться соответствующие данные.
Чтобы было легче понимать, что происходит, представьте себе, что память - это набор коробок различных размеров. Размер коробки - это эквивалент количества бит, требуемого для хранения данного типа.
- Чтобы использовать коробку для хранения данных, необходимо присвоить ей имя. Этот процесс называется объявлением.
- В процессе объявления Вы используете слово, чтобы объяснить компьютеру какого размера коробка Вам нужна. Это слово называется ключевым.
- Лучше дать имя коробке такое, чтобы потом было легко понять, что в ней лежит.
- Данные кладутся в коробку путём присвоения данных коробке.
- Если объявление и присвоение данных происходит в одной строчке, то такой процесс называется инициализацией.
Например, если мы дадим компьютеру следующую строчку кода:
Код:
int MyVaraible=0;
В этом примере:
int - это ключевоу слово
int - тип данных integer
int - объявление
MyVariable - имя переменной
=0 - инициализация
О переменных мы узнаем больше в следующих уроках.
В MQL4 присутствубт следующие типы данных:
- Integer (int)
- Boolean (bool)
- Character (Char)
- String (String)
- Floating-point number (double)
- Color (color)
- Datetime (datetime)
Integer - это число, которое может начинаться с + или - и состоит из цифр. Это число может лежать в пределах между -2147483648 и 2147483647.
MQL4 может представлять integer в десятичной или шестнадцатиричной системе.
Например, следующие числа - типа integer:
Код:
12, 3, 2134, 0, -230
0x0A, 0x12, 0X12, 0x2f, 0xA3, 0Xa3, 0X7C7
Например:
Код:
int intInteger = 0;
int intAnotherIntger = -100;
int intHexIntger=0x12;
2 - Boolean
Переменная типа Boolean может принимать лищь 2 значения: true или false (или их численные представления 1 и 0). И она занимает 1 бит (!) памяти.
В MQL4 true, TRUE, True равнозначны и false, FALSE, False - тоже.
Тип Boolean назван так в честь математика George Boole.
Ключевое слово bool используется для создания переменной типа Boolean.
Например:
Код:
bool I = true;
bool bFlag = 1;
bool bBool=FALSE;
3 - Character
Переменная типа Character - это один символ. Точнее,- это один из 256 алфавитных, циферных или специальных символов, заданных таблицой ASCII (American Standard Code for Information Interchange).
Символам присвоены числовые значения в соответствии с расположением в таблице.
Чтобы записать символ, нужно поместить его в одинарные кавычки:
Код:
'a' , '$' , 'Z'
Например:
Код:
int chrA = 'A';
int chrB = '$';
В таких случаях мы используем escape-последовательности. Это означает, что мы ставим слэш-назад (\) перед символом.
Например:
Код:
int chrA = '\\'; //просто слэш
int chrB = '\n'; //символ новой строки
Код:
carriage return \r
new line \n
horizontal tab \t
reverse slash \\
single quote \'
double quote \"
hexadecimal ASCII-code \xhh
4 - String
Переменная типа String - это набор символов, заключённых в двойные кавычки.
В памяти эти символы храняться в мыссиве - один за другим, в конце стоит терминирующий нуль NULL. Как и в любом массиве, нумерация начинается с нуля.
Символ NULL - это спец. символ (в таблице ASCII ему соответсвует число 0), используемый для обозначения конца строки.
На рис. 1 схематически изображено, как хранится в памяти строка "hello".

рис. 1 - Символы в массиве
MQL4 ограничивает размер строки 255 символами.
В строке можно использовать любые спец. символы, если перед ними Вы поставите \ .
Ключевое слово string используется для созания переменных типа String.
Например:
Код:
string str1 = "Hello world1, with you coders guru”;
string str2 = "Copyright © 2005, \"Forex-tsd forum\"."; //Notice the use of (") character.
string str3 = "1234567890";
5 - Floating-point number
Floating-point number - число с плавающей запятой - это действительное число.
Например: 3.0, -115.5, 15 и 0.0001.
Число такого типа может принимать значения от 2.2e-308 до 1.8e308.
Ключевое слово double используется для создания переменных типа Floating-point number.
Например:
Код:
double dblNumber1 = 1000000000000000;
double dblNumber3 = 1/4;
double dblNumber3 = 5.75;
Тип данных Color - это специальный тип данных MQL4, которым задаются цвета различных объектов на Вашем графике в терминале MetaTrader.
Переменную типа Color можно задать тремя способами:
1 - Используя название цвета: Для часто используемых цветов (из набора Web-цветов) можно прямо присваивать переменной имя требуемого цвета.
2 - Используя символьное соответствие: Надо написать ключевой символ ( C ), и после него заключённые в одинарные кавычки (') должны идти координаты требуемого цвета в трёхмерном пространстве RGB (красный, зелёный, синий). Эти координаты должны быть в пределах от 0 до 255. Их можно задавать в десятичной или шестнадцатиричной системе.
3 - Используя числовое значение: Каждому цвету из набоора Web-цветов поставлен в соответствии свой код, который можно записывать как десятичной, так и в шестнадцатиричной системе. В шестнадцатиричной системе код записывается проще всего: 0xBBGGRR (BB - синий, GG - зелёный, RR - красный).
Например:
Код:
// символьное соответствие
C'128,128,128' // gray
C'0x00,0x00,0xFF' // blue
// название
Red
Yellow
Black
// числовое значение
0xFFFFFF // white
16777215 // white
0x008000 // green
32768 // green
Например:
Код:
color clr1= Red;
color clr1= C'128,128,128';
color clr1=32768;

7 - Datetime
Тип данных Datetime - это специальный тип данных MQL4, который используется для хранения даты и времени. Чтобы задать значение переменной типа Datetime, надо написать ключевой символ (D), и после него заключённые в одинарные кавычки (') должна идти требуемая дата в формате год, месяц, день, час, минута, секунда. Переменные этого типа данных могут располагаться внутри временного диапазона от Jan 1, 1970 по Dec 31, 2037.
Например:
Код:
D'2008.01.01 00:00' // Новый год
D'1980.07.19 12:30:27'
D'19.07.1980 12:30:27'
D'19.07.1980 12' //равносильно: D'1980.07.19 12:00:00'
D'01.01.2004' //равносильно: D'01.01.2004 00:00:00'
Например:
Код:
datetime dtMyBirthDay= D'1972.10.19 12:00:00';
datetime dt1= D'2005.10.22 04:30:00';