当前位置: 首页 > 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.jsqmd.com/news/952285/

相关文章:

  • AI辅助开发新思路:让快马平台生成你想象不到的sweezy cursors炫酷效果
  • 从BP生成到招股书定稿,AI如何压缩IPO周期68%?一线保荐人亲授5个不可逆的提效节点
  • 告别按键!用STM32F4和PAJ7620手势传感器做个隔空切歌播放器(附完整代码)
  • 别再只用KL散度了!用Wasserstein距离(推土机距离)解决GAN训练中的梯度消失问题
  • MATLAB环境下IF脉冲神经元动态仿真包:含可运行代码、脉冲检测模块与实操录像
  • 从电枢电压到转子转角:手把手拆解直流电机数学模型,附Simulink仿真验证
  • 广州黄金回收哪家靠谱推荐,24小时营业的推荐,上门变现速度快的推荐 - 花生花生1
  • 告别PHP 5!CentOS 7下用Remi仓库一键升级PHP 8.2(附Apache/Nginx重启命令)
  • 保姆级教程:用Hugging Face Transformers库快速上手TabTransformer(PyTorch版)
  • 2026世界杯最核心变化晋级规则与淘汰赛结构彻底调整冷门概率大增
  • 从收音机到手机:高频小信号放大器设计避坑指南(基于Multisim仿真分析)
  • 002、Zephyr RTOS核心特性与优势
  • 广州哪家回收黄金严格按照上海黄金交易所金价结算?金小福黄金回收 - 花生花生1
  • 欧盟Chat Control提案与社交机器人隐私风险分析
  • 别再暴力穷举了!用Python+PuLP库5分钟搞定整数规划(附投资组合实战代码)
  • 别再只用PCA了!粗糙集在风控模型特征工程中的实战应用与避坑指南
  • 除了SCI和EI,搞计算机的你还得知道IEEE Xplore和ACM DL怎么用:四大文献库实战检索与论文追踪教程
  • 影刀RPA店群自动化运维实战:Python协同异常聚类与根因定位系统设计
  • 告别黑盒!用开源OpenRAM在28nm工艺上玩转自定义SRAM编译器
  • 从Arduino到射频模块:手把手教你为不同项目搭配合适的滤波器(RC/LC实战指南)
  • 手把手教你用Dell服务器主板自带SATA控制器组Raid(无阵列卡版)
  • 用 LLM 做自动化测试,结果 AI 自己修改了数据库生产数据——沙箱没做好
  • 从零开始写 VS Code 插件:让编辑器听你指挥,而不是你被它拿捏
  • ArcGIS栅格配准翻车实录:从“扭曲”到精准,我踩过的6个坑与解决方案
  • AI Coding沙龙杭州站回顾,共探ISV效能利润双增长
  • 003、Zephyr RTOS与其他RTOS对比分析
  • 2026年涂塑复合钢管按需定制靠谱吗 - mypinpai
  • 百考通助手:AI精准赋能开题报告,让学术研究起步更高效
  • 2026高性能存储控制器IP权威榜单:技术革新与市场首选
  • 2026邯郸装修公司推荐,家装,装修设计,装修公司优选指南!