QMT如何自动下单?XtQuant order_stock()完整教程

发布时间:2026/7/22 19:25:56
QMT如何自动下单?XtQuant order_stock()完整教程 问题背景QMT 自动交易中最常见的问题是已经连接QMT但不知道如何通过 Python 发出股票买卖委托。XtQuant 的order_stock()用于股票同步报单。成功时返回大于 0 的订单编号返回-1通常表示本次委托提交失败。下单前应先完成交易连接、账户订阅和资金检查。实现思路创建 QMT 交易对象并连接客户端。创建股票资金账户对象。订阅账户资金、委托、成交与持仓推送。查询可用资金。使用限价单买入并根据订单编号查询结果。完整代码示例from xtquant import xtconstant from xtquant.xttrader import XtQuantTrader from xtquant.xttype import StockAccount # MiniQMT 用户目录请改成自己电脑上的实际路径 QMT_PATH rD:\迅投极速交易终端 QMT\userdata_mini # 资金账号请改为自己的账号 ACCOUNT_ID 你的资金账号 # 每次运行使用不同会话号即可 SESSION_ID 20260722 # 买入标的与限价 STOCK_CODE 510300.SH BUY_VOLUME 100 BUY_PRICE 4.00 def main(): # 创建交易连接 xt_trader XtQuantTrader(QMT_PATH, SESSION_ID) xt_trader.start() connect_result xt_trader.connect() if connect_result ! 0: print(连接 MiniQMT 失败返回码, connect_result) return print(MiniQMT 连接成功) # 创建股票账户对象 account StockAccount(ACCOUNT_ID) # 订阅账户推送资金、委托、成交、持仓 subscribe_result xt_trader.subscribe(account) if subscribe_result ! 0: print(账户订阅失败返回码, subscribe_result) return print(账户订阅成功) # 查询资产避免在资金不足时直接报单 asset xt_trader.query_stock_asset(account) if asset is None: print(资产查询失败) return print(可用资金, asset.cash) estimated_amount BUY_PRICE * BUY_VOLUME if asset.cash estimated_amount: print(可用资金不足预计委托金额, estimated_amount) return # 限价买入 order_id xt_trader.order_stock( account, STOCK_CODE, xtconstant.STOCK_BUY, BUY_VOLUME, xtconstant.FIX_PRICE, BUY_PRICE, easyquant_qmt_demo, QMT限价买入示例 ) # 大于0代表成功生成订单编号 if order_id 0: print(委托提交成功订单编号, order_id) # 查询本次订单状态 order xt_trader.query_stock_order(account, order_id) if order: print(证券代码, order.stock_code) print(委托数量, order.order_volume) print(委托价格, order.price) else: print(订单暂未查询到可稍后重试) else: print(委托提交失败返回值, order_id) if __name__ __main__: main()

相关新闻

最新新闻

日新闻

周新闻

月新闻