Сегодня мы продолжим рассмотрение переменных, а именно их объявление и инициализацию в MQL. Чтобы программа не путала типы переменных, их нужно задавать и объявлять в начале кода. Подробнее, в сегодняшней статье.
Предыдущие мои статьи из рубрики:
- Язык программирования MQL (вводная статья).
- Язык программирования MQL . Часть I.
- Язык программирования MQL. Часть 2 – Типы данных.
- Язык программирования MQL. Часть 3 – Переменные и константы.
Объявление — это обозначение переменной в программе, а также присвоение ей определенного типа.
Инициализация — это присвоение значения переменной. Операция выполняется после объявления типа.
Если не присваивать тип и не произвести инициализации, в коде переменной будет присвоено значение 0. А если переменная строкового типа, то она отобразиться пустой строкой в коде.
Важно заметить, что в коде тип и инициализации переменной происходит один раз в самом начале. Если объявленная переменная и дальше встречается в коде, не обязательно снова указывать её тип. Также при работе робота может быть присвоено новое значение переменной, но название и тип остаются прежними (по аналогии с константами).
Пример указания (объявления) переменной в коде, отдельной строкой:
double Var_3.3; // Переменная указана отдельной строкой
Тут мы видим, что Var_3.3 это объявление переменной, а double её тип (тип переменных, имеющих дробные части в числах).
Также можно указать группу переменных одного типа, double, datetime и другие, одновременно в одной строке кода. Пример:
double Var_3.3 , List , Rol // Переменные одного типа в одной строке кода
В данной строке переменные Var_3.3 , List , Rol имеют один тип данных double и помещены в одну строку кода, следовательно, программа будет их опознавать как переменные, имеющие числа с дробной частью.
Теперь о инициализации переменной в операторе. Пример в коде ниже:
datetime Omega = D`25.08.2019 10:00:50`; // Переменная в операторе
Такая строка кода будет инициализироватся программой, как переменная типа указания времени с датой 25.08.2019, как написано выше. Достаточно один раз указать тип переменной (datetime) и, далее программа автоматически будет её распознавать.
В ходе исполнения кода программы (работы торгового робота или скрипта) она может изменить значение переменной («25,08,2019»), но тип datetime будет неизменным и запомниться программой для дальнейшей инициализации.
Мы назвали нашу переменную «Omega», но название можно присвоить абсолютно любое – на функционал в коде или назначение типа переменной это никак не повлияет. Технически можно назвать все переменные в программе «Omega», а дополнительную информацию обозначить в комментарии, но при написании более-менее большого кода это может вызвать путаницу.
Теперь подробнее рассмотрим операции, описанные выше в коде программы.
В данном примере мы используем несколько переменных типа datetime одновременно (как мы помним это разрешается в MQL):
Если множество переменных указывается в одной строке вместе, то мы разделяем их запятой и знаком “;” заканчиваем строчку.
Как видно из этой картинки, мы в начале указали тип переменной, а потом этого не делали. Программа сама запоминает тип и, в дальнейшем, его распознает.
Вот так это выглядит в коде и рамках оператора (понятие оператора мы рассмотрим чуть позже):
Мы рассмотрели примеры объявления и инициализации переменных в MQL4. Спасибо, что дочитали до конца. Буду рад обратной связи в комментариях!