QMT 是我也在使用股票量化软件,很多券商都接入了这个系统。 个人开通开通有一定的资金门槛,小券商要求会低一点。
功能开通后客户经理会把券商的专属安装包发过来,.exe
安装包只能运行在 Windows 上。
MiniQMT 是 QMT 的简化版,执行完安装过程这两个就都有了,两者在回测和实盘上的区别如下。
QMT 有回测和实盘功能,都需要在软件内进行。我不喜欢这种方式,因为它的编程环境看着简陋粗糙,和 IDE 没法比。
MiniQMT 相比之下更对我的胃口,因为我想用自己的回测环境和框架,而且实盘虽然不能离开界面直接向券商发送下单信息,但至少代码编写和运行都是在我自己的 IDE 环境中。
MiniQMT 提供了一个 XtQuant
的 Python 库,可以 import 它并调用它的方法下单。
XtQuant
目前不能通过 pip 安装,可以搜索官网下载或在 QMT 的设置中下载后拷贝出来。
MiniQMT 的下单信息流向如下。
import xtquant
,通过 xtquant
库提供的方法下单;xtquant
库发出的下单请求;下图展示了一份简单下单代码。 首先导入 xtquant 相关的库,然后新建一个 XtQuantTrader 的实例,后续对XtQuant API的操作都需要该实例对象。
执行 start(),会初始化和异步操作和线程池相关的对象。接着运行 connect() 连接桌面上已打开的 MiniQMT。
接下来运行 order_stock() 方法进行下单,分别传入操作的账户、股票代码、买入操作、股票数量、价格类型和下单价(使用最新价价格类型,此处填 0)。
下图展示了一份简单的查询订单代码。
运行 query_stock_positions(),传入需要查询的账户。api 会返回一个仓位数组,我们获取第一个。
仓位查询结果是一个 xtquant.xtpythonclient.XtPosition 类型的对象,其中的成员变量,可以查阅 xtquant 的源代码。
在上面示例中,在 print() 函数里,打印了股票代码、开仓价和数量。
以下列举的接口,来自官方文档的目录,文档地址可能会变在此不放置了,可以搜索 xtquant 找到。
订阅单股行情、订阅全推行情、反订阅行情数据、阻塞线程接收行情回调、获取行情数据、获取全推数据、获取除权数据、获取level2行情快照数据、获取level2逐笔委托数据、获取level2逐笔成交数据、下载历史行情数据
获取财务数据、下载财务数据
获取合约基础信息、获取合约类型、获取交易日列表、获取板块列表、获取板块成分股列表、下载板块分类信息、添加自定义板块、移除自定义板块、获取指数成分权重信息、下载指数成分权重信息
创建API实例、注册回调类、准备API环境、创建连接、停止运行、阻塞当前线程进入等待状态、开启主动请求接口的专用线程
订阅账号信息、反订阅账号信息、同步查询账号状态、异步查询账号状态、股票同步报单、股票异步报单、股票同步撤单、股票同步撤单、股票异步撤单、股票异步撤单
资产查询、委托查询、成交查询、持仓查询
信用资产查询、负债合约查询、融资融券标的查询、可融券数据查询、标的担保品查询
新股申购额度查询、当日新股信息查询、账号信息查询
券源费率信息查询、约券异步报单、约券合约信息查询
连接状态回调、账号状态信息推送、资产信息推送、委托信息推送、成交信息推送、持仓信息推送、下单失败信息推送、撤单失败信息推送、异步下单回报推送、异步约券回报推送
通过使用 MiniQMT 自带的 XtQuant 库连接 MiniQMT,能够实现股票程序下单的目标。
XtQuant 包含最常用的行情类和交易类接口,能够满足大部分情况下量化交易的使用。