量化选股学习笔记(八):新信息比新模型有用
上一篇发现,更复杂的模型挖不出更多信号。这一篇换了个方向:加入一个和老因子不相关的新信息——盈余公告后漂移(PEAD)。它在老因子全部失效的大公司里依然有效,只做多的等权组合每月跑赢基准约 0.5%;但它对合成 IC 的提升很小,而且这几年仍然跑输按市值加权的指数。
这是我学习量化选股的第八篇笔记。上一篇比较了十种模型,结论是:模型不重要,18 个因子里的信号,任何合理的方法都能找到,更复杂的模型也找不到更多。要突破,需要新的、和现有因子不相关的信息。这一篇就去找这样一个信息。代码仍然由 Claude Code 编写,我负责提问、读代码和决定方向。
本文是学习记录,不构成任何投资建议。
2026-10-23 更新:做到第九篇时发现市值数据有一个错误(见第四篇第七课的最后),修正后重跑了全部结果,本文的数字和图已经更新。SUE 的结论基本不变:在 100 亿美元以上的公司里,等权组合每月仍跑赢基准约 0.5%。
选哪个新信号
我没有特别好的想法,所以让 Claude 先选一个。它选的是盈余公告后漂移(Post-Earnings-Announcement Drift,PEAD):
- 公司每季度公布财报时,市场会拿实际数字和分析师的预期比较。超出预期,股价当天会涨;低于预期,股价当天会跌。
- PEAD 的发现是:股价当天的反应不够充分,之后几周甚至几个月还会沿着同一个方向继续“漂移”。常见的解释是投资者对新信息反应不足。
- 这是学术界最早、最经典的异象之一:Ball 和 Brown(1968)最早发现,Bernard 和 Thomas(1989)系统研究过。
选它的理由:
- 讲的是一个新故事。原来的 18 个因子描述的都是“公司是什么样的”:赚不赚钱、贵不贵、波动大不大。PEAD 描述的是“刚刚发生了什么”。
- 用到全新的数据:分析师的一致预期,这是之前完全没用过的信息。
- 有一个现成的问题可以检验:有研究认为,近年来 PEAD 在大公司里已经基本消失(Martineau,2022)。
FMP 的入门套餐正好有一个接口,一次调用就能拿到一家公司的全部历史:公告日期、实际和预期的每股收益(EPS)、实际和预期的营收,最早可以追溯到 2002 年。6,000 多个代码,按每分钟 150 次的速度下载了约 40 分钟,0 个错误。
第一课:数据要先检查,再使用
和第四篇重建数据集时一样,下载回来的数据不能直接用。这次检查出了几件重要的事:
覆盖率:大公司几乎全覆盖。市值 100 亿美元以上的公司,99% 都有分析师预期;微型股只有 64%,跟踪小公司的分析师少得多。
公告日期比财报日期更早。和证监会接收 10-Q 的时间比较:54% 是同一天,12% 晚一天(收盘后公告、第二天早上提交 10-Q,苹果就是这样),31% 晚 2 到 60 天(先发新闻稿,过几周才提交正式报告)。所以这个数据能比第四篇的财报日期更早拿到消息。
分析师用的 EPS 和财报 EPS 不一样。两者排序相关性是 0.88,但只有一半相差在 5% 以内。分析师用的是剔除一次性项目的“调整后 EPS”。所以计算意外时,必须用 FMP 的实际值减 FMP 的预期值,两者口径相同,不能拿财报里的 EPS 去减。
大约六成公司“超预期”。每年都有 57–64% 的公司超预期,只有 32–38% 低于预期。原因是公司会通过业绩指引,把分析师的预期引导到“刚好能超过”的位置(Matsumoto,2002)。超预期是常态,所以信号不能看“超没超”,要看“超了多少”,并和同一个月的其他公司比较。
营收预期有系统性的口径错位。比如 AECOM 连续几年的预期营收都只有实际的一半:分析师预测的是“净服务收入”,实际值记的是“总营收”。金融、能源、公用事业、房地产行业最严重,2020 年的数据最差。最后的处理是:营收意外超过 ±50% 的设为缺失,EPS 意外作为主信号。
还有一个容易出错的细节:拆股。英伟达 2024 年按 1 拆 10 拆过股,如果拆股前的 EPS 是按旧股数算的,而股价是复权后的,相除就会错 10 倍。检查后发现,FMP 的历史 EPS 已经按拆股调整过了(英伟达当时公布的 $5.16 被记成 0.52),口径一致。
第二课:三个信号,和一次事件研究
从这份数据里能做出三个信号:
| 信号 | 计算 | 衡量什么 |
|---|---|---|
| EPS 意外(SUE) | (实际 EPS − 预期 EPS) ÷ 公告前的股价 | 盈利超出预期多少 |
| 营收意外 | 实际营收 ÷ 预期营收 − 1 | 营收超出预期多少 |
| 公告期异常收益(EAR) | 公告前 1 天到后 1 天,股票收益减去市场收益 | 市场自己怎么“打分” |
三个信号之间的相关性只有 0.2 左右。一个例子是苹果 2026 年 7 月的财报:EPS 超预期,营收符合预期,股价却比市场多跌了 8.5%。市场关心的可能是业绩指引或利润率,这些信息 EPS 一个数字反映不出来。
数据检查有一个盲点:上面比较日期时,只能发现 FMP 把日期记晚了的情况。记晚了只会让信号晚一点用上,不会造成泄漏;真正危险的是记早了,那等于偷看未来。
用事件研究可以检查这一点:把公告按 EPS 意外分成五组,看超预期最多和最少的两组,公告前后每一天的股价表现。

