收益率噪声偏离因子 (Return Noise Deviation, nos)
大白话:把一只股票一天 239 个分钟收益率各自减掉当日均值、再除以当日标准差,得到一堆标准化后的数。如果买这只股票的人很多、每人下的单都很小,这堆数应该长得像标准正态分布。如果它不像正态分布——某个值特别离谱、或者中间尖两头厚——说明当天有某个人(或某一笔钱)的买卖显著影响了价格。偏离得越远,
nos越大。
从「测量误差应该是正态的」推出来
模型起点是最普通的几何布朗运动。设股价 P_t 满足
\frac{dP_t}{P_t}=\mu\,dt+\sigma\,dW_t
W_t 是标准维纳过程。离散到分钟,R_t=\Delta P_t/P_t,并假设同一只股票在同一天内的分钟收益率独立同分布。把观测到的收益率减去它的期望,再除以标准差,定义为收益率噪声:
e_t=\frac{R_t-\mathbb E[R_t]}{\sigma}\sim N(0,1)
这一步的依据是 Laplace (1810) 的经典结论:若一个误差由大量微小量叠加而成,它就趋于正态。对应到盘口——每一分钟的价格变动由这一分钟内所有投资者的买卖单撮合而成;对流动性好的股票,任何单个投资者对分钟收益率的影响都微乎其微,于是这些微小影响叠加出来的噪声就是正态的。
反过来,一旦噪声偏离正态,只有两种解释:
- 流动性差。股票半天不成交,价格长期停在正负一个基点内,收益率序列被大量零值和跳变占据,自然不是正态。
- 存在大额投资者。某个人的单子对价格的影响远超其他人。只要他没法把自己完美伪装成散户(拆单、分批买进也做不到统计上无痕),他的影响就会在噪声分布上留下痕迹。他影响越大,噪声越偏离正态。
两种解释都指向同一件事:这只股票的风险更高,市场要求的风险溢价也更高。所以 nos 越大,预期收益越高,因子按升序使用(做多高 nos,做空低 nos)。
表 5:nos 与「大额投资者 × 流动性」的四种组合
| 有大额投资者 | 无大额投资者 | |
|---|---|---|
| 流动性大 | nos 较大,风险溢价较高 | nos 小,风险溢价低 |
| 流动性小 | nos 大,风险溢价高 | nos 较大,风险溢价较高 |
这张表说明 nos 不是纯流动性指标,也不是纯「庄家探测」指标,而是两者的叠加:同样是流动性差的股票,有没有大额资金会把 nos 从「较大」推到「大」。
怎么算:两个估计量
研报的做法统一是:用样本均值与样本标准差代替总体均值和标准差,算出标准化噪声
x_t=\frac{R_t-\bar R}{s_R},\qquad t=1,\dots,N
N 是当日分钟数(239)。再对 \{x_t\} 这个经验分布计算「与标准正态的偏离程度」。研报称「衡量随机变量与正态分布偏离程度的统计方法有很多」,选了 2 种,分别命名为 nos_gs 与 nos_sw,用两者的一致性来检验估计的稳健性。
两者平均时序相关 0.906,说明「收益率噪声偏离」这个量本身估得稳,不依赖具体用哪种偏离度量。实测 nos_gs 更好,全文以它为主。
注意:公众号节选版没有给出这两个估计量的显式公式,只给了上面的建模设定。两个后缀的含义(
gs/sw)原文未定义。从命名和「正态性检验」的语境推测,sw很可能是 Shapiro-Wilk 检验统计量(文献里常缩写为 SW),gs则可能是另一种拟合优度统计量;但这只是推测,复现时需查研报全文。
绩效
日、周、月三种调仓频率都测了(表 6,n_s=15):
| 频率 | 因子 | 多空年化 | 多头 | 空头 | 夏普 | 最大回撤 | 胜率 | ICIR | IC | 日换手 |
|---|---|---|---|---|---|---|---|---|---|---|
| 日度 | nos_gs |
61.10% | 12.91% | 36.59% | 9.50 | −9.80% | 74.03% | 0.7781 | 5.12% | 21.77% |
| 日度 | nos_sw |
54.51% | 14.61% | 28.95% | 7.94 | −9.86% | 69.99% | 0.5798 | 4.41% | 19.74% |
| 周度 | nos_gs |
32.41% | 15.43% | 7.67% | 5.88 | −2.49% | 79.94% | 0.9422 | 5.33% | 22.93% |
| 周度 | nos_sw |
32.29% | 17.86% | 6.17% | 5.46 | −2.91% | 77.99% | 0.7889 | 5.50% | 22.12% |
| 月度 | nos_gs |
16.47% | 9.67% | −0.42% | 3.07 | −4.01% | 83.33% | 1.0019 | 6.17% | 5.05% |
| 月度 | nos_sw |
17.02% | 10.54% | 0.25% | 1.66 | −12.71% | 71.43% | 0.6266 | 4.93% | 5.86% |
一个很清楚的结构:频率越低,多空收益越依赖多头端。日度 nos_gs 的空头贡献 36.59%、多头只有 12.91%;到月度,空头变成 −0.42%,多头 9.67% 撑起全部收益。这与本系列常见分布因子「几乎全靠空头」的形态不同。
十分组分层明显(图 8):多空权重几乎完全对称,多头前 10% 平均权重 25.80%,空头前 10% 平均 −29.82%。多空净值最大回撤 9.80%,出现在 2015 年附近。
特异性:只和峰度因子撞车
表 7 给出 nos_gs 与 7 个常见分布因子的时序相关:
| 对照因子 | 相关系数 |
|---|---|
real_var |
0.334 |
rtn5_mean |
0.446 |
rtn_kurt |
0.726 |
rtn_skew |
0.334 |
rv_down |
0.414 |
rv_umd |
0.431 |
rv_up |
0.560 |
除 rtn_kurt 外全部低于 0.5。与峰度的高相关有直观解释:两者都对「分布尾部有多少极端值」敏感——峰度是四阶矩,nos 是整体形状偏离,一只当天被单笔大单拉出长尾的股票,两个指标都会跳。研报的归因是「二者对因子时序收益的波动较为敏感,风险特征可能相似」,但强调只有 nos_gs 有更好的超额与更高的多空夏普(9.50 对 8.70)。
把 nos_gs 对 rtn_kurt 正交化,得到 nos_gsn(表 8):
| 版本 | 多空年化 | 多头 | 空头 | 夏普 | 最大回撤 | 胜率 | ICIR | IC | 日换手 |
|---|---|---|---|---|---|---|---|---|---|
nos_gs |
61.10% | 12.91% | 36.59% | 9.50 | −9.80% | 74.03% | 0.7781 | 5.12% | 21.77% |
nos_gsn |
44.87% | 16.75% | 18.19% | 7.37 | −10.16% | 71.98% | 0.6722 | 3.99% | 34.14% |
多空掉三分之一,但多头反而从 12.91% 升到 16.75%——说明被峰度拿走的主要是空头端的信息,nos 真正独有的部分是「挑出能涨的股票」。代价是换手率从 21.77% 升到 34.14%。
两个实例:nos 到底在测什么
研报取了 2021-08-31 当天 nos_gs 最大和最小的两只股票做对照。
最大值:北巴传媒 (600386.SH)。 当日换手率 3.20%,收涨 4.65%,交易不活跃。分时线在 11:30 前后十分钟内涨了 9.37%,当天绝大多数正收益都来自这十分钟;收益率直方图是一个极窄的尖峰加一根孤立的长条。流动性差 + 疑似有大额资金 → nos 最大。
最小值:长城科技 (603897.SH)。 当日换手率 4.54%,收跌 8.35%,交易明显更活跃,直方图接近正态。虽然开盘前三分钟跌了 3.52%,但这种极端变化只出现一次,其余时间都很「正态」。流动性好 + 不太可能有大额资金 → nos 最小。
这两个例子说明 nos 抓的不是「跌得多」或「涨得多」,而是收益率的形状是否被少数几笔交易扭曲。长城科技当天跌 8.35%,nos 却是全市场最小。
样本外:2021-09 至 2022-01
样本内数据只到 2021-08,作者把数据更新到 2022-01-14 做样本外检验。时间窗口选得有针对性:2021 年 9–12 月私募量化基金出现较大回撤,如果 nos_gs 在这段时间仍有效,说明它能提供增量 Alpha。
| 区间 | 多空年化 | 多头 | 空头 | 夏普 | 最大回撤 | 胜率 | ICIR | IC | 日换手 |
|---|---|---|---|---|---|---|---|---|---|
| 全时段 (2014-08 — 2022-01) | 61.44% | 12.73% | 37.26% | 9.63 | −9.80% | 73.94% | 0.7829 | 5.08% | 21.76% |
| 样本外 (2021-09 — 2022-01) | 67.05% | 9.21% | 49.91% | 12.72 | −1.33% | 71.43% | 0.9750 | 4.20% | 21.34% |
样本外四个多月里多空年化 67.05%、夏普 12.72、最大回撤只有 1.33%,且多头与多空净值都没有明显回撤。需要提醒的是样本外只有约 4.5 个月,这个夏普的置信区间很宽,不能当成长期水平;全时段夏普 9.63 更可信。
与本 wiki 的接口
- 上游是 收益率分布因子。 同一篇报告先列 7 个常见分布因子,再提出
nos;nos的施工流程(Box-Cox 正态化 → 市值行业中性化 → 按中位数分两侧加权 → 15 日平滑)与那 7 个完全一致,差别只在「日内指标怎么算」。 - 下游是系列三。 极端收益因子与投资者心理承受能力 把
nos_gs当作基准对照因子:exRtn_maxVal与它时序相关 0.76、截面相关 0.58,是那篇里唯一偏高的组合。这说明「极端收益」与「噪声偏离」共享一部分「当天有大资金」的信息;区别在于nos看整个分布形状,exRtn只看两端极值。 - 与流动性的关系。
nos声称同时测「流动性差」与「有大额投资者」,与本 wiki 的 市场深度与冲击反比 是同一件事的两个入口:那边从订单簿深度估「一笔大单会推歪多少价」,这边从成交结果的分布形状反推「今天有没有大单」。nos不需要订单簿数据,只需要分钟收盘价,这是它相对深度类指标的优势。 - 系列四的 成交量分布因子 是同一框架换数据(价 → 量)的产物;把两边的因子放在一起看,可以看到「分布信息」这条路能挖出的独立性大致到什么程度。
- 研报摘要见 兴业金工《高频研究系列二》,研报 entity 见 entities/Xingye 2022 Return Distribution Factors。
Open Questions
nos_gs/nos_sw的显式公式缺失。 节选版只给到 e_t=(R_t-\mathbb E R_t)/\sigma 与「用样本均值、标准差代替得到 x_t」,随后直接跳到两个命名。偏离度到底用哪种统计量(拟合优度、W 统计量、矩组合),以及nos是取原值、取对数还是取分位数,都无法从本文确定。这是复现时最大的障碍。gs/sw后缀未定义。 若sw确为 Shapiro-Wilk,则 N=239 时该检验完全可用;但原文没有任何说明。x_t的样本范围是「当天 239 分钟」还是「多天合并」未写清。 文中说「同一支股票在某天内的分钟收益率是独立同分布的」,暗示按日计算;但若按日算,nos就是一个日频指标,再经 15 日平滑成因子——两步平滑的关系原文没交代。- 零收益分钟怎么处理未说明。 低流动性股票大量分钟收益率为 0(价格用上一笔成交填补),这些 0 会同时压低标准差、把分布推向尖峰,可能让
nos与「不活跃」高度绑定。这正是研报所说nos也是流动性因子的原因,但也意味着它可能有一部分是「换手率」的代理;原文没有做控制换手率后的检验。 - 单调性只在两端验证。 表 5 只给了四种组合的定性排序(大 / 较大 / 小),没有横截面回归或分组均值,
nos与流动性、大额投资者之间是否真的单调,缺少直接证据。 - 样本外区间太短(约 4.5 个月),夏普 12.72 不宜外推。
Sources
- summaries/202201-xingye-return-distribution-factors/202201-xingye-return-distribution-factors — 兴业金工《高频研究系列二—收益率分布因子构建》,2022-01-23