4. 信号标准化与去噪

盘口失衡指标本身是一个“量纲依赖”很强的数值。以常见的订单簿失衡度为例,若定义为 OFI = (BidSize − AskSize) / (BidSize + AskSize),取值落在 −1 到 +1 之间,看似已经归一化,但真正用于收益分层检验时仍会遇到三类麻烦:不同股票的盘口深度、最小报价单位、活跃度差异巨大,导致同一数值在不同标的上的经济含义不同;同一股票在开盘、午间、尾盘的量级分布明显漂移;偶发的挂单撤单、冰山单刷新、涨跌停封单会造成极端值,把分层边界拉偏。因此,本节的核心任务不是“再算一个指标”,而是把原始失衡信号加工成横截面可比、时序稳定、对异常值稳健的标准化信号,为后续按信号强弱分组、检验各组收益差异打下基础。

一、先明确标准化的目标与参照系

标准化要回答的问题是:某只股票在某一时刻的失衡值,相对于“它自己平时的水平”和“同期其他股票的水平”,究竟算强还是弱。这里涉及两个参照系,必须分开处理并保持全文一致:

  • 横截面参照:在同一时间截面上,把所有股票(或同一股票池内)的原始失衡值放在一起比较,消除市场整体情绪造成的共同偏移。例如某日全市场买盘普遍偏强,若不做横截面处理,几乎所有股票都会被判为“强买盘”,分层就失去区分度。
  • 时序参照:对单只股票,用它过去一段时间的分布来度量当前值偏离了多少,消除个股自身的量级差异和日内节律。

工程上通常先做时序平滑与异常值处理,再做横截面标准化,最后可选做一次时序标准化。顺序不能随意颠倒:若先做横截面标准化再平滑,极端值会污染整个截面的均值与标准差;若先做时序标准化再横截面处理,则个股分布参数本身已被异常值扭曲。

二、异常值处理:先“止血”再谈标准化

盘口数据的极端值来源明确:涨跌停板上的巨量封单、集合竞价阶段的虚拟撮合挂单、机构冰山单的瞬时刷新、以及数据源偶发的字段错位。处理原则是识别而非删除,保留记录但替换数值,避免样本选择偏差。

推荐做法是对每只股票、每个交易日的原始失衡序列做中位数绝对偏差(MAD)截断。相比 3σ 法,MAD 对厚尾分布更稳健。设原始序列为 x_t,计算:

med   = median(x)
mad   = median(|x − med|)
scale = 1.4826 × mad          # 使 MAD 在正态下与标准差可比
lower = med − k × scale
upper = med + k × scale
x_clip = min(max(x, lower), upper)   # k 常取 3~5

示例(合理假设,非实测):某股票某日原始 OFI 序列中位数为 0.08,MAD 为 0.05,则 scale≈0.074,取 k=4 得截断区间约 [−0.22, 0.38]。若某时刻因涨停封单出现 OFI=0.95,则被截断为 0.38,同时在该样本上打“截断标记”,便于事后统计极端值出现频率。若某只股票当日 MAD 接近 0(盘口长期几乎无变化,如停牌前后),应改用全市场同日截面 MAD 作为替代尺度,避免除零或过度放大。

三、时序平滑:压低噪声但保留信号转折

逐笔或逐秒的失衡值抖动很大,直接分层会让同一股票在相邻时点反复跳组。平滑的目标是提高信噪比,但不能把真实的盘口转向抹平。常用手段有三类,选择取决于信号频率与调仓周期:

  • 滚动均值:窗口取 5~20 个采样点,实现简单,但对突变响应滞后,且对残留极端值仍敏感。
  • 指数加权移动平均(EWMA):s_t = α·x_t + (1−α)·s_{t−1},α 取 0.1~0.3 时等效窗口约 7~19 个点,计算量小、可实时更新,适合盘中滚动计算。
  • 中位数滚动滤波:窗口 5 点取中位数,对脉冲型噪声抑制最好,代价是计算稍重、转折处略钝。

实操建议:先用 MAD 截断,再做 EWMA 平滑,α 与后续检验的持有周期匹配——若按 30 分钟收益分层,采样为 1 分钟,则 α 取 0.1 左右(等效约 10 分钟记忆)较为合理。平滑窗口一旦确定,应在整个回测期内固定,不得按结果反复调参,否则标准化本身就成了过拟合来源。

四、横截面标准化:让不同股票站到同一把尺子上