反应几乎全部集中在公告当天和第二天。第二天的反应更大,是因为多数公司在收盘后发布财报。如果有很多日期记早了,反应就会推迟到第 2、3 天出现,但实际没有。日期是对的。
图上还能看到,第 2 天之后两条线仍在缓慢分开:消息公布以后,股价还在沿着意外的方向继续走,这就是“漂移”。
最后把信号挂到月度数据上,规则很严格:只用在当月最后一个交易日之前、公告窗口已经结束的公告。比如苹果 1 月 29 日收盘后发布财报,窗口要到 1 月 30 日(当月最后一个交易日)才结束,所以 1 月底不用这次公告,2 月才开始用。
第三课:老因子在大公司里失效,SUE 不会
用第六篇的方法给三个信号打分,并在四个不同大小的股票池里分别计算:

这张图是这一篇最重要的发现:
- 老因子随公司变大而大幅失效。低波动在全部股票里 IC 是 0.101,到 100 亿美元以上只剩 0.021,已经不显著了。这就是上一篇里,只买大公司时模型跑输“全买”的原因。
- SUE 几乎不变:全部股票 0.026,100 亿美元以上 0.023(t 值 3.1)。在最大的公司里,它和最好的老因子一样强。
- 营收意外和 EAR 和老因子一样,只在小公司里有效。
SUE 的 IC 看起来很小,这是因为它每个季度才更新一个数字。它的价值不在于有多强,而在于在哪里有效。
漂移能持续多久?

大约两个月。这和老因子很不一样:第六篇发现,财报类因子半年后还保留约 90% 的预测力。
第四课:新信息,为什么只让 IC 提高了一点点
SUE 和 18 个老因子的平均相关性只有 0.06,老因子之间是 0.24,连最独立的动量也有 0.21。它确实是一个新故事,不是动量换了个说法。
但把它加进上一篇的模型,合成 IC 只从 0.0970 提高到 0.0976。提高是真实的(t 值 3.1,68% 的月份变好),只是很小。
这个结果其实可以提前算出来。先把 SUE 里能被老因子解释的部分去掉,剩下真正“新”的部分,IC 大约是 0.010。两个不相关的信号合在一起,合成 IC 是:
√(0.097² + 0.010²) ≈ 0.0975
一个 IC 0.010 的独立信号,推不动一个 0.097 的合成分数。要让合成 IC 明显提高,比如到 0.14,需要一个独立部分的 IC 有 0.10 左右的新信号,那是 SUE 的十倍。
第五课:但它能做到老模型做不到的事
IC 衡量的是全部股票的排序,而只做多的投资者只持有最好的 20%。一个信号可以对整体排序帮助不大,却能挑出一批表现好的股票。
最后一步,我们事先定好 20 个只做多的组合:5 种打分方法 × 2 个股票池 × 2 种加权方式,测试期是 2023 年 2 月到 2026 年 9 月,每月调仓,扣交易成本,结果全部报告。下表是每月相对同口径基准的超额收益:
| 打分方法 | 10 亿以上,等权 | 100 亿以上,等权 | 100 亿以上,按市值加权 |
|---|---|---|---|
| 上一篇的合成分数(18 个因子) | −0.19% | −0.08% | −0.26% |
| 只用 SUE | +0.32%(t 2.0) | +0.51%(t 2.9) | −0.10% |
| 只用投入资本回报率 | +0.08% | +0.14% | +0.51%(t 2.2) |
- 等权时,SUE 有效:100 亿美元以上的公司里每月跑赢 0.51%,70% 的月份领先,2023 到 2026 年每一年都领先。用 Fama-French 五因子加动量做回归,它的超额收益大部分不能被已知因子解释,而且略微偏向反动量。
- 上一篇的合成分数在所有格子里都落后。
- 按市值加权时 SUE 无效。按市值加权的组合主要由少数巨头决定,SUE 的效果在“较小的大公司”里。在巨头里有效的反而是投入资本回报率,也就是质量因子。
第六课:和谁比,结论会不一样

