运行MQL5程序属性
运行MQL程序属性
为了获取当前运行的MQL5程序的信息,可以使用ENUM_MQL_INFO_INTEGER 和 ENUM_MQL_INFO_STRING常量。
ENUM_MQL_INFO_INTEGER
| 标识符 | 描述 | 类型 |
|---|---|---|
| MQL_HANDLES_USED | 当前活动对象句柄的数量。这些包括动态(通过新值创建)和非动态对象、全局/局部变量或类成员。程序使用的句柄越多,它消耗的资源就越多 | int |
| MQL_MEMORY_LIMIT | MQL5程序最大可能的动态内存数,MB计算 | int |
| MQL_MEMORY_USED | MQL5程序使用的内存大小,MB计算 | int |
| MQL_PROGRAM_TYPE | MQL5程序类型 | ENUM_PROGRAM_TYPE |
| MQL_DLLS_ALLOWED | 允许为已生效的程序交易 | bool |
| MQL_TRADE_ALLOWED | 允许为已生效的程序交易 | bool |
| MQL_SIGNALS_ALLOWED | 允许为已生效的程序更改信号 | bool |
| MQL_DEBUG | 表示程序在调试模式下运行 | bool |
| MQL_PROFILER | 表示程序在代码分析模式下运行 | bool |
| MQL_TESTER | 表示程序在测试中运行 | bool |
| MQL_FORWARD | 表示程序在前向测试过程中运行 | bool |
| MQL_OPTIMIZATION | 表示程序在优化模式下运行 | bool |
| MQL_VISUAL_MODE | 表示程序在可视测试模式下运行 | bool |
| MQL_FRAME_MODE | 表示EA交易在收集优化结果框架模式下运行 | bool |
| MQL_LICENSE_TYPE | EX5模块的许可证类型。许可证涉及EX5模块,从这里使用 MQLInfoInteger(MQL_LICENSE_TYPE)发出请求。 | ENUM_LICENSE_TYPE |
| MQL_STARTED_FROM_CONFIG | 如果脚本/EA是从配置文件的启动(StartUp)部分启动,则返回true。这意味着该脚本/EA已在启动程序端的配置文件中注册。 | bool |
ENUM_MQL_INFO_STRING
| 标识符 | 描述 | 类型 |
|---|---|---|
| MQL_PROGRAM_NAME | mql5已执行程序名称 | string |
| MQL_PROGRAM_PATH | 以执行系统路径 | string |
运行程序类型信息,使用ENUM_PROGRAM_TYPE 值
ENUM_PROGRAM_TYPE
| 标识符 | 描述 |
|---|---|
| PROGRAM_SCRIPT | 脚本 |
| PROGRAM_EXPERT | 专家 |
| PROGRAM_INDICATOR | 指标 |
| PROGRAM_SERVICE | 服务 |
ENUM_LICENSE_TYPE
| 标识符 | 描述 |
|---|---|
| LICENSE_FREE | 免费无限使用版 |
| LICENSE_DEMO | 市场付费产品的试用版仅在策略测试中工作 |
| LICENSE_FULL | 购买的授权版允许至少5次激活。激活次数由卖家设定。卖家可以提高允许的激活次数 |
| LICENSE_TIME | 有期限限制的授权版 |
示例:
ENUM_PROGRAM_TYPE mql_program=(ENUM_PROGRAM_TYPE)MQLInfoInteger(MQL_PROGRAM_TYPE);
switch(mql_program)
{
case PROGRAM_SCRIPT:
{
Print(__FILE__+" is script");
break;
}
case PROGRAM_EXPERT:
{
Print(__FILE__+" is Expert Advisor");
break;
}
case PROGRAM_INDICATOR:
{
Print(__FILE__+" is custom indicator");
break;
}
default:Print("MQL5 type value is ",mql_program);
//---
Print("MQLInfoInteger(MQL_MEMORY_LIMIT)=", MQLInfoInteger(MQL_MEMORY_LIMIT), " MB");
Print("MQLInfoInteger(MQL_MEMORY_USED)=", MQLInfoInteger(MQL_MEMORY_USED), " MB");
Print("MQLInfoInteger(MQL_HANDLES_USED)=", MQLInfoInteger(MQL_HANDLES_USED), " handles");