跳至内容

运行MQL5程序属性

运行MQL程序属性

为了获取当前运行的MQL5程序的信息,可以使用ENUM_MQL_INFO_INTEGER 和 ENUM_MQL_INFO_STRING常量。

函数 MQLInfoInteger

ENUM_MQL_INFO_INTEGER

标识符描述类型
MQL_HANDLES_USED当前活动对象句柄的数量。这些包括动态(通过新值创建)和非动态对象、全局/局部变量或类成员。程序使用的句柄越多,它消耗的资源就越多int
MQL_MEMORY_LIMITMQL5程序最大可能的动态内存数,MB计算int
MQL_MEMORY_USEDMQL5程序使用的内存大小,MB计算int
MQL_PROGRAM_TYPEMQL5程序类型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_TYPEEX5模块的许可证类型。许可证涉及EX5模块,从这里使用 MQLInfoInteger(MQL_LICENSE_TYPE)发出请求。ENUM_LICENSE_TYPE
MQL_STARTED_FROM_CONFIG如果脚本/EA是从配置文件的启动(StartUp)部分启动,则返回true。这意味着该脚本/EA已在启动程序端的配置文件中注册。bool

函数 MQLInfoString

ENUM_MQL_INFO_STRING

标识符描述类型
MQL_PROGRAM_NAMEmql5已执行程序名称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");