如何使用 QMT 程序下单

量化课堂 量化课堂
2023年9月12日 20:38

1. 什么是 QMT

QMT 是我也在使用股票量化软件,很多券商都接入了这个系统。 个人开通开通有一定的资金门槛,小券商要求会低一点。

功能开通后客户经理会把券商的专属安装包发过来,.exe 安装包只能运行在 Windows 上。

2. MiniQMT 更适合我

MiniQMT 是 QMT 的简化版,执行完安装过程这两个就都有了,两者在回测和实盘上的区别如下。

QMT 和 MiniQMT 的区别

QMT 有回测和实盘功能,都需要在软件内进行。我不喜欢这种方式,因为它的编程环境看着简陋粗糙,和 IDE 没法比。

MiniQMT 相比之下更对我的胃口,因为我想用自己的回测环境和框架,而且实盘虽然不能离开界面直接向券商发送下单信息,但至少代码编写和运行都是在我自己的 IDE 环境中。

3. MiniQMT 的下单流程

MiniQMT 提供了一个 XtQuant 的 Python 库,可以 import 它并调用它的方法下单。

XtQuant 目前不能通过 pip 安装,可以搜索官网下载或在 QMT 的设置中下载后拷贝出来。

MiniQMT 的下单信息流向如下。

MiniQMT 下单信息流向

  1. 在 Python 实盘代码中 import xtquant,通过 xtquant 库提供的方法下单;
  2. MiniQMT 的桌面应用接收到 xtquant 库发出的下单请求;
  3. MiniQMT 将下单信息发送给券商的交易服务器。

4. 一次下单演示

下单

下图展示了一份简单下单代码。 下单 首先导入 xtquant 相关的库,然后新建一个 XtQuantTrader 的实例,后续对XtQuant API的操作都需要该实例对象。

执行 start(),会初始化和异步操作和线程池相关的对象。接着运行 connect() 连接桌面上已打开的 MiniQMT。

接下来运行 order_stock() 方法进行下单,分别传入操作的账户、股票代码、买入操作、股票数量、价格类型和下单价(使用最新价价格类型,此处填 0)。

查询订单

下图展示了一份简单的查询订单代码。

查询订单

运行 query_stock_positions(),传入需要查询的账户。api 会返回一个仓位数组,我们获取第一个。

仓位查询结果是一个 xtquant.xtpythonclient.XtPosition 类型的对象,其中的成员变量,可以查阅 xtquant 的源代码。

在上面示例中,在 print() 函数里,打印了股票代码、开仓价和数量。

5. 所有接口列举

以下列举的接口,来自官方文档的目录,文档地址可能会变在此不放置了,可以搜索 xtquant 找到。

所有行情类接口

行情接口

订阅单股行情、订阅全推行情、反订阅行情数据、阻塞线程接收行情回调、获取行情数据、获取全推数据、获取除权数据、获取level2行情快照数据、获取level2逐笔委托数据、获取level2逐笔成交数据、下载历史行情数据

财务数据接口

获取财务数据、下载财务数据

基础行情信息

获取合约基础信息、获取合约类型、获取交易日列表、获取板块列表、获取板块成分股列表、下载板块分类信息、添加自定义板块、移除自定义板块、获取指数成分权重信息、下载指数成分权重信息

所有交易类接口

系统设置接口

创建API实例、注册回调类、准备API环境、创建连接、停止运行、阻塞当前线程进入等待状态、开启主动请求接口的专用线程

操作接口

订阅账号信息、反订阅账号信息、同步查询账号状态、异步查询账号状态、股票同步报单、股票异步报单、股票同步撤单、股票同步撤单、股票异步撤单、股票异步撤单

股票查询接口

资产查询、委托查询、成交查询、持仓查询

信用查询接口

信用资产查询、负债合约查询、融资融券标的查询、可融券数据查询、标的担保品查询

其他查询接口

新股申购额度查询、当日新股信息查询、账号信息查询

约券相关接口

券源费率信息查询、约券异步报单、约券合约信息查询

回调类

连接状态回调、账号状态信息推送、资产信息推送、委托信息推送、成交信息推送、持仓信息推送、下单失败信息推送、撤单失败信息推送、异步下单回报推送、异步约券回报推送

6. 总结

通过使用 MiniQMT 自带的 XtQuant 库连接 MiniQMT,能够实现股票程序下单的目标。

XtQuant 包含最常用的行情类和交易类接口,能够满足大部分情况下量化交易的使用。

评论
暂无评论