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

期货实盘委托成交持仓对不上:天勤排查顺序与字段对照

前言

实盘里最耗时间的往往不是信号算错,而是委托有、成交没有、持仓却对不上这类状态问题。我见过策略日志写“已开多 2 手”,get_position却只有 1 手,最后发现是部分成交、重复报单、或平今平昨写错导致拒单。排查要有固定顺序,否则会在 print 里打转。

天勤TqSdk把委托、成交、持仓都挂在同一数据截面上,每次wait_update后可用get_orderget_tradeget_position拉齐。下面给一套从柜台回报到策略记忆的核对流程,并列出常见错位原因。

一、先定“以谁为准”

数据源适合作为
get_trade已发生成交的真相
get_order在途与终态委托(含撤单、拒单)
get_position交易所认可的持仓截面
策略自建变量只能当缓存,不能当真相

一旦三者不一致,优先信 trade + position,回头改策略状态机,而不是强行改 position 理解。

二、推荐排查顺序(清单)

  1. 时间戳:最后一次wait_update是什么时候?若主循环卡住,看到的是旧截面。
  2. 活跃委托orders = api.get_order(),筛status仍为未成、待撤的单。
  3. 当日成交trades = api.get_trade(),按合约汇总成交量。
  4. 持仓pos = api.get_position(symbol),看pos_longpos_shortpos(净仓)。
  5. 策略日志:同一时刻是否重复insert_order或多次set_target_volume
  6. 开平与方向:上期所等区分平今/昨的合约,offset写错会拒单但策略以为已平。

把 2~4 在一张表里打快照,比逐行 print 高效。

三、天勤字段级快速对照

委托get_order返回的 order 对象,字段以当前版本文档为准):

  • status:是否已全成、撤单、拒单
  • volume_orign/volume_left:原始手数与剩余
  • insert_date_time:报单时间,用于和成交对齐

成交get_trade):

  • volumepricedirectionoffset
  • 与 order 的order_id关联(若字段存在)

持仓get_position):

  • pos_longpos_short分列;净仓用pos
  • 浮动盈亏与get_account权益分开看,避免把浮盈当可用资金

wait_update后加:

api.wait_update()ifapi.is_changing(pos,"pos_long")orapi.is_changing(pos,"pos_short"):print("持仓",symbol,pos.pos_long,pos.pos_short,pos.pos)foroid,oinapi.get_order().items():ifo.status=="ALIVE":# 以文档枚举为准print("在途",oid,o.direction,o.offset,o.volume_left)

ALIVE等状态字以你安装的 TqSdk 文档为准,不同版本命名可能略有差异。

四、五种高频错位原因

现象常见原因处理
委托有、无成交限价太远、非交易时段、资金不足quote买卖盘与get_account可用
成交有、持仓不对部分成交、多合约 symbol 写错按 trade 汇总,核对合约代码
持仓对、策略记错用全局变量记仓,未在成交后更新以 position 为准重算或每帧同步
重复开仓每 tick 都下单,未用is_changing限频K 线策略配合datetime变化判断
平不掉平今/平昨顺序、锁仓规则检查offsetTargetPosTaskoffset_priority

五、TargetPosTask 场景的额外检查

使用TargetPosTask时,下单撤单在wait_update里异步完成。若你手写日志在set_target_volume后立即打印 position,可能还没成交。

正确做法:等is_changing(pos, ...)或监听 task 的trade_chan(文档中有成交通知 channel 可选参数)再记仓。

同一合约不要同时又用insert_order,否则 task 内部状态与手动报单冲突,表现为委托列表混乱。

六、模拟与实盘核对差异

TqSim进程内模拟与TqKq快期模拟账户不是同一套记录;团队对账要用TqKq或实盘账户,并在 APP 侧交叉验证。

回测结束用BacktestFinished捕获后导出成交统计,与实盘日志格式保持一致,方便横向对比。

总结

委托、成交、持仓对不上时,按wait_update 是否新鲜 → 在途 order → trade 汇总 → position → 策略日志顺序查,真相以 trade 和 position 为准。天勤在同一 API 截面提供三类对象,适合在is_changing触发时打结构化快照。

