运行MQL程序属性

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

函数 MQLInfoInteger

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

函数 MQLInfoString

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");