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。

检查清单
- 为你正在使用的 ZeroMQ DLL 构建版本安装所需的 Visual C++ Redistributable。
- 将 ZeroMQ DLL 放到 MT4 终端能够加载的位置,通常是在终端的
MQL4/Libraries目录下。 - 将 Expert Advisor 加载到图表上。
- 在 EA 设置中,打开 Common 选项卡并勾选 Allow DLL imports。
- 如果 DLL 是在终端已经运行时添加的,请重启 MT4。
- 确认 EA 已在 MT4 中成功运行后,再启动 Python 进程。
如果连接仍然失败,先检查 MT4 的 Experts 和 Journal 选项卡。它们通常会显示问题是 DLL 导入被阻止、缺少依赖项,还是 EA 内部的运行时错误。
