MetaTrader 4 + Python:ZeroMQ

MetaTrader 4 + Python:ZeroMQ

ZeroMQ 是一种实用的方式,可以将 MetaTrader 4 与 Python 连接起来,而不必依赖文件、从零编写的 socket,或通过外部存储进行缓慢轮询。常见模式是在 MT4 中运行一个 Expert Advisor,由它加载 ZeroMQ DLL,然后让 Python 进程使用 pyzmq 与其通信。

常见设置问题

在调试 MQL4 或 Python 代码之前,先检查下面两个 MT4 端的要求。

  • 必须安装 Microsoft Visual C++ 2015 Redistributable。 如果 libzmq.dll 依赖 Visual C++ 运行时,而系统缺少该运行时,即使文件放在正确目录中,MT4 也可能无法加载 DLL。
  • 加载 EA 时必须启用 Allow DLL imports。 如果没有勾选此选项,MT4 会拒绝对 ZeroMQ 的调用,并可能报告类似这样的错误:Cannot call 'libzmq.dll::zmq_ctx_new', DLL is not allowed

MetaTrader 4 Expert Advisor DLL 导入设置

检查清单

  1. 为你正在使用的 ZeroMQ DLL 构建版本安装所需的 Visual C++ Redistributable。
  2. 将 ZeroMQ DLL 放到 MT4 终端能够加载的位置,通常是在终端的 MQL4/Libraries 目录下。
  3. 将 Expert Advisor 加载到图表上。
  4. 在 EA 设置中,打开 Common 选项卡并勾选 Allow DLL imports
  5. 如果 DLL 是在终端已经运行时添加的,请重启 MT4。
  6. 确认 EA 已在 MT4 中成功运行后,再启动 Python 进程。

如果连接仍然失败,先检查 MT4 的 ExpertsJournal 选项卡。它们通常会显示问题是 DLL 导入被阻止、缺少依赖项,还是 EA 内部的运行时错误。

Leave a Reply