新闻 & 分析

Python玩转 MT5:实时持仓与交易记录全掌握

15 May 2025 By Michael Miao

股票

在量化交易与自动化投资日益普及的今天,掌握如何使用编程语言与交易平台对接,已经成为现代交易者的核心能力之一。

MetaTrader 5(MT5)作为广泛使用的交易平台,不仅功能强大,还开放了Python接口,方便用户通过代码访问账户信息、持仓情况和历史交易记录。

本文将带你一步步了解如何使用Python与MT5建立连接,实时查看当前持仓、获取历史订单记录,并为后续的数据分析或策略开发打下基础。

无论你是刚接触程序化交易的新手,还是希望将工作流程自动化的进阶用户,都能从中找到实用的操作方法和代码示例。

要使用Python操作MT5,我们需要借助 MetaTrader官方提供的MetaTrader5 Python模块。

首先,像先前一样,创建链接,连接到我们的GO Markets的模拟账户。

1. 获取当前持仓信息 – positions_get()
position_get()用于获取当前账户的持仓信息,使用起来非常简洁高效,仅需几行代码即可完成基本查询。
默认情况下不传入任何参数,它会返回账户中所有的当前持仓。如果需要更精确的筛选,也可以根据交易品种、持仓标识或其他条件进行指定查询。

函数返回的结果是一个包含持仓信息的数组,每行对应一笔持仓,内容包括订单号(ticket)、开仓时间、交易品种、成交手数、开仓价格、当前盈亏等,信息与 MT5 平台中显示的数据保持一致。

2. history_orders_get()
history_orders_get()函数用于获取账户的历史交易记录。通过传入起始时间和结束时间参数,可以灵活地查询特定时间段内的所有交易订单。
例如,如果我们想获取自2020年1月1日起至今的全部交易记录,只需在函数中传入对应的时间范围即可。

函数返回一个包含历史交易记录的数组,每一项对应一条具体的交易订单,内容包括交易品种、成交手数、成交价格等关键字段,便于后续的数据分析或策略回测使用。

3. history_deals_total
history_deals_get()函数用于获取账户的成交记录,其参数格式与 history_orders_get()相同,同样需要指定查询的起始时间和结束时间。


该函数同样返回一个包含历史成交记录的数组,但与之前的 history_orders_get()不同,它返回的是与成交相关的详细信息。因此,在进行资金对账或盈亏分析时,通常以该函数的结果为准。数组中的每一项代表一笔具体成交,包含交易品种、成交手数、成交价格等关键字段。

通过本文的介绍,相信你已经掌握了如何使用 Python连接MT5平台,并获取当前持仓、历史订单以及成交记录等关键信息。这些功能不仅可以帮助你实现交易数据的自动化管理,还为策略分析、回测与风险控制提供了坚实的基础。

 

联系方式:

墨尔本 03 8658 0603
悉尼 02 9188 0418
中国地区(中文) 400 120 8537
中国地区(英文) +248 4 671 903

作者:

Michael Miao | GO Markets 悉尼中文部

免责声明:文章来自 GO Markets 分析师和参与者,基于他们的独立分析或个人经验。表达的观点、意见或交易风格仅代表作者个人,不代表 GO Markets 立场。建议,(如有),具有“普遍”性,并非基于您的个人目标、财务状况或需求。在根据建议采取行动之前,请考虑该建议(如有)对您的目标、财务状况和需求的适用程度。如果建议与购买特定金融产品有关,您应该在做出任何决定之前了解并考虑该产品的产品披露声明 (PDS) 和金融服务指南 (FSG)。