Урок №4 “Константы, переменные, типы данных в MQL”

Для того чтобы написать программу на языке MQL — необходимо знать как в ней хранятся данные, ведь программа должна их где-то хранить.

Константа в MQL — это составная часть программы; объект, имеющий значение. Понятие «константа» в программе аналогично тому же понятию, используемому в математических уравнениях. Это — неизменная величина.

Встретив в программе 2+2 мы понимаем что происходит сложение двух чисел. Так как их в процессе работы программы изменить нельзя, то они являются константами. Встретив другой пример 2+x уже нельзя сказать однозначно: с чем складывается число (с константой или переменной)? Дело в том, что константам можно присвоить имя и использовать ее не по значению, а по имени. Для присвоения имени константе используется #define.

Например:

#define x 2
2+x

Переменная в MQL — это составная часть программы, имеющая значение и название. Понятие переменной в языке MQL4 аналогично понятию переменной, принятому в математике.

Переменные очень похожи на константы, но их значение можно изменять. Например сложим 2+2 и сохраним значение в переменной:

x=2+2

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

В языке MQL4 различают следующие типы данных:

int — целые числа (например: 1).
double — действительные числа (например: 0.1).
bool — значения логического типа (например: true).
string — значения строкового типа (например: «Super Expert»).
color — значения цветового типа (например: White).
datetime — значение даты и времени (например: 01.01.2010 12:00).

Наш пример для сложения чисел приобретет свой окончательный вид:

int x=2+2;

Мы сложили два числа (константы) и поместили результат в переменную x целого типа.

Какие еще операции существуют в языке MQL4?

В языке MQL4 различают следующие виды операций:

• арифметические операции;
• операции присваивания;
• операции отношения;
• логические операции;

Арифметические операции в MQL4:

К символам арифметических операций относятся следующие:

СимволОперацияПримерАналог
+Сумма величинx + 2
Вычитание величин или изменение знакаx — 3, y = — y
*Умножение величин3 * x
/Частное от деленияx / 5
%Остаток от деленияminutes = time % 60
++Добавление 1 к значению переменнойy++y = y + 1
Вычитание 1 из значения переменнойy—y = y — 1

Операции присваивания в MQL4:

К символам операций присваивания относятся следующие:

СимволОперацияПримерАналог
=Присваивание значения x переменной yу = x
+=Увеличение значения переменной у на xу += xy = y + x
-=Уменьшение значения переменной y на xy -= xy = y — x
*=Умножение значения переменной y на xy *= xy = y * x
/=Деление значения переменной y на xy /= xy = y / x
%=Остаток от деления значения переменной y на xy %= xy = y % x

Операции отношения в MQL4:

К символам операций отношения относятся следующие:

СимволОперацияПример
==Истина, если x равно yx == y
!=Истина, если x не равно yx != y
<Истина, если x меньше yx < y
>Истина, если x больше yx > y
<=Истина, если x меньше или равно yx <= y
>=Истина, если x больше или равно yx >= y

Логические операции в MQL4:

К символам логических операций относятся следующие:

СимволОперацияПримерПояснения
!НЕ (логическое отрицание)! хИСТИНА(1), если значение операнда ЛОЖЬ(0).
||ИЛИ (логическое ИЛИ)x < 5 || x > 7ИСТИНА(1), если истинно любое из значений
&&И (логическое И)x == 3 && y < 5ИСТИНА(1), если истинны всезначения

Похожие статьи:

7 комментариев

  1. Добрый день! Спасибо за ценный для новичков труд. Рубрика Первые шаги обновляться больше не будет?

  2. Олег
    Добрый день! В рубрике Первые шаги я описывал моменты которых лично мне не хватало в справке по MQL. Если Вы не нашли чего то в справке — спрашивайте. Я добавлю.

  3. Не меняя текст программы, я хочу брать
    коэффициенты из внешнего файла.
    Существует ли массив?
    Можно ли организовать чтение в массив из файла?

  4. Спасибо Вам за то что вы делаете. Вся информация даётся в разжёванном, легко воспринимаемом виде. И ещё раз спасибо!

  5. Спасибо большое за уроки и пояснения. Скажите, пожалуйста, а можно в MQL4 сложить несколько значений, например тысячу значений, которые не идут подряд, не перечисляя их все. То есть значения могут равняться некоторым другим значениям (повторяться), иметь нули и т.д. Возможно это сделать просто, например как в Excel: сумм(А1:А1000)?

  6. || ИЛИ (логическое ИЛИ) x 7 ИСТИНА(1), если истинно любое из значений . нет ли здесь опечатки ? вместо цифры «5» должно быть большее «7» , либо вместо «7» меньшее «5» . ?

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *