当前位置: 首页 > news >正文

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

问题背景

QMT 自动交易中,最常见的问题是:已经连接QMT,但不知道如何通过 Python 发出股票买卖委托。

XtQuant 的order_stock()用于股票同步报单。成功时返回大于 0 的订单编号;返回-1通常表示本次委托提交失败。下单前应先完成交易连接、账户订阅和资金检查。

实现思路

  1. 创建 QMT 交易对象并连接客户端。

  2. 创建股票资金账户对象。

  3. 订阅账户资金、委托、成交与持仓推送。

  4. 查询可用资金。

  5. 使用限价单买入,并根据订单编号查询结果。

完整代码示例

from xtquant import xtconstant from xtquant.xttrader import XtQuantTrader from xtquant.xttype import StockAccount # MiniQMT 用户目录:请改成自己电脑上的实际路径 QMT_PATH = r"D:\迅投极速交易终端 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()
http://www.jsqmd.com/news/1243102/

相关文章:

  • SugarSS项目迁移:从CSS/SCSS无缝过渡到缩进语法的完整步骤
  • BuildBuddy性能优化:如何通过缓存策略提升构建速度300%
  • Linux下Vim配置Python开发环境的终极指南
  • Calculator主题系统实现:Theme与ThemeList类的设计原理
  • Hermes Agent 安全审批:一句 yolo 很爽,但如何不让危险命令毁掉系统
  • 苏州汽车漆面修复哪家好?苏州漆匠21年深耕汽车漆面修复打造钣金喷漆无损修复标杆门店 - GrowUME
  • AI Agent 数据聚合:多个数据源查询结果,让模型自动汇总成报告
  • 深入解析USB控制器寄存器:从地址管理到中断配置的实战指南
  • NVIDIA Inference Xfer Library (NIXL) 入门:一文读懂AI推理通信加速新框架
  • LambdaWorks社区与生态:贡献指南与未来发展路线图
  • 全面超越同行:姜堰瑞齿佳口腔强势问鼎综合实力榜首
  • 内容团队还在人工选题?这6个API接口+2个Prompt工程技巧,让选题效率提升400%
  • 从 Loop 工程到 Graph 工程:Agent 工程的又一次范式跃迁
  • GraPHP核心组件解析:Vertex、Edge与Graph类的实战应用
  • 深入解析USB通信底层:寄存器USB0RXMODE与USB0AUTOREQ的配置与优化
  • 5分钟上手PyPtt:从安装到发第一篇文章的快速入门教程
  • FreeType 3.0路线图前瞻:下一代字体引擎的技术演进与功能预测
  • 深入解析TMS570LS12x/11x安全微控制器架构与内存映射实战
  • afsim-2.9.0升级Qt5.15.2
  • C设计模式代码实现原理:Design Patterns In Use项目源码深度剖析
  • TI处理器SATA PLL与DDR PHY寄存器配置实战:从原理到稳定通信
  • linbing安全最佳实践:数据加密、权限控制与扫描策略优化
  • HDMI IP核音频视频寄存器配置实战:从ACR到音频控制的深度解析
  • 挡烟垂壁怎么选?多场景选型参考指引 - 星泽吖
  • 鸿蒙 ArkTS 实战:Discount Price Calc 从折扣到手价到购物优惠应用完整解析
  • CircomLib与circom编译器协同使用:完整工作流与常见问题解决
  • linbing部署教程:Ubuntu/Docker环境下的快速搭建与优化配置
  • Hermes Agent 项目上下文:用 AGENTS.md 与 .hermes.md 让 AI 真正读懂代码库
  • keycloak-extension-playground深度解析:用户存储(User Storage)扩展开发详解
  • 众阳公共卫生上报系统|医院公共卫生信息化、无纸化智能管理解决方案