首页 > 解决方案 > MT5/Metatrader 5 使用 python 连接到不同的 MT5 终端

问题描述

我有多个使用以下代码连接到 Mt5 终端的 python 程序。

# Establish connection to the MetaTrader 5 terminal
if not mt5.initialize("C:\\Program Files\\ICMarkets - MetaTrader 5 - 01\\terminal64.exe"):
    print("initialize() failed, error code =", mt5.last_error())
    quit()

MT5 的 python 模块是这里的一个 - https://www.mql5.com/en/docs/integration/python_metatrader5

我遇到的问题是,当多个程序连接到同一个 MT5terminal.exe时,性能会下降并且一个或多个 python 程序退出并出现错误。为了克服这个问题,我安装了多个 MT5 副本并更新了 python 代码,以便不同的 python 程序副本使用不同的 MT5 安装。但是,只有第一次安装 MT5 是唯一可以被所有 python 程序调用的。尝试使用terminal.exe其他安装中的任何其他内容会引发异常并且连接失败。

互联网上也没有太多可以解决此问题。如果有人有解决这个问题的想法或已经解决了这个问题,我很想听听你的意见。

这样的错误是 -

initialize() failed, error code = (-10003, "IPC initialize failed, Process create failed 'C:\\Program Files\\ICMarkets - MetaTrader 5 - 02\terminal64.exe'")

这可能与 Windows 的默认指向第一次安装或您甚至不会想到的类似情况有关。只是在这里大声思考。

标签: pythonmetatrader5

解决方案


根据我的经验,恕我直言,MT5 python API 并非旨在同时处理来自同一台机器的多个连接。

我通过创建虚拟机并通过它们运行所有东西来克服这个问题。我使用 Oracle VM 是因为它是免费的,我有过使用它的经验,但它不擅长共享资源。

如果您的机器不是很强大,您可能需要考虑其他一些解决方案。听说Docker擅长共享主机资源。


推荐阅读