3. 频率统计口径设计

报撤单频率异常统计的第一道关口不是算法,而是口径。同一批委托流水,按秒级窗口统计可能显示“瞬时爆发”,按日级窗口统计却完全正常;把“撤单率”定义为撤单笔数除以报单笔数,还是除以成交笔数,结论可能截然相反。口径设计不统一,后续的阈值、告警和监管报送都会失去可比性。本节围绕三个要素展开:时间窗口怎么选、频率指标怎么定义、以及如何保证口径一致。

一、时间窗口:三种粒度对应三类问题

时间窗口决定了“频率”的分母尺度,也决定了能捕捉到什么形态的异常。实践中常用三个层级:

  • 秒级窗口(如1秒、5秒):用于识别瞬时脉冲式报撤,例如同一账户在1秒内报单200笔、撤单190笔。这类行为在分钟级统计中会被平均掉,必须靠秒级窗口暴露。缺点是噪声大,行情剧烈波动时正常策略也会出现高频脉冲,需要配合持续性条件使用。
  • 分钟级窗口(如1分钟、5分钟):用于识别持续性的高频报撤,是交易所异常交易监控中最常用的粒度。它既能过滤瞬时噪声,又能反映策略的稳定行为特征,适合作为告警主口径。
  • 日级窗口:用于刻画账户的整体行为画像,如全日报单总量、全日撤单率、报撤单笔数占市场比重。日级指标不适合做实时告警,但适合做账户分层、趋势对比和监管报送。

窗口选择的核心原则是“异常形态决定窗口”:脉冲型异常用秒级,持续型异常用分钟级,画像型分析用日级。实际系统中通常三级并存,秒级做实时拦截,分钟级做告警,日级做统计报表。

二、频率指标:三个指标各有分工

频率指标不能只用一个数字概括,至少需要三个互补指标:

指标计算方式反映的问题
报单频率窗口内报单笔数 ÷ 窗口时长(笔/秒或笔/分钟)下单速度是否超出正常水平
撤单频率窗口内撤单笔数 ÷ 窗口时长撤单动作是否过于密集
撤单率窗口内撤单笔数 ÷ 窗口内报单笔数 × 100%报单中有多大比例被撤回,反映“报而不成”的程度

三个指标必须配合看。举例来说(以下为教学假设数据):某账户在1分钟窗口内报单600笔、撤单540笔,则报单频率为10笔/秒,撤单频率为9笔/秒,撤单率90%。单看报单频率10笔/秒可能还在阈值内,但撤单率90%说明绝大多数报单并未意图成交,属于典型的“虚假报单”特征。反过来,若撤单率高但报单频率很低(如1分钟报5笔撤4笔),则更可能是正常的策略调整,不构成高频异常。

撤单率的分母应统一使用“报单笔数”而非“成交笔数”。用成交笔数作分母会在低成交场景下产生极大值甚至除零,且无法反映“报而不成”的行为本质。

三、口径一致性原则

口径一致性包含四个层面,任何一层不一致都会导致统计结果不可比:

  1. 计数对象一致:一笔“报单”指一条委托记录还是指一次委托指令?废单、撤单失败、部分成交后的撤单是否计入?必须在口径文档中明确。建议以“进入撮合系统的有效委托记录”为计数单位,废单单独标记、不计入报单笔数。
  2. 时间归属一致:以委托进入系统的时间戳还是交易所回报时间戳归属窗口?跨窗口边界的委托如何处理?建议统一使用交易所回报的委托时间,并采用左闭右开区间 [T, T+窗口) 归属,避免边界重复计数。
  3. 窗口对齐一致:分钟级窗口是按自然分钟(00:00–00:01)切分,还是按滑动窗口滚动计算?自然分钟便于聚合报表,滑动窗口更灵敏。同一告警规则内必须固定一种,不可混用。
  4. 账户维度一致:按单一账户统计还是按实际控制关系账户组合并统计?高频报撤常通过多账户分散实施,若只按单账户统计会系统性低估。建议告警口径按账户组,画像口径可保留单账户。
报撤单频率统计口径设计框架 时间窗口层 秒级窗口 捕捉瞬时脉冲报撤 分钟级窗口 识别持续性高频行为 日级窗口 账户画像与趋势对比 频率指标层 报单频率 报单笔数 ÷ 窗口时长 下单速度 撤单频率 撤单笔数 ÷ 窗口时长 撤单密集度 撤单率 撤单笔数 ÷ 报单笔数 报而不成程度 口径一致性原则 计数对象一致 有效委托记录 时间归属一致 左闭右开区间 窗口对齐一致 固定切分方式 账户维度一致 账户组合并

四、落地时的关键细节

把口径写成可执行的规则,还需要处理几个容易踩坑的细节。第一,撤单失败的处理:撤单请求发出但被拒绝(如已成交),不应计入撤单笔数,否则会虚增撤单率。第二,部分成交后的撤单:一笔委托部分成交后撤销剩余数量,应计为1笔撤单,但需在明细中标记“部分成交撤单”,避免与全撤混淆。第三,窗口滑动方式:若采用滑动窗口,需明确步长(如每5秒滚动一次、窗口长度1分钟),步长越小越灵敏但计算开销越大,建议实时告警用5秒步长、离线分析用1秒步长。

一个可参考的口径定义示例(教学假设):

指标名称:分钟级撤单率
统计窗口:自然分钟,左闭右开 [T, T+60s)
计数对象:进入撮合系统的有效委托记录
报单笔数:窗口内新报委托数(不含废单)
撤单笔数:窗口内撤单成功数(含部分成交撤单)
撤单率 = 撤单笔数 / 报单笔数 × 100%
账户维度:按实际控制关系账户组合并
告警条件:撤单率 ≥ 80% 且 报单笔数 ≥ 100

这段定义把窗口、计数、公式、维度和触发条件全部固定下来,任何人按此实现都能得到一致结果。口径文档应当随规则版本化管理,规则调整时保留历史版本,确保回溯分析时能还原当时的统计逻辑。

口径变更必须评估对历史数据可比性的影响。例如把撤单率分母从“报单笔数”改为“报单笔数+改单笔数”,会导致所有历史阈值失效,需同步重算基线并公告。

总结来说,时间窗口按异常形态分层选择,频率指标三件套配合判读,一致性原则从计数、时间、窗口、维度四个层面锁定。三者共同构成频率统计的口径底座,后续的阈值设定、告警分级和异常认定都建立在这一底座之上。