我有多个使用以下代码连接到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
我的问题是,当多个程序连接到同一个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指向首次安装的默认设置有关,或者甚至是您根本不会想到的。只是在这里大声思考。
答案 0 :(得分:1)
根据我的经验,恕我直言,MT5 python API 并非旨在同时处理来自同一台机器的多个连接。
我通过创建虚拟机并通过它们运行所有东西来克服这个问题。 我使用 Oracle VM 是因为它是免费的,我有过使用它的经验,但它不太擅长共享资源。
如果您的机器不是很强大,您可能需要寻找其他解决方案。 听说Docker很擅长共享宿主机资源。