home

Типы данных в MQL4

Что такое тип данных?

В любом языке программирования имеются свои названия для описания хранящихся в памяти разного рода данных.

Допустим, если в памяти хранится число от -2147483648 до 2147483647, то в большинстве языков программирования оно называется "integer".

 

Что такое переменные?

Переменные — это имена, привязанные к кускам памяти, в которых хранятся соответствующие данные.

Образно можно представить память в виде набора коробок различного размера. Размеры коробок – это эквиваленты количества бит, которое требуется для хранения.

Чтобы было легче понимать, что происходит, представьте себе, что память — это набор коробок различных размеров. Размер коробки — это эквивалент количества бит, требуемого для хранения данного типа.

  • Для того чтобы хранить в коробке данные, нужно присвоить ей имя. Этот процесс в программировании называется объявление.
  • Чтобы объяснить компьютеру, коробка какого размера нам нужна, в процессе объявления мы используем слово, которое называется ключевым.
  • Лучше назвать коробку таким именем, чтобы в дальнейшем можно было без труда понять, что же в ней лежит.
  • Мы кладем данные в коробку путём присвоения данных коробке.
  • Если объявление и присвоение данных происходит в одной строчке, такой процесс называют инициализацией.

При создании переменной мы говорим компьютеру, что хотим присвоить часть памяти определённого размера (в битах) нашей переменной. Хранение букв, больших и маленьких чисел занимает разный объем памяти. Поэтому компьютер спросит нас о том, что мы хотим хранить в памяти, и каков размер этих данных. Для этой цели и нужны типы данных.

К примеру, если дать компьютеру следующую строку кода:

int  MyVaraible = 0;

то мы говорим ему, что хотим, чтобы он выделил блок памяти длиной 4 байта под нашу переменную "MyVariable".

В рассмотренном примере:

int — это ключевое слово

int — тип данных integer

int — объявление

MyVariable — имя переменной

= 0 — инициализация

В следующих уроках мы продолжим наш разговор о переменных.

 

Типы данных в MQL4

В MQL4 имеются 7 типов данных:

  • Integer (int)
  • Boolean (bool)
  • Character (Char)
  • String (String)
  • Floating-point number (double)
  • Color (color)
  • Datetime (datetime)


1 — Integer

Integer — это число, которое может начинаться с + или — и состоит из цифр. Оно может лежать в пределах между числами 2147483648 и 2147483647.

MQL4 может представлять integer в десятичной или шестнадцатиричной системе.

Примеры чисел типа integer:

12, 3, 2134, 0, -230
0x0A, 0x12, 0X12, 0x2f, 0xA3, 0Xa3, 0X7C7

Чтобы создать переменную типа integet используют Ключевое слово int.

Для примера:

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).

Для создания переменной типа Boolean используют ключевое слово bool.

Пример:

bool I = true;
bool bFlag = 1; bool bBool=FALSE;


3 — Character

Переменная типа Character – представляет собой один символ. Точнее — один из 256 алфавитных, циферных или специальных символов, которые заданы таблицей ASCII (American Standard Code for Information Interchange).
В соответствии с расположением в таблице символам присвоены числовые значения.
Для того чтобы записать символ, нужно поместить его в одинарные кавычки:

'a' , '$' , 'Z'

Для создания переменной типа Character используется ключевое слово int.

Пример:

int chrA = 'A';
int chrB = '$';

Некоторые символы (так называемые спец.символы) не могут напрямую находиться внутри одинарных кавычек, потому что у них зарезервированные значения в языке MQL4.

В таких случаях мы используем escape-последовательности. Это означает, что мы ставим слэш-назад (\) перед символом.

Пример:

int chrA = '\\';  // просто слэш
int chrB = '\n'; // символ новой строки

Ниже приведен список escape-последовательностей MQL4:

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".

Символы в массивеСимволы в массиве


В 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 — Floatingpoint number

Floating-point number — число с плавающей запятой — это действительное число, к примеру: 3.0, -115.5, 15 и 0.0001.

Число такого типа может принимать значения от 2.2e-308 до 1.8e308.

Для создания переменных типа Floating-point number используют ключевое слово double.

Пример:

double dblNumber1 = 1000000000000000;
double dblNumber3 = 1/4; double dblNumber3 = 5.75;


6 — Color

Тип данных 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 

Для создания переменной типа Color используют ключевое слово color.

Пример:

color clr1= Red;
color clr1= C'128,128,128'; color clr1=32768;

Цветовая схема MQL4


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 используют ключевое слово datetime.

Пример:

datetime dtMyBirthDay= D'1972.10.19 12:00:00'; 
datetime dt1= D'2005.10.22 04:30:00';

На сегодня это все. О синтаксисе языка MQL4 мы говорили на прошлом уроке.

до встречи на следующем уроке!

Журнал FX Review