撤单数据与部分撤单 (Cancellation Data and Partial Cancels)

大白话:成交数据记的是「谁真的买了」,撤单数据记的是「谁曾经想买、后来又缩回去了」。后者是前者的镜像,而且量级一样大——A 股每成交 1 手,几乎同时就有 1 手被撤。这页讲两件事:为什么撤单值得单独看,以及「部分撤单」为什么比「全额撤单」信息更厚。

一笔限价单的三种结局

投资者提交一笔限价单之后,结果只有三种:

flowchart LR
    A[提交限价单] --> B[进入盘口排队]
    B --> C[全额成交]
    B --> D[未成交即撤回<br/>全部撤单 nonpartial]
    B --> E[部分成交]
    E --> F[撤回剩余未成交部分<br/>部分撤单 partial]

三种结局中,只有「全额成交」进入了成交数据。另外两条分支只存在于撤单数据里。而撤单在 Level 2 逐笔订单流里是一个明确的订单类别(委托 / 成交 / 撤单),不像快照那样只能看到一个累计数。

为什么必须用 Level 2 逐笔

数据层级 有什么 对撤单研究的意义
Level 1 快照 三秒一笔,5 档申买申卖价量 看不到撤单
Level 2 快照 10 档、买一卖一前 50 笔委托、买卖撤单笔数/数量/金额(仅上交所) 只有聚合数,没有单笔
Level 2 逐笔 毫秒时间戳、逐笔序号、频道代码、买卖订单号、订单类别 可以逐笔判定撤单

所以本篇的因子全部基于 Level 2 逐笔订单数据。要注意的是:沪市 L2 快照本身就带 WithdrawBuyNumber / WithdrawSellNumber 等撤单统计(见 Level-2 档位与委托队列),深市快照没有,必须自己从逐笔委托流的 A/D 记录做差分。

撤单有多大:和成交一样大

研报图 2 给出的年度对比(全市场日均,单位亿股):

年份 撤单量与成交量之比 备注
2019—2021 约 90% 成交量高于撤单量
2022 起 基本持平 两条柱等高
2024 后 略高于 100% 撤单量反超成交量

「每成交 1 手,几乎同时有 1 手被撤销」——这句话是整篇研报的立论基础。如果一个市场的撤单量和成交量一样大,那么只看成交量,等于忽略了市场里一半的订单行为。

撤单行为的两种解释,研报都承认:

  • 被动撤单:挂上去没成交,等得不耐烦或者价格走开了,撤掉重挂
  • 主动策略:挂单是为了探测市场深度、测试对手盘意愿,或者信息到达后快速修正报价

第二种解释让撤单从「失败的交易」变成了「情报行为」——挂一笔大单看有没有人跟,本身就是一次信息采集。

部分撤单:先成交、再评估、后终止

部分撤单(partial)指订单先成交了一部分,剩余部分被撤回。它的占比很低:

指标 量级 趋势
部分撤单笔数占比 约 3% 2019—2026 缓慢下行
部分撤单数量占比 约 5%–8% 2019 年约 7.8%,2024 年降到约 5.0%,2026 回升到约 5.5%

两个数字的差本身就是信息:量占比稳定高于笔数占比,意味着发生部分撤单的订单平均规模大于全额撤单的订单,部分撤单更集中在大额订单上。

研报对这个现象的解释是「决策链更完整」:报价挂出去之后确实触发了成交,但成交这件事没有改变投资者对后续价格的判断,所以剩下那部分撤掉。这个过程同时包含了两层信息——对已实现成交价的认可,和对未来盘口风险的重新评估。全额撤单只有后一层。

所以 partial 在因子命名里是一个反复出现的前缀,对应「部分撤单特征」这一整族(12 个因子)。

方向性:撤单越活跃,未来收益越低

这是本篇最稳定的一条经验规律。撤单活跃度与规模族的九个因子,IC 均值全部为负:

因子 IC 均值 IC 胜率
diag_log_cancel_count −9.24% 72.87%
rel_count_per_active_minute −9.19% 73.09%
rel_active_minute_share −8.42% 75.88%
diag_log_cancel_vol −7.33% 71.53%
rel_vol_per_active_minute −7.18% 71.09%
diag_log_cancel_vol_tot −7.09% 69.36%
rel_cancel_vol_entropy −4.95% 69.08%
rel_cancel_count_entropy −1.80% 58.02%
rel_avg_cancel_vol −0.53% 53.13%

研报没有给出这条规律的经济解释。一个自然的读法是:撤单活跃意味着挂单方对当前价格没把握、反复调整报价,这种不确定状态在截面上对应更差的后续表现。但这是本 wiki 的推测,不是原文结论。

与本 wiki 其他页面的接口

Open Questions

  • diag_ 前缀是什么? 表 2 里有 diag_log_cancel_count / diag_log_cancel_vol / diag_log_cancel_vol_tot 三个,但全文没有定义 diag。从名字推测是对角线(diagonal)或诊断(diagnostic),无法确定
  • rel_ 的相对基准是什么? rel_count_per_active_minute、rel_active_minute_share、rel_avg_cancel_vol 都带 rel_,相对的是什么——自身历史均值?当日成交量?同业?全文未说明
  • active_minute 的判定标准。 有成交的分钟算活跃分钟,还是有委托就算?这直接决定了 rel_count_per_active_minute 的分母
  • 部分撤单占比逐年下降(2019 年约 7.8% → 2024 年约 5.0%)的原因未讨论。可能是市场结构变化(如 2021 年后的交易机制调整),也可能是订单规模分布变化,研报没有展开
  • 负向规律没有经济解释。 「撤单越活跃未来越差」只有数字,没有机制假说

Sources