Other constants
其他常量
特殊常量用于指示参数和变量状态。它可以是以下值之一:
| 常量 | 描述 | 值 |
|---|---|---|
| NULL | 对于任何类型都是零。也表示字符串的空状态 | 0 |
| EMPTY | 表示参数的空状态 | -1 |
| EMPTY_VALUE | 指示指示器缓冲区中的空值。自定义指示器的默认空值 | 2147483647 (0x7FFFFFFF) |
| CLR_NONE, clrNONE | 颜色的缺失。表示颜色的空状态 | -1 |
| CHARTS_MAX | 终端中同时打开的最大图表数量 | 100 |
| INVALID_HANDLE | 不正确的句柄 | -1 |
| IS_DEBUG_MODE | 标志,表明mql4程序在调试模式下运行 | 在调试模式下为非零值,否则为零 |
| IS_PROFILE_MODE | 标志,表明mql4程序在分析模式下运行 | 在分析模式下为非零值,否则为零 |
| WHOLE_ARRAY | 用于数组函数。表示将处理数组中的所有元素。意味着直到数组末尾为止剩余的项目数量,即整个数组将被处理 | 0 |
| WRONG_VALUE | 该常量可以隐式地转换为任何枚举类型 | -1 |
[NULL]常量可以分配给任何简单类型的变量或对象结构或类指针。字符串变量的NULL赋值表示该变量的完全初始化。
EMPTY_VALUE常量通常对应于图表中未显示的指示器值。例如,对于内置的指示器“标准差”,其周期为20,历史中前19条线的图形不会显示在图表中。
CLR_NONE常量用于表示颜色的缺失,意味着指示器的图形对象或图形系列将不会被绘制。该常量未被纳入Web-color常量列表,但可以在需要颜色参数的任何地方使用。
INVALID_HANDLE常量可用于检查文件句柄(参见FileOpen()和FileFindFirst())。
WRONG_VALUE常量用于需要返回枚举值的情形,且这必须是一个错误的值。例如,当我们需要通知返回值来自该枚举时。以CheckLineStyle()函数为例,该函数返回由名称指定的对象的线样式。如果通过ObjectGetInteger()进行样式检查结果为真,则返回ENUM_LINE_STYLE中的值;否则返回WRONG_VALUE。
[CODE_BLOCK_001]
WHOLE_ARRAY常量用于需要指定处理数组中元素数量的函数:
- ArrayCopy();
- ArrayMinimum();
- ArrayMaximum();
- FileReadArray();
- FileWriteArray()。 如果您希望指定从指定位置到末尾的所有数组值都必须被处理,只需指定WHOLE_ARRAY值即可。 IS_PROFILE_MODE常量允许在分析模式下改变程序的运行方式,以便正确收集数据。分析允许测量程序各个片段(通常包括函数)的执行时间,以及计算此类调用的次数。可以禁用Sleep()函数的调用,以在分析模式下确定执行时间,如以下示例所示:
[CODE_BLOCK_002]
IS_PROFILE_MODE常量值在编译时由编译器设置,而在常规模式下则设置为零。当在分析模式下启动程序时,会进行特殊编译,IS_PROFILE_MODE会被替换为零值。
IS_DEBUG_MODE常量在需要稍微改变mql4程序在调试模式下的运行方式时非常有用。例如,在调试模式下,可能需要显示额外的调试信息到终端日志中或在图表中创建额外的图形对象。
以下示例创建了一个Label对象,并根据正在运行的脚本模式设置其描述和颜色。要在MetaEditor中调试模式下运行脚本,请按F5。如果您从终端的浏览器窗口运行脚本,则Label对象的颜色和文本将有所不同。
示例:
[CODE_BLOCK_003]
加密方法
ENUM_CRYPT_METHOD枚举用于指定在CryptEncode()和CryptDecode()函数中使用的数据转换方法。
ENUM_CRYPT_METHOD
| 常量 | 描述 |
|---|---|
| CRYPT_BASE64 | BASE64 |
| CRYPT_AES128 | 使用128位密钥的AES加密(16字节) |
| CRYPT_AES256 | 使用256位密钥的AES加密(32字节) |
| CRYPT_DES | 使用56位密钥的DES加密(7字节) |
| CRYPT_HASH_SHA1 | SHA1哈希计算 |
| CRYPT_HASH_SHA256 | SHA256哈希计算 |
| CRYPT_HASH_MD5 | MD5哈希计算 |
| CRYPT_ARCH_ZIP | ZIP归档 |