news 2026/6/8 20:49:31

期货报单被拒怎么识别与处理:order 状态与 last_msg 用法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
期货报单被拒怎么识别与处理:order 状态与 last_msg 用法

前言

国内期货实盘里,报单不成交是一回事,被柜台或交易所拒绝是另一回事:保证金不足、非交易时段、价格超涨跌停、开平标志错误等,都会让单变成“错单”或快速 FINISHED 且未成交。若策略不读回报,可能以为“已经下单在等”,从而阻塞后续逻辑或重复报单。

天勤 TqSdk 的委托对象(get_order返回)带有statuslast_msgis_error等字段(定义见objs.py的 Order 类)。下面说明实盘里如何识别拒单、什么情况下可以重报、重报次数上限建议怎么设,无论用手写insert_order还是TargetPosTask都适用。

一、委托状态字段从哪来

每次api.wait_update()后,内存中的 order 对象会更新。刚下单后文档提示各字段可能暂时为空,需继续 wait_update,不要立刻判定失败。

常用字段(以源码为准):

字段含义(通俗)
statusALIVE有效在途;FINISHED已结束
last_msg委托状态信息文字
volume_left未成交手数
is_error是否为错单(注意 False 不代表一定没错,回报可能在途)
is_dead是否确定不会再成交

策略应在is_changing(order, "status")last_msg时记录日志,便于对照期货公司文案。

二、识别拒单示例

order=api.get_order(order_id)whileTrue:api.wait_update()ifapi.is_changing(order,"status")orapi.is_changing(order,"last_msg"):print(order.status,order.last_msg,order.volume_left,order.is_error)iforder.status=="FINISHED"andorder.volume_left==order.volume_orign:# 可能完全未成交结束,结合 last_msg、is_error 判断handle_reject(order)

handle_reject内解析last_msg关键词(团队维护一张“消息→动作”表),不要对所有 FINISHED 无差别重报。

三、要不要重报、重报上限

建议原则:

  1. 不可恢复错误(合约代码错、开平非法):不重报,告警停机。
  2. 资金不足:不重报,减目标仓或停机。
  3. 价格无效:调价后再 set_target_volume,限次数。
  4. 流控:用天勤TqRuleOrderRateLimit等风控规则预防(见 risk_rule),而非死循环重报。

重报计数示例:state["retry"] += 1,超过 3 次set_target_volume(0)并钉钉告警。

四、TargetPosTask 场景

task 内部报单也产生 order,可通过get_order查看。若频繁 FINISHED 未成交,检查price=ACTIVE/PASSIVE、涨跌停、交易时段。勿同时又手写insert_order同一合约。

五、与 get_position 核对

拒单后策略内存目标仓若仍为满仓,应以get_position为准 将目标拉回实际,或set_target_volume(pos.pos)同步 task。

总结

报单被拒不可怕,可怕的是系统没有把拒单当成流程内事件,而把它当成“没发生/等会儿会好”。把statuslast_msgis_error的变化纳入固定处理链路:先在 wait_update 之后识别在途、结束与错单,再按类别做可恢复与不可恢复的分流,同时限制重报次数,避免把报单频率变成新的故障源。最后别忘了把拒单结果反向同步到策略目标(避免 state 还以为已经成交)。当异常都有对应的处理动作与可复盘日志时,你的交易系统才会真正稳定,而不是靠临场经验“猜下次会怎样”。

FAQ

1)刚下单 status 空?

正常,继续 wait_update。

2)部分成交算拒单吗?

volume_left 部分减少,按部分成交专题处理。

3)模拟盘 last_msg 一样吗?

口径接近,实盘以期货公司为准。

4)TqRiskRuleError?

风控规则触发,先查 risk_rule 配置。

风险提示

本文讨论报单处理,不构成投资建议。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 20:47:41

fre:ac音频转换器终极指南:免费开源的全能音频处理工具

fre:ac音频转换器终极指南:免费开源的全能音频处理工具 【免费下载链接】freac The fre:ac audio converter project 项目地址: https://gitcode.com/gh_mirrors/fr/freac 还在为音频格式不兼容而烦恼吗?想要将CD音乐库数字化却不知从何入手&…

作者头像 李华
网站建设 2026/6/8 20:45:39

大模型推理加速:从 KV Cache 到投机解码的工程实践

大模型推理加速:从 KV Cache 到投机解码的工程实践一、推理延迟的"最后一公里":模型能力够,但速度不够 大模型应用落地的最大瓶颈往往不是模型能力,而是推理延迟。一个 70B 参数的模型,单次生成可能需要 5-1…

作者头像 李华
网站建设 2026/6/8 20:43:46

同样的模型,多智能体效果天差地别:差距到底从哪来?

同样的模型,多智能体效果天差地别:差距到底从哪来?两家公司,用同一个Claude Opus 4,一家多智能体系统性能提升90.2%,另一家说多智能体"极其脆弱,成本是单智能体的15倍"。 模型一样&am…

作者头像 李华
网站建设 2026/6/8 20:43:01

别再只复现了!用Docker 5分钟搭建Drupal 7.x靶场,实战CVE-2018-7600漏洞

5分钟容器化实战:用Docker构建Drupal 7.x漏洞靶场与自动化复现体系当我在2019年第一次接触CVE-2018-7600漏洞时,花了整整两天时间在虚拟机里折腾LAMP环境。直到发现Docker这个神器,才明白原来漏洞学习可以如此优雅——不需要污染主机环境&…

作者头像 李华
网站建设 2026/6/8 20:42:55

macOS百度网盘限速破解:免费解锁70倍全速下载的技术探索

macOS百度网盘限速破解:免费解锁70倍全速下载的技术探索 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 你是否曾为百度网盘在macOS上的龟速…

作者头像 李华