【Python + QMT 自动化交易】全网最详细入门教程
发布时间:14小时前阅读:35
一、什么是QMT?
QMT 是由 迅投公司 开发的一款量化交易客户端软件,支持通过 Python 调用券商接口实现程序化交易。它与同花顺、通达信等传统交易软件的最大区别在于:它提供了完整的 Python API 接口,允许用户直接编写策略并执行自动化交易。
概念补充
- QMT 是券商采购使用的量化交易平台,个人投资者也可以申请开通。
- 它不仅提供行情、交易功能,还支持策略回测、模拟交易、算法交易等多种量化功能。
- 最重要的是:QMT 提供了基于 Python 的交易 API,是散户实现程序化交易的关键工具。
界面展示
以 国金证券 QMT 为例,登录界面如下(不同券商略有差异):
进入后主要分为几个模块:
- 行情查看
- 交易操作
- 模型研究
- 模型交易
各券商的 QMT 界面大同小异,但核心功能一致。
二、为什么选择 QMT?
过去,散户想要实现自动化交易,往往面临诸多限制,比如:
- 多数自动化接口只对机构开放;
- 常规方式如
easyTrader依赖模拟按键,稳定性差; - 无法高效调用真实交易接口。
而 QMT 的出现,彻底解决了这些问题:
- 直接对接券商系统,调用真实交易接口;
- 暴露 Python API,可编程性极强;
- 安全性高,策略不外泄;
- 支持多种交易品种(股票、期货、期权等);
- 本地运行,无需依赖第三方服务器。
三、QMT vs miniQMT(极简模式)
什么是 miniQMT?
miniQMT 是 QMT 的 极简模式,部分券商提供该模式。
你可以在登录界面判断是否有这个选项:
miniQMT 的优势
| 对比项 | QMT | miniQMT |
|---|---|---|
| 运行环境 | 需在 QMT 客户端内运行 | 可独立于 QMT 客户端运行 |
| 程序控制 | 必须在 QMT 中写入代码 | 可直接使用 xtquant 包编写 Python 程序 |
| 灵活性 | 较低 | 极高(真正实现“独立程序+QMT终端”的分离) |
通俗理解
- 在 QMT 模式 下,你的程序必须嵌入到 QMT 客户端中运行;
- 而在 miniQMT 模式 下,你可以像普通 Python 程序一样开发,只需保证 QMT 极简模式正在运行即可。
这就意味着,你可以完全将量化程序独立出来,不再受 QMT 客户端限制,极大提升了开发效率和灵活性
四、代码实战:Python + miniQMT 实现自动下单
1. 下载 xtquant 包
xtquant 是 QMT 提供的 Python 接口包,可通过 迅投官网 下载:
xtquant 下载地址
下载后,将其放入你的 Python 项目目录中,确保可以正常导入。
pip install xtquant或者手动复制文件夹至项目路径。
2. 创建交易对象
import randomfrom xtquant.xttrader import XtQuantTrader# 设置 userdata_mini 路径(根据你安装的 QMT 路径修改)path = r"D:国金证券QMT交易端userdata_mini"session_id = int(random.randint(100000, 999999)) # 生成随机会话 IDxt_trader = XtQuantTrader(path, session_id)path:QMT 安装目录下的userdata_mini文件夹路径;session_id:每次创建不同的会话 ID,防止冲突。
3. 连接 QMT 客户端
xt_trader.start()connect_result = xt_trader.connect()print(f"连接结果: {connect_result}")if connect_result == 0: print("连接成功!")注意:必须在 QMT 极简模式下运行,否则无法连接成功。
4. 订阅账户信息
from xtquant.xttype import StockAccountacc = StockAccount("你的资金账号") # 替换为你的资金账户号subscribe_result = xt_trader.subscribe(acc)print(f"订阅结果: {subscribe_result}")成功返回 0,表示订阅成功。
5. 下单操作
from xtquant import xtconstantstock_code = "000429.SZ" # 股票代码(注意格式:市场代码.SZ/SH)order_id = xt_trader.order_stock( acc, stock_code, xtconstant.STOCK_BUY, # 买入 100, # 数量 xtconstant.FIX_PRICE, # 限价 7.5 # 价格)print(f"订单编号: {order_id}")执行后,可在 QMT 极简模式中看到委托记录,说明下单成功。
6. 撤单操作
xt_trader.cancel_order_stock(acc, 1082130954) # 替换为实际订单编号撤单成功后,订单状态会更新为“已撤”。
五、如何开通 QMT?
QMT 是券商专用平台,个人投资者需通过 券商开户 后申请权限。
开通步骤(以国金为例):
- 在券商开户后,等待资金账户开通 QMT 权限;
- 券商会通过邮件发送 QMT 下载链接;
- 根据提示下载并安装 QMT;
- 登录时选择 “极简模式”(如有的话)。
六、总结
本文介绍了 QMT 的基本概念、使用场景以及 Python + miniQMT 的完整接入流程,并通过代码示例展示了如何实现自动下单、撤单等操作。
QMT 的出现,使得 散户也能拥有媲美机构的自动化交易能力,结合 Python 编程,极大地提升了量化交易的效率与灵活性。
附:常见问题解答
Q1:QMT 和 miniQMT 有什么区别?
A:miniQMT 更灵活,可以独立于 QMT 客户端运行,适合开发自动化交易程序。
Q2:我是否需要安装 QMT?
A:是的,但只需运行 极简模式,不需要完整版 QMT。
Q3:QMT 支持哪些交易品种?
A:股票、期货、期权、ETF、可转债、两融等。
如需进一步了解 QMT 的高级功能、策略编写、API 使用方法等,欢迎私信咨询,我们将为你提供详细指导!
温馨提示:投资有风险,选择需谨慎。
-
3分钟学会用华泰证券APP买ETF,高效智能费率低!
2025-12-01 09:54
-
开户前中后,有个专属客户经理有多重要?
2025-12-01 09:54
-
手把手教学:华泰证券低佣金开户最新全流程
2025-12-01 09:54


问一问

+微信
分享该文章