重点排查部分成交、重复报单、开平写错、TargetPosTask 后立即记仓、以及 TqSim 与 TqKq 混用。把核对脚本做成每日收盘后固定动作,比出问题时临时 grep 日志更省时间。

FAQ

1)get_order 空但策略下过单?

可能已全部成交或撤单完成;改查get_trade历史。也要确认是否连错账户实例(多账户模式要传account参数)。

2)净仓和多空对不上?

看是否同时有多空持仓(锁仓);有的策略看pos,有的要看pos_long/pos_short分列。

3)回报延迟几秒算异常?

网络与交易所负载会导致延迟;若超过数十秒且无wait_update,查主循环是否阻塞。

4)能否用 trade_log?

TqSim等提供trade_log适合做模拟二次核对,实盘仍以实时get_trade为主。

风险提示

本文用于技术排查说明,不构成投资建议。

http://www.gsyq.cn/news/1463902.html

相关文章:

  • 别再只用KL散度了!用Wasserstein距离(推土机距离)解决GAN训练中的梯度消失问题
  • 告别按键!用STM32F4和PAJ7620手势传感器做个隔空切歌播放器(附完整代码)
  • 从电枢电压到转子转角:手把手拆解直流电机数学模型,附Simulink仿真验证
  • 别再暴力穷举了!用Python+PuLP库5分钟搞定整数规划(附投资组合实战代码)
  • 别再只用PCA了!粗糙集在风控模型特征工程中的实战应用与避坑指南
  • 告别黑盒!用开源OpenRAM在28nm工艺上玩转自定义SRAM编译器
  • ArcGIS栅格配准翻车实录:从“扭曲”到精准,我踩过的6个坑与解决方案
  • AI Coding沙龙杭州站回顾,共探ISV效能利润双增长
  • 2026高性能存储控制器IP权威榜单:技术革新与市场首选
  • 百考通助手:AI精准赋能开题报告,让学术研究起步更高效
  • 别再手动拼接路径了!CMake中get_filename_component命令的3个实战用法(含目录名提取)
  • 抖音批量下载终极方案:免费、高效、去水印的完整解决方案
  • 别再搞混了!SINUMERIK 840D编程中机床、工件、基准坐标系到底啥关系?
  • 告别单核独舞:手把手教你搞定TI DSP6678多核启动(附MPAX配置避坑指南)
  • 影刀RPA店群自动化架构实战:Python协同配置模板引擎与店铺批量管理
  • AntiDupl.NET完整指南:如何用智能工具快速清理重复图片释放存储空间
  • 节假日景区人流爆满运维压力大?AI 机器狗自助服务落地,天问智能助力景区无人化减负增效
  • 实在Agent和其他自动化工具到底有什么区别?2026年企业级生产力范式跃迁深度解析
  • 影刀RPA店群自动化教程:Python协同多维度异常检测与智能预警实战
  • SWAN近岸波浪模拟MATLAB自动化工作流:网格构建、风浪驱动配置与结果图谱一键生成
  • 深夜黑客攻防实录,八个 AI 智能体如何协同护主
  • DeepSeek-V4实测:百万级上下文、Agent与逻辑推理能力深度解析
  • 2026 年深圳全屋定制工厂预约设计技巧:这样沟通效果翻倍 - 产品测评官
  • 告别触摸屏!用STM32和PAJ7620做个隔空操控的智能台灯(附源码)
  • 实验5-3:浏览器市场分析-大屏数据接入
  • Vivado 2019下Xilinx 7系列FPGA PCIe硬核IP配置避坑指南(Base/Advanced模式详解)
  • 2026年当前,温州高端笔记本定制行业实力厂商深度解析与推荐 - 2026年企业资讯
  • CY3.5-Biotin:高信噪比近红外标记的可靠之选
  • 2026 年深圳 120 平四房现代简约全屋定制 15 万预算如何实现效果与品质兼顾 - 产品测评官
  • Python 写期货自动交易:行情下单与成交回报怎么组织