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

时间:2020-09-20 03:38:42

标签: python metatrader5

我有多个使用以下代码连接到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指向首次安装的默认设置有关,或者甚至是您根本不会想到的。只是在这里大声思考。

1 个答案:

答案 0 :(得分:1)

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

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

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