量化交易使用原生python在qmt(miniqmt)编写策略框架教程
发布时间:2小时前阅读:12
今天写一些关于交易部分的内容。全文干货满满建议收藏。
首先定义一个初始化函数,用于连接miniQMT的交易,代码如下:


上述这个类是一个自定义的回调类,这个类必不可少,是后续启动原生qmt的必要类。
下面这个函数是一个初始化函数:

通过上面的方法init_account可以得到XtQuantTrader和StockAccount2个对象,后期我们获取数据和交易会用到。
接下来列举一些我认为比较常用的方法:
1、调用init_account:
path 这里替换成QMT实际的userdata_mini目录的路径。这样我们就得到了XtQuantTrader和StockAccount2个对象
2、获取资产情况,示例是获取可用现金,如下:
可以查询的数据有:
l account_id,资金账号
l cash,可用金额
l frozen_cash,冻结金额
l market_value,持仓市值
l total_asset,总资产
3、股票持仓,示例是获取某个股票的可用数量,如下:
可以查询的数据有:
account_type, 账号类型
account_id, 资金账号
stock_code, 证券代码
volume, 持仓数量
can_use_volume, 可用数量
open_price, 开仓价
market_value, 市值
frozen_volume, 冻结数量
on_road_volume, 在途股份
yesterday_volume, 昨夜拥股
avg_price, 成本价
direction, 多空方向,股票不适用
当然也可以批量获取全部的股票持仓,示例代码如下:
4、查询当前委托通过以下方法就可以查询当前的委托单的状态,然后根据对应的状态做相关的操作:
可以查询的数据有:
l account_type, 账号类型,参见数据字典
l account_id, 资金账号
l stock_code , 证券代码
l order_id , 订单编号
l order_sysid , 柜台合同编号
l order_time , 报单时间
l order_type , 委托类型,参见数据字典
l order_volume , 委托数量
l price_type , 报价类型,该字段在返回时为柜台返回类型,不等价于下单传入的price_type,枚举值不一样功能一样,参见数据字典
l price , 委托价格
l traded_volume , 成交数量
l traded_price , 成交均价
l order_status , 委托状态
l status_msg , 委托状态描述,如废单原因
l strategy_name , 策略名称
l order_remark , 委托备注,最大 24 个英文字符
l direction , 多空方向,股票不适用
l offset_flag , 交易操作,用此字段区分股票买卖,期货开、平仓,期权买卖等;
当然也支持根据订单编号(同步报单接口返回的编号)来查询某个委托的状态:
5、下单接口
股票同步下单
股票资金账号acc对浦发银行买入100股,使用限价价格14.03元, 策略名称为huajie_01,委托备注为'my_test'
返回值order_id大于0表示下单成功,下单失败返回-1
其中order_type支持如下类型:
l xtconstant.STOCK_BUY,买入
l xtconstant.STOCK_SELL,卖出
其中price_type支持的类型如下:
上交所、北交所、深交所股票支持如下类型:
l xtconstant.LATEST_PRICE,最新价
l xtconstant.FIX_PRICE,指定价
上交所/北交所的股票支持如下类型:
l xtconstant.MARKET_SH_CONVERT_5_CANCEL,最优五档即时成交剩余撤销
l xtconstant.MARKET_SH_CONVERT_5_LIMIT,最优五档即时成交剩转限价
l xtconstant.MARKET_PEER_PRICE_FIRST,对手方最优价格委托
l xtconstant.MARKET_MINE_PRICE_FIRST,本方最优价格委托
深交所的股票支持如下类型:
l xtconstant.MARKET_PEER_PRICE_FIRST,对手方最优价格委托
l xtconstant.MARKET_MINE_PRICE_FIRST,本方最优价格委托
l xtconstant.MARKET_SZ_INSTBUSI_RESTCANCEL,即时成交剩余撤销委托
l xtconstant.MARKET_SZ_CONVERT_5_CANCEL,最优五档即时成交剩余撤销
l xtconstant.MARKET_SZ_FULL_OR_CANCEL,全额成交或撤销委托
股票异步下单
异步下单接口为order_stock_async参数和同步一致,区别在于会收到on_order_stock_async_response的委托反馈。
6、撤单接口
股票同步撤单
根据下单时返回的订单号来撤单
cancel_result返回0表示撤单命令下达成功,-1表示撤单失败,结果是0不一定撤单成功了,这里只是告诉我们已经成功下达了撤单命令,这点大家需要理解到位。比如12点的时候我们下达了撤单,返回值是0,此时是无法撤单成功的,需要等开盘以后才可以。根据柜台合同编号为order_sysid撤单,从查询当前委托里面可以拿到order_sysid的值。
股票异步撤单
使用cancel_order_stock_async、cancel_order_stock_sysid_async执行异步撤单,参数同 同步撤单。
总结
关注"叩富问财"公众号,回复"资深吴经理",联系专属客户经理开通量化交易权限!
立即行动:打开微信,搜索"叩富问财",在对话框中输入"资深吴经理",开启你的量化交易之旅!
温馨提示:投资有风险,选择需谨慎。
-
2026年最新证券公司排名TOP20,一文给你选择参考~
2026-01-20 10:20
-
2026年美联储利率决议时间一览,关系各类资产,赶紧收藏!
2026-01-20 10:20
-
小白入门:投资炒股必知的30个金融名词
2026-01-20 10:20


问一问

+微信
分享该文章
