将 Python 脚本连接到终端和账户

initialize 函数建立与 MetaTrader 5 终端的连接,具有两种形式:简短(无参数)和完整(有多个可选参数,第一个 path,它是位置参数,其余都是命名参数)。

bool initialize()

bool initialize(path, account = <ACCOUNT>, password = <"PASSWORD">,
server = <"SERVER">, timeout = 60000, portable = False)

path 参数设置终端文件 (metatrader64.exe) 的路径(注意,与所有其他参数不同,这是一个未命名的参数,因此如果指定了该参数,则必须在列表的第一位)。

如果没有指定路径,模块将尝试自己查找可执行文件(开发者没有透露确切的算法)。为了消除歧义,请使用第二种形式的带参数的函数。

account 参数中,可以指定交易账户的账号。如果未指定,则将使用选定终端实例中的最后一个交易账户。

交易账户的密码在 password 参数中指定,也可以省略:如果省略,存储在终端数据库中的指定交易账户的密码将被自动替换。

server 参数的处理方式与交易服务器名称(在终端中指定)类似:如果未指定,则自动替换终端数据库中为指定交易账户保存的服务器。

timeout 参数是指为连接设定的超时时间(以毫秒为单位)(如果超过该时间,将会发生错误)。默认值为 60000(60 秒)。

portable 参数包含用于在便携模式下启动终端的标志(默认为 False)。

如果成功连接到 MetaTrader 5 终端,该函数返回 True,否则返回 False

如果必要,在调用 initialize 时,可以启动 MetaTrader 5 终端。

例如,与特定交易账户的连接展示如下。

import MetaTrader5 as mt5 
if not mt5.initialize(login = 562175752, server = "MetaQuotes-Demo", password = "abc"):
   print("initialize() failed, error code =", mt5.last_error()) 
   quit()
...

login 函数还使用指定的参数连接到交易账户。但这意味着与终端的连接早已建立,即该函数通常用来更改账户。

bool login(account, password = <"PASSWORD">, server = <"SERVER">, timeout = 60000)

account 参数中提供了交易账号。这是一个必需的未命名参数,意味着它必须出现在列表的第一位。

passwordservertimeout 参数与 initialize 函数的相关参数相同。

如果成功连接到交易账户,函数返回 True,否则返回 False

shutdown()

shutdown 函数关闭先前建立的与 MetaTrader 5 终端的连接。

上述函数的例子将在 下一节提供。

连接建立后,脚本可以找到终端的版本。

tuple version()

version 函数返回关于 MetaTrader 5 终端版本的简短信息,格式是三个值的元组:版本号、内部版本号和内部版本日期。

字段类型

说明

整数

MetaTrader 5 终端版本(当前版本为 500)

整数

内部版本号(例如,3456)

字符串

内部版本日期(例如 '25 Feb 2022')

如果出现错误,该函数将返回 None,并且可以使用 last_error 获得错误代码。

有关终端的更完整信息,可以使用 terminal_info 函数获取。