撤单时长分层因子 (Cancel Duration Stratification Factors)

大白话:一笔单子挂了 0.5 秒就撤,和挂了 5 分钟才撤,背后是两种人。前者多半是算法在追价格,后者多半是人手在调整报价。所以把撤单按存活时长分成两层,再把两层的各种统计量相减,就得到这一族因子。这也是本篇里单个因子胜率最高的一族。

分组:快速撤单 vs 普通撤单

研报把所有撤单按存活时长(从下单到撤单的时间)切成两组:

组 因子前缀 含义
快速撤单 fast_ 存活时长短,研报认为对应「更高频的信息响应」
普通撤单 normal 存活时长长,对应「常规流动性调整」
部分撤单中的快速/普通 fastpartial_ / normalpartial_ 部分撤单的再分层

名字里同时出现两组的因子,公式形态基本都是「快速组统计量 − 普通组统计量」(_diff_),即看两组的行为差。也有一类是「快速组占总体的比例」,如 spec_share_within_normal_count 里的 share_within_normal。

第三层是 spec_,对应第 6 族「撤单时长分类特征」。研报章节标题写的是「撤单时长分类特征」,因子名前缀是 spec_。从 spec_share_within_normal_count(IC 5.44%,胜率 67.63%)和同族的 spec_norm_*_diff_* 命名看,spec 应该是短于普通撤单但长于快速撤单的一个「特殊」中间层,与 normal 组做比较。

这三层各自的时间分界是多少(比如快速是 <1 秒、普通是 >10 秒),全文没有给。

第 5 族:快速撤单与普通撤单对比(20 个)

只列 IC 绝对值超过 1% 的部分:

因子 原始 IC 胜率 5 日平滑 20 日平滑
fast_normal_avg_run_length_diff_vol 3.40% 78.77% 4.99% 6.59%
fast_normal_avg_run_length_diff_count 3.29% 74.15% 4.70% 6.25%
fast_normal_avg_cancel_vol_logratio −2.59% 66.74% −3.34% −3.52%
fast_normal_switch_rate_diff_vol −2.18% 69.53% −3.24% −4.33%
fast_normal_switch_rate_diff_count −1.74% 66.91% −2.47% −3.47%
fast_normal_entropy_diff_vol −1.59% 64.85% −3.39% −3.58%
fastpartial_normalpartial_entropy_diff_count −1.53% 59.61% −1.36% −1.88%
fast_normal_fill_ratio_diff 1.05% 60.33% 1.55% 1.87%
fast_normal_partial_rate_diff_count −1.08% 59.28% −0.71% 0.04%
fast_normal_partial_rate_diff_vol −0.10% 50.08% −0.26% −0.06%

其余十个(fast_normal_imb_diff_*、fast_normal_path_corr_*、fast_normal_change_corr_*、fast_normal_partial_response_did_*、fast_normal_entropy_diff_count)IC 都在 ±1% 以内。

最强的一只:平均连续长度差

fast_normal_avg_run_length_diff_vol 是全篇 IC 胜率最高的因子(原始 78.77%,5 日平滑 80.56%)。名字可以这样读:「快速撤单组与普通撤单组在平均连续长度(run length)上的差,按成交量加权」。

「连续长度」在撤单研究里通常指同方向订单连续出现的长度——连着挂(或连着撤)多少笔之后才转向。快速组和普通组在这个指标上的差,衡量的是两组在「下单节奏的持续性」上的分歧。

二十日平滑后 IC 升到 6.59%,比原始高近一倍。和时间结构族一样,这是慢变量。

第二强:切换率差

fast_normal_switch_rate_diff_vol(原始 −2.18%,20 日平滑 −4.33%)是研报封面图展示的因子——首页那张十分档收益柱状图,Q1 最高(约 16%),逐档单调下降到 Q10 转为负值(约 −2%)。「切换率」(switch rate)指在买、卖两侧之间来回切换的频率,快速组切换得比普通组更频繁,意味着算法在两侧同时报价、随价格微调方向。

方向为负:快速组比普通组切换得更勤 → 未来收益更低。这和活跃度族的方向一致。

第 6 族:撤单时长分类特征(15 个)

因子 原始 IC 胜率 5 日平滑 20 日平滑
spec_share_within_normal_count 5.44% 67.63% 5.31% 4.39%
spec_share_within_normal_vol 2.71% 61.06% 2.99% 2.48%
spec_norm_persistence_diff_vol 1.56% 65.24% 2.82% 3.44%
spec_norm_imb_diff_count 1.22% 61.62% 1.73% 1.41%
spec_norm_partial_rate_diff_vol −1.98% 64.35% −2.66% −2.73%
spec_norm_partial_rate_diff_count −3.23% 67.86% −3.61% −3.16%
spec_norm_change_corr_vol −3.94% 60.72% −5.11% −4.83%
spec_norm_change_corr_count −2.95% 56.94% −3.97% −3.82%
spec_norm_path_corr_vol −4.05% 60.95% −5.14% −4.80%
spec_norm_path_corr_count −2.52% 55.77% −3.42% −3.31%

核心:spec_share_within_normal_count

原始 IC 5.44%,是全篇原始 IC 最高的正向因子。「特殊撤单在普通撤单中的占比(按笔数)」——这个比例越高,说明撤单里「不长不短」那一档占比越大,未来收益越高。

