MT5/Metatrader 5使用python连接到不同的MT5终端

MT5/Metatrader 5使用python连接到不同的MT5终端,python,metatrader5,Python,Metatrader5,我有多个python程序使用以下代码连接到Mt5终端 # 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_erro

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

# 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模块如下所示:

我遇到的问题是,当多个程序连接到同一个MT5
terminal.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的默认值指向第一次安装有关,或者与您根本想不到的类似情况有关。在这里,我只是大声思考。

根据我的经验,imho,MT5 python API的设计不是为了同时处理来自同一台机器的多个连接

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

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

谢谢你,Michael。最后,我在同一台机器上安装了多个mt5&为不同的Python程序副本提供了这些不同安装的路径。