- Предопределенные макроподстановки
- Математические константы
- Константы числовых типов
- Причины деинициализации
- Проверка указателя объекта
- Прочие константы
Прочие константы
Константа CLR_NONE служит для указания отсутствия цвета, то есть графический объект или графическая серия индикатора не будут отображены. Эта константа не вошла в список констант с наименованиями Web-цветов, но может применяться везде, где требуется указание цвета.
Константа INVALID_HANDLE может использоваться при проверке файловых хэндлов (см. функции FileOpen() и FileFindFirst()).
Константа |
Описание |
Значение |
---|---|---|
CHARTS_MAX |
Максимально возможное количество одновременно открытых графиков в терминале |
100 |
clrNONE |
Отсутствие цвета |
-1 |
EMPTY_VALUE |
Пустое значение в индикаторном буфере |
DBL_MAX |
INVALID_HANDLE |
Некорректный хэндл |
-1 |
IS_DEBUG_MODE |
Признак работы mq5-программы в режиме отладки |
в режиме отладки не равно нулю, в противном случае 0 |
IS_PROFILE_MODE |
Признак работы mq5-программы в режиме профилирования |
в режиме профилирования не равно нулю, в противном случае 0 |
NULL |
Ноль любого типа |
0 |
WHOLE_ARRAY |
Означает количество элементов, оставшееся до конца массива, то есть, будет обработан весь массив |
-1 |
WRONG_VALUE |
Константа может неявно приводиться к типу любого перечисления. |
-1 |
Константа EMPTY_VALUE обычно соответствует тем значениям индикаторов, которые не отрисовываются на графике. Например, для встроенного индикатора Standard Deviation с периодом 20 не выводится на график линия для первых в истории 19 баров. Если создать хэндл этого индикатора с помощью функции iStdDev() и скопировать в массив значения индикатора для этих баров через CopyBuffer(), то эти значения как раз и будут равны EMPTY_VALUE.
Можно самостоятельно указать в пользовательском индикаторе собственное пустое значение индикатора, при котором не должна производиться отрисовка на графике. Для этого используйте функция PlotIndexSetDouble() с модификатором PLOT_EMPTY_VALUE.
Константа NULL может быть присвоена переменной любого простого типа или указателю на объект структуры или класса. Присвоение NULL строковой переменной означает полную деинициализацию этой переменной.
Константа WRONG_VALUE предназначена для тех случаев, когда требуется вернуть значение перечисления, и это должно быть неверное значение. Например, нужно сообщить, что возвращаемое значение является значением этого перечисления. Приведем в качестве иллюстрации некую функцию CheckLineStyle(), которая возвращает стиль линии для объекта, указанного по имени. Если при запросе стиля функцией ObjectGetInteger() результатом будет true, то вернется значение перечисления ENUM_LINE_STYLE, иначе возвращается WRONG_VALUE.
void OnStart()
|
Константа WHOLE_ARRAY предназначена для функций, которые требуют указания количества элементов в обрабатываемых массивах:
Если требуется указать, что необходимо обработать все значения массива с указанной позиции и до конца, то достаточно указать значение WHOLE_ARRAY.
Константа IS_PROFILE_MODE позволяет изменить работу программы для корректного сбора информации в режиме профилирования. Профилирование позволяет замерить время выполнения отдельных фрагментов программы (обычно это функции), а также подсчитать количество таких вызовов. Для корректного получения информации о времени выполнения в режиме профилировки можно отключить вызовы функции Sleep() как в примере:
//--- Sleep может сильно повлиять(исказить) на результат профилировки
|
Значение константы IS_PROFILE_MODE задается компилятором в момент компиляции, и в обычном режиме выставляется равным нулю. При запуске программы в режиме профилирования производится специальная компиляция, и в этом случае вместо IS_PROFILE_MODE подставляется значение отличное от нуля.
Константа IS_DEBUG_MODE пригодится в тех случаях, когда необходимо немного изменить работу mql5-программы в режиме отладки. Например, в режиме отладки может потребоваться выводить дополнительную отладочную информацию в лог терминала или создавать вспомогательные графические объекты на графике.
Приведенный ниже пример создает объект Label и задает ее описание и цвет в зависимости от того, в каком режиме выполняется скрипт. Для того чтобы запустить скрипт в режиме отладки из MetaEditor, нажмите клавишу F5. Если запустить скрипта из окна навигатора в терминале, то цвет и текст объекта Label будут другими.
Пример:
//+------------------------------------------------------------------+
|
Методы шифрования данных
Для указания метода преобразования данных (шифрование и расчет хешей) в функциях CryptEncode() и CryptDecode() используется перечисление ENUM_CRYPT_METHOD.
Константа |
Описание |
---|---|
CRYPT_BASE64 |
Шифрование BASE64 (перекодировка) |
CRYPT_AES128 |
Шифрование AES с ключом 128 бит (16 байт) |
CRYPT_AES256 |
Шифрование AES с ключом 256 бит (32 байта) |
CRYPT_DES |
Шифрование DES с ключом 56 бит (7 байт) |
CRYPT_HASH_SHA1 |
Расчёт HASH SHA1 |
CRYPT_HASH_SHA256 |
Расчёт HASH SHA256 |
CRYPT_HASH_MD5 |
Расчёт HASH MD5 |
CRYPT_ARCH_ZIP |
ZIP архивирование |
Смотри также
DebugBreak, Информация о запущенной MQL5-программе, CryptEncode(), CryptDecode()