Для того чтобы написать программу на языке 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» . ?