home

Синтаксис MQL4

Здравствуйте, уважаемые читатели журнала FOREX Review! В предыдущей статье из цикла "Школа MQL4" мы уже говорили о том, что тот, кто умеет программировать на C или C++, знает про MQL4 довольно много. Связано это с тем, что синтаксис MQL4 и синтаксис C очень похожи.

Согласно Википедии, синтаксис — это  сторона языка программирования, описывающая структуру программ как наборов символов (обычно говорят — безотносительно к содержанию).

Таким образом, изучая синтаксис языка, мы знакомимся с его грамматикой — иными словами, правилами написания. Правила написания состоят из::

  • Форматирования
  • Комментариев
  • Идентификаторов
  • Зарезервированных слов

Рассмотрим подробнее каждый пункт.

1. Форматирование текста

При написании кода, чтобы сделать наш код читаемым и удобным для просмотра,  мы можем использовать абсолютно любое количество пробельных символов: пустых строк, табуляций, пробелов.

Приведем пример совершенно равнозначных в MQL4 кодов:

double  MacdCurrent, MacdPrevious, SignalCurrent;
double  

MacdCurrent,

MacdPrevious, 

SignalCurrent;
double						  MacdCurrent,	
		   MacdPrevious,			 SignalCurrent;

Как мы видим, первый вариант кода проще для восприятия и лучше читается.

Но у любого правила есть исключения:

1. Запрещается использование символа переноса строки после знака решётки:

К примеру, в этой строке допущена ошибка:

#property 

copyright "Copyright © 2004, MetaQuotes Software Corp."

А вот эта строка — верная:

#property copyright "Copyright © 2004, MetaQuotes Software Corp."

2. Запрещается использование пробельных символов внутри констант, ключевых слов и идентификаторов.

К примеру, следующая строка — верна:

extern int MA_Period = 13;

поскольку "extern" и "int" – это ключевые слова, "MA_Period" – идентификатор, "13" — константа.


Эту тему мы обсудим подробнее в следующем уроке.

Эти строки — неверные:

extern int MA_Period=1

3;
extern int MA_Period=1		   3;
ex

tern int MA_Period=13;

 

2. Комментарии

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

Комментарии, которые вы написали, компилятор игнорирует, но вот код становится более понятным.

Например, программист, написавший летом код, зимой уже может испытать некоторые трудности при его прочтении, хотя и является создателем кода.  Без использования комментариев иногда бывает действительно непросто понять эти странные символы. J


В языке MQL4 так же, как и в C/C++, используется 2 типа комментариев:

Однострочные комментарии

Такие комментарии начинаются символами // и заканчиваются переходом на новую строку.

К примеру:

// Это комментарий
extern int MA_Period = 13; // Это ещё один комментарий

 

Многострочные комментарии

Такие комментарии начинаются с символов /* и заканчиваются символами */

К примеру:

/* Это

многострочный 

комментарий */

Однострочные комментарии можно вкладывать внутрь многострочных:

/* Это

многострочный  // А это ещё один комментарий 

комментарий */

Приведем ещё один пример:

extern int /*HELLO! I’m a comment*/ MA_Period = 13;

А так делать нельзя:

extern int // test MA_Period = 13;

То есть многострочные комментарии нельзя вкладывать друг в друга.

 

3. Идентификаторы

Идентификатором называется имя, которое Вы присвоили своей переменной, константе или функции.

К примеру:

extern int MA_Period = 13;

где MA_Period – это идентификатор.

Существуют правила и ограничения в выборе идентификаторов. Вот они:

  • Длина идентификатора должна составлять не более 31 символа.
  • Идентификатор должен начинаться с буквы (большой или маленькой) либо символа _.
  • Идентификаторами не могут быть зарезервированные слова, о которых мы узнаем далее.

Идентификаторы чувствительны к регистру, то есть MA_Period и ma_Period — разные идентификаторы.

Рассмотрим примеры:

Name1					верно

_Name1				  верно
 
1Name					неверно

~Name1				  неверно

N~ame1				  неверно

i_love_my_country_and_my_country_loves_all_the_world	 

							  неверно

Color					  верно

color					   неверно (зарезервированное слово)

 

4. Зарезервированные слова

Это специальные "слова", которые используются в языке программирования для определённых целей.

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

Приведем список зарезервированных слов:

Зарезервированные слова

К примеру, эти строки кода — неверные:

extern int datetime = 13;

int extern = 20;

double continue = 0;

До встречи на следующем уроке!

Журнал FX Review

Правила комментирования