保持敬畏之心
交易是一场持久战

MQL4(45):检查EA运行所需的配置选项

为了确保EA能够正常执行交易或调用外部模块,MetaTrader客户端中有一些关键的配置选项需要用户正确设置。这些选项通常位于加载EA时弹出的“EA属性”对话框的“常规 ”选项卡中。在EA的初始化阶段(例如 OnInit())检查这些设置是一种良好编程实践。

  1. 检查“允许实时交易”

    • 重要性: 这是 EA 进行任何真实或模拟交易操作的前提条件。如果此选项未被勾选,EA 将无法下单、平仓或修改订单。
    • 视觉提示: 当此选项被禁用时,附加到图表上的 EA 名称旁边通常会显示一个“哭脸”或“皱眉的脸”图标,表明其无法进行交易。
    • MQL4 函数检查: 您可以使用 IsTradeAllowed() 函数来检测此设置的状态。如果该函数返回 false,则表示“允许实时交易”未被启用。
    • 提示用户:
      if (IsTradeAllowed() == false)
      {
          Alert("EA 交易功能未启用! \n请在智能交易系统属性 -> 常规 -> 勾选 '允许实时交易 (Allow live trading)'。");
          // 也可以考虑 return(INIT_FAILED); 来阻止EA继续加载
      }
      
  2. 检查“允许导入外部EA的函数”

    • 重要性: 如果您的 EA 需要调用另一个编译好的 .ex4 或库文件中的函数,则此选项必须被勾选。
    • MQL4函数检查: 使用 IsLibrariesAllowed() 函数。如果返回 false,则表示不允许导入外部库。
    • 提示用户:
      if (IsLibrariesAllowed() == false)
      {
          Alert("EA 调用外部 MQL 库的功能未启用! \n请在智能交易系统属性 -> 常规 -> 勾选 '允许导入外部EA的函数 (Allow import of external experts)'。");
      }
      
  3. 检查“允许导入 DLL”

    • 重要性: 如果您的EA需要调用外部的 Windows 动态链接库 (.dll) 文件中的函数(通常用于执行 MQL 本身不直接支持的复杂计算、系统交互或集成第三方库),则此选项必须被勾选。
    • MQL 函数检查: 使用 IsDllsAllowed() 函数。如果返回 false,则表示不允许导入DLL。
    • 提示用户:
      if (IsDllsAllowed() == false)
      {
          Alert("EA 调用 DLL 动态链接库的功能未启用! \n请在智能交易系统属性 -> 常规 -> 勾选 '允许导入 DLL (Allow DLL imports)'。");
      }
      

参考“图 8.2”。展示了“EA属性”对话框中“常规”选项卡的外观,其中包含了上述这些勾选项。

您可以在 MQL 官方参考文档的“检查函数 (Checkup Functions)”部分找到所有与终端环境和设置相关的检查函数列表及其详细说明。

通过在 EA 启动时执行这些检查,您可以及时提醒用户进行必要的配置,从而避免因设置不当导致的运行错误或功能缺失。

赞(0)
未经允许不得转载:图道交易 » MQL4(45):检查EA运行所需的配置选项
分享到