名字里 within_normal 提示了分母是 normal 组,即这个比例的分母不是全部撤单,而是普通撤单。这一点如果读错,量纲就全变了。

(表中未列出的四个 spec_norm_*_diff_count / _vol 弱因子 IC 都在 ±0.7% 以内。)

相关性类因子的规律

spec_norm_change_corr_*(撤单变化的相关性)和 spec_norm_path_corr_*(撤单路径的相关性)四个因子清一色为负,且 5 日平滑后全部变强到 −3.4% 至 −5.1%。这类「相关性」因子比「占比」因子更需要对时序做平滑——相关性本身是二阶统计量,日频估计方差大。

这一族的独立性与内部结构

表 11 里这一族只有 spec_share_within_normal_count 上榜,与 Barra 风格因子的最大相关性是 杠杆因子 −19.8%,与市值因子只有 −0.8%。研报评价「其余因子与 Barra 各风格因子相关性均处于 30% 以下,具有较强的独立性」。

表 12 内部相关性里,它与活跃度族是 −10.2%、与时间结构族 5.9%–11.8%、与快速/普通对比族 12.9%。全部低于 20%——这是六个族里和其他族最不相关的一只,独立性最好。

多头组合表现

spec_share_within_normal_count(原始值) 是全篇全样本总收益最高的重点因子:

年份 总收益 年化 最大回撤 换手(单边) 年化波动 夏普 (rf=2%)
全样本 293.06% 20.03% 36.79% 64.96% 26.02% 0.69
2019 年 44.09% 48.64% 15.86% 61.52% 23.30% 2.00
2020 年 43.47% 43.26% 12.77% 64.01% 26.62% 1.55
2025 年 52.28% 52.02% 19.21% 70.23% 25.14% 1.99
2022 年 −10.97% −10.97% 32.47% 64.57% 26.29% −0.49
2026YTD −5.98% −10.39% 23.61% 70.12% 28.57% −0.43

年化波动 26.02% 是七只重点因子里最高的,比时间结构族(19.8%–20.8%)高出一大截。所以虽然总收益最高,夏普(0.69)只比别的略高一点,最大回撤 36.79% 也是最大。这是一只高收益高风险的因子。

fast_normal_avg_run_length_diff_vol(滚动 20 日)

年份 总收益 年化 最大回撤 换手(单边) 年化波动 夏普 (rf=2%)
全样本 167.95% 14.05% 36.20% 74.39% 24.62% 0.49
2021 年 25.59% 25.47% 13.16% 74.01% 17.75% 1.32
2025 年 30.44% 30.30% 13.25% 75.17% 17.62% 1.61
2022 年 −0.01% −0.01% 25.21% 67.46% 24.71% −0.08

注意:这只因子的IC 胜率是全篇最高的(78.77%),但多头组合的夏普只有 0.49,低于 IC 胜率远不如它的 spec_share_within_normal_count(0.69)。IC 强不等于多头组合好,这只因子尤其明显——高胜率 + 高换手(74.39%)吃掉了大部分收益。

fast_normal_switch_rate_diff_vol(滚动 20 日)

年份 总收益 年化 最大回撤 换手(单边) 年化波动 夏普 (rf=2%)
全样本 207.81% 16.18% 36.31% 75.35% 24.89% 0.57
2021 年 28.71% 28.58% 13.33% 75.42% 18.02% 1.48
2025 年 33.91% 33.75% 14.17% 79.93% 19.02% 1.67

换手 75.35% 是全篇最高的,最大回撤 36.31% 也接近最高。

与 HFQ 识别的区别

同是这个 wiki 里另一个用「订单存活期」的场景——HFQ 高频报价识别——但目的完全不同:

HFQ 识别(Shen 2023) 本篇撤单时长分层
用存活期干什么 识别哪些订单是算法下的 分层后比较两组的统计量
阈值 500 毫秒(人眼反应极限) 未给出
口径 看成交(被动方存活期) 看撤单(撤单时的存活期)
产出 一个 HFQ 订单集合 15 + 20 个连续因子

Shen (2023) 之所以从撤单口径改为成交口径,理由之一是A 股撤单成本高,撤单里带算法特征的比例低。本篇反过来直接用撤单做因子,没有讨论这个成本约束是否影响结论。

与其他页面的接口

Open Questions

  • 三层时长阈值全部未给出。 fast / spec / normal 的分界线是几秒到几秒?没有这个数字,任何因子都无法复现
  • run_length 的定义未给。 是连续同方向订单的长度,还是连续撤单的间隔?绩效对平滑极度敏感(3.40% → 6.59%),说明它可能本身就是个累计量
  • switch_rate 未定义。 买卖两侧切换的频率?成交/撤单之间的切换?
  • path_corr / change_corr 的相关对象是什么? 撤单路径与什么做相关——价格路径?成交量路径?未说明
  • persistence 未定义。 spec_norm_persistence_diff_vol 平滑后升到 3.44%,但「持续性」的口径完全不明
  • IC 与多头夏普的背离未讨论。 fast_normal_avg_run_length_diff_vol 胜率 78.77% 却只有 0.49 夏普、换手 74.39%,研报只展示多头组合,没有分析扣费后的净值
  • spec 与 fast / normal 的关系是从名字推的。 如果 spec 其实是「special」而非「specific duration」,整族的解读都要改

Sources