Урок 3. Основы программирования MQL4. Часть 1 | Automated Trading Systems
Как ни один товар не обходится без упаковки, так и программирование не обходится без переменных, в которых хранятся какие-либо значения. На этом уроке вы узнаете какие типы данных могут в себе хранить переменные, как их объявлять и как использовать в программе.

Урок 3. Основы программирования MQL4. Часть 1

Как я уже писал в конце прошлого урока, если вы уверены, что у вас уже есть опыт в программировании и алгоритмизации – вы можете пропустить этот урок и перейти сразу к написанию своего первого скрипта на языке MQL4. Но если же вы сомневаетесь – рекомендую вам не лениться и изучать весь материал.
Сразу хочу сказать – я не пытался написать учебник по программированию, не претендую за исключительную правильность всех трактовок и т.п. Моя цель – объяснить основы максимально простым языком простому обывателю. Поэтому многие сложности будут опущены.

Итак, кто-то нас покинул, а кто-то и остался, с теми мы начинаем. В качестве базы урока я возьму работу скрипта в терминале MT4.

Пользователь активировал скрипт. Что при этом происходит и с чего начинается его работа?
У скрипта есть основная функция:

void OnStart() 
  {
      /*код скрипта*/ 
  }

Именно она и запускается, начиная выполнять «код скрипта». Как при этом понять саму запись выше? Объясняю: void – тип данных, который может вернуть функция. То есть, делая какую-то работу, в конце своего выполнения, функция может что-то вернуть туда, откуда она вызывалась. В данном случае void – переводится как «нет типа». То есть эта функция ничего никуда не возвращает, она просто выполняется, после чего выключается, а с ней отключается и скрипт.
OnStart – название функции. Те функции, которые пишет программист, он может называть как угодно, а названия тех, которые предустановлены в языке, нужно знать. В скобках, которые указаны после названия функции обычно указываются входные параметры, которые нужно использовать в теле функции. Если скобки пустые – в функцию ничего не передается, она работает только с теми данными, которые ей доступны. В фигурных скобках располагается тело функции. Так как функция OnStart – базовая функция скрипта, то ее тело равно коду скрипта. В теле функции можно писать какие угодно команды, то есть здесь программист пишет то, что хочет чтобы делала данная функция.

Итак, мы разобрались: скрипт включается, начинает выполняться код функции OnStart от начала и идет до самого конца функции, после чего скрипт выгружается и прекращает свою работу.
Из чего может состоять код функции OnStart?

  • Работа с переменными
  • Вызов внешних функций
  • Условия
  • Циклы

Далее по порядку.

Работа с переменными

Прежде чем ввести определения понятия «Переменная», хотелось бы рассказать об основных часто используемых типах данных в языке MQL4.

  int      variable;     // целое число (например 1, 80, 451 и т.д.)
  double   variable;     // дробное число (0.34, 12.45..)
  bool     variable;     // логический тип данных, принимает значение либо true (верно), либо false (неверно)
  string   variable;     // строка, включает в себя любые символы («12qwerty20», «string»..)
  datetime variable;     // дата и время в строго регламентированном формате "yyyy.mm.dd hh:mi"
  color    variable;     // цвет
  void     MyFunction(); // используется только для внешних функций и обозначает "нет типа". То есть функции 
                         // с таким типом данных не возвращают каких-либо значений 

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

Итак, что же такое переменная? Это «ячейка» в памяти компьютера, которая хранит в себе какую-либо информацию. Какую – определяется типом переменной, который указывается в момент ее инициализации. Давайте я создам переменную и на примере объясню вам как все работает:

void OnStart()
  {
      string MyVariable;   //Инициализация переменной MyVariable, теперь её можно использовать в коде
      MyVariable = "Text"; //Присвоили переменной MyVariable значение Text
  }

Как видите, на первом шаге мы инициализировали переменную с именем MyVariable и с типом данных string. Теперь эту переменную можно использовать в коде. Но не везде, а только в той функции, внутри которой эта переменная объявлена. После инициализации (или объявления) мы можем использовать переменную как угодно – присваивать ей различные значения либо считывать ее значение в любом месте кода (но только внутри функции, в которой она объявлена, т.е. только внутри OnStart). Такая переменная (объявленная внутри функции) называется локальной.

Если же объявить переменную за пределами всех функций, ее можно будет использовать в любой функции, т.е. в любом месте программы. Такая переменная называется глобальной. Но не стоит путать такие переменные с глобальными переменными, которые задаются через встроенную функцию MQL4 – GlobalVariableSet() и т.п. О таких переменных мы поговорим значительно позже.

С переменными в целом разобрались, идем дальше.

Но.. на этом пока все. Во второй части урока поговорим о работе и вызове внешних функций. Оставайтесь с нами:)

Добавить комментарий

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