以 100 亿美元以上的公司为例:
| 年化 | |
|---|---|
| SUE 选出的 Q5(等权,扣成本) | +18.3% |
| 全部公司,等权 | +11.7% |
| 全部公司,按市值加权(类似指数基金) | +20.4% |
它大幅跑赢等权持有,却仍然跑输直接买指数。两个比较都是事实,看哪个取决于你本来会持有什么:本来会等权持有大公司的人,每年多赚约 7 个百分点;本来会买 S&P 500 指数基金的人,这三年反而少赚了。原因是 2023 到 2026 年少数巨头涨得最多,而等权组合在每家公司上投的钱一样多,分到巨头的就少了。
和学界的对照
- PEAD 依然存在(Ball 和 Brown 1968;Bernard 和 Thomas 1989):公告后的漂移在 2021–2026 年仍然能看到,持续约两个月。
- 大公司里的 PEAD:Martineau(2022)认为它在大公司里已经基本消失。在我们的数据里,100 亿美元以上的等权组合仍然有效,但只有 44 个月,而且按市值加权时无效,和“在最大的公司里消失”并不矛盾。
- 营收意外(Jegadeesh 和 Livnat 2006)和公告期反应(Chan、Jegadeesh 和 Lakonishok 1996):在我们的数据里只对小公司有效,对大公司没有提供新信息,EAR 在大公司里甚至出现反转。
- 超预期是常态(Matsumoto 2002):每年约六成公司超预期。
踩过的坑
- 同名的数字,口径不同:分析师的“实际 EPS”是调整后口径,和财报 EPS 只有一半接近;营收预期和实际营收经常不是同一个东西。第五篇遇到过研发费用的口径问题,这次又遇到了。
- 列名冲突:月度数据里本来就有一列“营收”(财报里的),合并“营收意外”时两列重名了。
- 前 10 名最不可靠:最后我让模型列出 SUE 最高的 10 只股票,排在前面的几乎都是实际 EPS 达到预期 10 倍、甚至由亏转盈的公司。这通常是卖资产、投资重估等一次性项目,不是经营上的超预期。还有一只股价 0.53 美元、市值却有 364 亿美元,是数据错误(第九篇时修正了一大批这样的市值,但这一只的数据自相矛盾,现在仍然修不了)。回测之所以仍然有效,是因为策略等权持有几百只股票,个别错误的影响很小。只买前 10 名,等于把钱集中押在最可疑的那几只上。
- 事后选择:PEAD 这个信号是事先根据文献选的,但“只用 SUE 做多”这个组合,是在看过 2021–2026 年的结果(包含测试期)之后才定下的。20 个组合里有 4 个 t 值大于 2,纯靠运气大约是 1 个。结果比运气好,但谈不上压倒性。
结论和下一步
- 新信息比新模型有用。上一篇换了十种模型,结果都一样;这一篇加入一个 IC 只有 0.02 的新信号,就在老模型失效的大公司里找到了效果。
- IC 小不等于没用。SUE 对合成 IC 的贡献可以忽略,但用它单独挑选的大公司组合,每月跑赢等权基准约 0.5%。
- 数据工作仍然占大头。拆股调整、口径错位、公告日期验证、严格的时间规则,任何一项出错,结论都会被带偏。
最可靠的检验是往后看:下一步做模拟盘,每月月底按规则生成组合并记录下来,用之后的真实收益检验。那时候结果还没有发生,任何过拟合和偷看都不可能。