运行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

MQL_STARTED_FROM_CONFIG

如果脚本/EA是从配置文件的启动(StartUp)部分启动,则返回true。这意味着该脚本/EA已在启动程序端的配置文件中注册。

bool

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