Для того чтобы написать программу на языке 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 | у += x | y = y + x |
-= | Уменьшение значения переменной y на x | y -= x | y = y — x |
*= | Умножение значения переменной y на x | y *= x | y = y * x |
/= | Деление значения переменной y на x | y /= x | y = y / x |
%= | Остаток от деления значения переменной y на x | y %= x | y = y % x |
Операции отношения в MQL4:
К символам операций отношения относятся следующие:
Символ | Операция | Пример |
---|---|---|
== | Истина, если x равно y | x == y |
!= | Истина, если x не равно y | x != y |
< | Истина, если x меньше y | x < y |
> | Истина, если x больше y | x > y |
<= | Истина, если x меньше или равно y | x <= y |
>= | Истина, если x больше или равно y | x >= y |
Логические операции в MQL4:
К символам логических операций относятся следующие:
Символ | Операция | Пример | Пояснения |
---|---|---|---|
! | НЕ (логическое отрицание) | ! х | ИСТИНА(1), если значение операнда ЛОЖЬ(0). |
|| | ИЛИ (логическое ИЛИ) | x < 5 || x > 7 | ИСТИНА(1), если истинно любое из значений |
&& | И (логическое И) | x == 3 && y < 5 | ИСТИНА(1), если истинны всезначения |
Добрый день! Спасибо за ценный для новичков труд. Рубрика Первые шаги обновляться больше не будет?
Олег
Добрый день! В рубрике Первые шаги я описывал моменты которых лично мне не хватало в справке по MQL. Если Вы не нашли чего то в справке — спрашивайте. Я добавлю.
Не меняя текст программы, я хочу брать
коэффициенты из внешнего файла.
Существует ли массив?
Можно ли организовать чтение в массив из файла?
Посмотрите функции: FileOpen, FileWriteArray, FileReadArray, FileClose
Спасибо Вам за то что вы делаете. Вся информация даётся в разжёванном, легко воспринимаемом виде. И ещё раз спасибо!
Спасибо большое за уроки и пояснения. Скажите, пожалуйста, а можно в MQL4 сложить несколько значений, например тысячу значений, которые не идут подряд, не перечисляя их все. То есть значения могут равняться некоторым другим значениям (повторяться), иметь нули и т.д. Возможно это сделать просто, например как в Excel: сумм(А1:А1000)?
|| ИЛИ (логическое ИЛИ) x 7 ИСТИНА(1), если истинно любое из значений . нет ли здесь опечатки ? вместо цифры «5» должно быть большее «7» , либо вместо «7» меньшее «5» . ?