平滑后的信号 s 在同一时间截面上做 z 分数标准化:

mu_t    = mean(s_i,t)      # 截面内所有股票
sigma_t = std(s_i,t)
z_i,t   = (s_i,t − mu_t) / sigma_t

这一步消除了市场共同偏移,使 z 值表示“相对同期同池股票的强弱”。需要注意三点:其一,股票池必须固定且可交易,停牌、ST、上市不足 N 日的标的应剔除,否则截面统计量被污染;其二,sigma_t 过小时(如全市场盘口极度清淡)应设下限或跳过该截面,防止 z 值被放大到几十倍;其三,若信号分布明显厚尾,可改用截面排序百分位 rank/(N+1) 映射到 (0,1),再线性变换到近似正态区间,稳健性更好但损失了绝对幅度信息。

完成横截面标准化后,若仍需跨日比较个股自身强弱,可再对每只股票的 z 序列做一次滚动时序标准化(窗口如 20 个交易日),得到“双重标准化”信号。是否加这一步取决于检验设计:做纯截面分层(每日分组比较次日收益)时,单次横截面标准化已足够;做时序择时或跨期稳定性检验时,双重标准化更有意义。

失衡信号标准化与去噪处理链 原始失衡序列 OFI = (B−A)/(B+A) 逐笔 / 逐秒采样 ① 异常值截断 MAD 稳健尺度 med ± k·1.4826·MAD ② 时序平滑 EWMA α≈0.1 或 5 点中位数滤波 ③ 横截面标准化 z = (s − μ_t)/σ_t 同池同截面比较 标准化信号 z 用于收益分层检验 截断示意(合理假设示例) −0.22 0.08 0.38 0.95 极端值截断至 0.38 中位数 med 上界 upper 分层结果(示意) 强买盘组 z > 1.0 中性组 −1 ≤ z ≤ 1 强卖盘组 z < −1.0 各组样本量需均衡后再比较收益

五、可比性校验:标准化是否真的“生效”

标准化做完不能直接进入分层,必须先做三项校验,否则后续收益差异可能来自标准化缺陷而非信号本身。

  1. 截面分布校验:逐日检查 z 值的均值是否接近 0、标准差是否接近 1,并观察偏度与峰度。若某日标准差远大于 1,说明当日存在未被截断的极端值或股票池异常;若均值长期偏离 0,说明截面计算混入了非交易标的。
  2. 个股稳定性校验:对每只股票统计其 z 值的时序标准差。若某股票 z 值长期集中在 ±0.2 以内,说明它几乎从不进入极端分层,可能是流动性过低导致信号被平滑抹平,应在股票池中降权或剔除。
  3. 分层均衡校验:按 z 值分位数(如 20%/60%/20%)分组后,检查各组样本数量是否稳定、组间原始 OFI 均值是否单调。若出现“强买盘组原始均值反而低于中性组”的倒挂,通常是平滑窗口过长或截断过狠所致。
把标准化参数(MAD 的 k、EWMA 的 α、股票池规则、σ 下限)写成一份固定配置并版本化管理。任何一次调整都应记录调整原因与影响范围,避免在收益检验结果不理想时回头改参数——那会让分层检验退化为曲线拟合。

六、一个可复用的参数配置样例

下表给出一份可直接参考的配置样例,参数值属于教学示例与合理假设,实际使用需按标的池与采样频率重新标定:

环节参数示例取值作用与判断依据
采样采样频率1 分钟快照与持有周期匹配,过快则噪声占比高
异常值MAD 倍数 k4k 越小越稳健,但会削弱真实极端信号
异常值MAD 退化阈值MAD < 1e−4 时改用截面 MAD防止清淡标的除零放大
平滑EWMA α0.1等效记忆约 10 个采样点
截面股票池剔除停牌、ST、上市不足 60 日保证截面统计量干净
截面σ 下限0.02低于下限则跳过该截面
分层分组分位20% / 60% / 20%保证各组样本量可比

按上述流程处理后,输出的是逐股票、逐时点的标准化信号 z。它已经消除了个股量级差异、市场共同偏移和脉冲噪声,可以直接送入下一阶段的收益分层检验:按 z 分组、统计各组未来收益均值与显著性、并检查分层单调性。需要强调的是,标准化只保证“可比”,不保证“有效”;信号是否真的包含收益信息,仍要由分层检验的结果来回答,而标准化的质量决定了这个回答是否可信。