Предопределенные константы языка MQL5

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

Константа

Описание

Значение

CHARTS_MAX

Максимально возможное количество одновременно открытых графиков

100

clrNONE

Отсутствие цвета

-1 (0xFFFFFFFF)

EMPTY_VALUE

Пустое значение в индикаторном буфере

DBL_MAX

INVALID_HANDLE

Некорректный дескриптор

-1

NULL

Ноль любого типа

0

WHOLE_ARRAY

Означает количество элементов, оставшееся до конца массива, то есть, будет обработан весь массив

-1

WRONG_VALUE

Константа может неявно приводиться к типу любого перечисления

-1

Как было покаано в главе про файлы, константа INVALID_HANDLE может использоваться для проверки файловых дескрипторов на корректность.

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

Константа EMPTY_VALUE обычно присваивается тем элементам в индикаторных буферах, которые не должны отрисовываться на графике. Иными словами, данная константа обозначает пустое значение, используемое по умолчанию. Позднее мы расскажем, как его можно заменить для конкретного индикаторного буфера на другое значение, например, 0.

Константа WRONG_VALUE предназначена для тех случаев, когда требуется обозначить некорректное значение перечисления.

Кроме того существует 2 константы, которые имеют разные значения в зависимости от способа компиляции.

Константа

Описание

IS_DEBUG_MODE

Признак работы mq5-программы в режиме отладки: в режиме отладки не равно нулю, в противном случае 0

IS_PROFILE_MODE

Признак работы mq5-программы в режиме профилирования: в режиме профилирования не равно нулю, в противном случае 0

Константа IS_PROFILE_MODE позволяет изменить работу программы для корректного сбора информации в режиме профилирования. Профилирование позволяет замерить время выполнения отдельных фрагментов программы (функций и отдельных строк).

Значение константы IS_PROFILE_MODE задается компилятором в момент компиляции, и в обычном режиме выставляется равным 0. При запуске программы в режиме профилирования производится специальная компиляция, и в этом случае вместо IS_PROFILE_MODE подставляется значение отличное от 0.

Константа IS_DEBUG_MODE работает по похожему принципу: равна 0 в результате штатной компиляции и больше 0 после компиляции для отладки. Она пригодится в тех случаях, когда необходимо немного изменить работу MQL-программы для проверки: например, вывести дополнительную информацию в журнал или создавать вспомогательные графические объекты на графике.

Напомним, что препроцессор определяет похожие по смыслу константы _DEBUG и _RELEASE (см. Предопределенные константы препроцессора).

Более подробную информацию о режиме работы программы можно узнать во время выполнения с помощью функции MQLInfoInteger (см. Режимы работы терминала и программы). В частности, отладочная сборка программы может быть запущена и не под отладчиком.