← 返回量化与 AI 投研概念库

信号衰减:好因子为什么会慢慢失效,公开的那些为什么基本没用了

最后更新 2026-08-18
R2 · 注意风险

有件事,做过一段时间的人几乎都撞见过。

你找到一套判断依据,历史数据上验过、留出来没碰过的那段也验过,上线。头几个月是对的。然后它开始变钝——不是突然崩掉,是那种一点一点往下漏的钝:以前挑出来的东西大多能跟着走一段,现在挑出来的走一半就停,再后来干脆一半对一半错。你翻代码,没坏;你翻数据,没缺。

或者另一个版本:你在网上看到一条被反复引用的经典规律,公式清清楚楚,你照着算了一遍,回测里那条曲线确实往上走,可只要把测试区间往近几年挪,它就贴着零躺平了。

这两件事的名字叫信号衰减。它不是 bug,不是运气,也不完全是「市场变了」这句万金油。它有相当明确的发生机制,而且这套机制一旦想通,你会顺带明白一件更大的事:为什么这行会卷成今天这样。

先说人话:一条被走烂的近路

先不谈市场。谈上班路。

你每天开车上班,走主干道,堵。某天你绕进小区后面,发现有一条小路能避开三个红绿灯,省十分钟。这十分钟是实打实的,而且它的来源很具体:这条路知道的人少

你挺高兴,跟同事说了。同事跟部门群说了。半年后你再走那条路,早高峰比主干道还堵——路口窄,会车要让,反而更慢。

现在关键的问题来了:那十分钟是怎么没的? 不是路变了,路一米没动;不是你变笨了,你还是那么开。是走的人变了。你的优势从来不是「这条路好」,而是「这条路好,且大部分人不知道」。后半句才是真正在给你发钱的那一句,可它偏偏是你最容易忘掉的那一句。

再补一刀:这条路最堵的那一天,往往正是它被最多人夸的那一天。夸得越响,人来得越多,好处消失得越快。你听说它,本身就是它快不行了的证据之一。

信号衰减说的就是这件事:一个能带来超额收益的规律,它的收益来源是「少数人知道且少数人在做」,而一旦它被更多人知道并且真金白银地做,这个来源就会被消耗掉。吃掉它的不是别的,正是使用它的钱。

投资层:一个规律的一生

把这条路的故事换成市场,大致会经历四段。这里先把两个词落地:因子,就是把「这票好」这类说法压成每只股票每天一个可计算的数值的规则(细节见 因子);超额收益,指的是扣掉市场整体涨跌之后还剩下的那部分。

第一段,存在但没人看见。 某种偏差长期挂在那儿——可能是人的情绪造成的,可能是某类资金被规则限制不能去做,也可能只是数据处理起来太麻烦没人算。这段时间它的收益最厚,因为几乎没人在跟你抢。

第二段,被发现、被写下来。 有人算出来了,写成论文,或者做成产品讲给客户听。这一步是分水岭:复现成本从「需要洞察」变成了「需要抄一遍公式」。

第三段,被大规模部署。 这是收益被吃掉的主战场,而且吃法有点反直觉。假设某个特征确实预示着未来三个月上涨,现在一大批人都知道了,他们会怎么做?在特征出现的当天就买。于是价格当天就被推上去了——原本要用三个月慢慢兑现的那部分涨幅,被压缩成了发现当天的一次性跳涨。对于第二天才进场的你来说,未来三个月的收益已经被人提前预支走了。你买到的是一个已经把好消息计入价格的东西。

这就是为什么衰减常常不是「变得不准」,而是「还是准的,但赚不到了」。方向没错,钱没了。

第四段,只剩风险暴露。 到这一步,这个因子还在,还能解释一部分涨跌,但它不再提供超额收益了。它变成了一种风险特征:你按它买,等于把自己绑在某一类股票上,跟着这类股票的整体沉浮走。这时候你赚的其实是承担某种共同波动的报酬,不是聪明钱。

四段之外还要加一句诚实的话:很多因子并没有走完这一生,它们从第一段就不存在。 后面会说怎么把这两件事分开。

系统层:机器是怎么盯住衰减的

概念讲到这里,看看真实的量化系统在这件事上做了什么动作。挑几处能说明问题的。

第一处:IC 天生就该是一条时间线,不是一个数

判断因子有没有用,量化里最基础的量是 IC——大白话讲就是「今天这个因子排出来的名次,和后来真实涨跌的名次,对得上吗」(怎么读它见 IC 与 IR)。

值得注意的是它在代码里长什么样。qlib 里算 IC 的函数,是按日期分组、每个交易日各算一个相关系数,返回的是一条按天排列的序列;它的可视化模块也是直接把这条序列画成随时间走的散点图。换句话说,这套工具从设计上就不打算给你一个「这个因子的 IC 是多少」的单一答案。

这个设计细节,恰恰是监测衰减的入口:你要看的不是这条线的平均值,是它的中枢有没有在往零漂。 一个平均值不错的因子,完全可能是前三年很好、后两年归零拼出来的平均。把它压成一个数,你就把衰减这件事亲手抹掉了。

麻烦的地方在于,这条线本身抖得厉害——单日的 IC 又小又噪,连续几个月难看,可能是衰减,也可能只是运气差。所以「多长的窗口下滑才算衰减」没有标准答案,这个判断本质上是在问:你想识别的下滑幅度,相对于这条线本身的噪音有多大?幅度越小,你需要的观察时间越长。任何给你一个固定期限当铁律的说法,都跳过了这个问题。

第二处:把「衰减期」写进因子的身份证

Vibe-Trading 的因子注册表里有个我觉得很值得抄的设计:每个因子的元数据里有一个必填字段叫 decay_horizon(衰减期),而且 schema 对它有取值范围约束——你注册一个新因子,就得回答「这个信号大概能管多久」。

这个字段的具体取值不重要(不同版本的上下界也不一样),重要的是它被做成了必填。它逼着写因子的人在一开始就承认:这东西有保质期,请标注。仓里有的因子甚至在备注里专门说明「实际的信号周期比这里声明的更长,是因为字段上限压着」——这种别扭本身就说明,这个约束是被认真执行的。

对照一下多数人的做法:找到一个好东西,然后默认它永远好,出问题了才回头找原因。差别不在技术,在预期。

第三处:把「衰减到零」和「本来就是假的」分开

这是我在这批源码里看到的最有价值的一处。

Vibe-Trading 的严格版因子评测器,会把一个因子的检验结果分成几个桶,其中三个桶是这样的意思:样本外还站得住的、只在训练区间成立的、样本外符号反过来的。它的注释专门解释了为什么要把「反号」单独拎出来,而不是跟前面的混在一起——因为一个在样本外掉头的因子,是「训练期那点收益是假象」的最强证据之一,研究员需要看到这件事,而不是让它混进「良性地衰减到零」里。

这条区分,正是你判断自己遇到了什么的钥匙:

  • 缓慢下滑、方向不变 → 更像真衰减。它曾经是真的,只是被越来越多的钱磨薄了。
  • 样本外直接躺平或反号 → 更像它从来就没成立过。你在历史数据上反复试探试出来的那个「好看」,出了样本自然原形毕露,这类事情有专门的名字(见 数据窥探)。
  • 某个具体时点断崖式失效 → 更像规则变了。交易制度、涨跌幅限制、做空工具、结算方式、信息披露要求,这些一旦调整,靠某种摩擦活着的信号会当场死掉,跟拥挤不拥挤没关系。
  • 不是这个因子的问题,是整台机器学的世界变了 → 那属于另一个话题,讲的是模型本身的老化和重训(见 模型会过期)。

把这四种混为一谈,你的应对必然是错的:真衰减该做的是减仓和找新来源,假 alpha 该做的是承认没有、别再调参,规则变化该做的是重新理解这个市场,模型老化该做的是重训流水线。用错药,比不吃药更费钱。

为什么公开的因子基本没用了

这是本篇最想说清楚的一段,而且它有个很具体的活标本。

二〇一五年,有人把一百零一条公式化的 alpha 写成论文发表出来,公式一条条列在附录里。今天你打开开源的因子库,会看到这一百多条被原样实现成了代码文件,函数名、注释、引用页码一应俱全,任何人装个包就能在自己的数据上算出来。学术那一支也是同样的路径:经典的价值、动量、规模这些因子,公式、参考文献、构造细节全都摆在明面上,甚至连「这里用的是价格代理而不是原始定义」这种妥协都写在注释里。

现在把第三段那个机制套上去。一条公式被公开之后:

  • 复现成本趋近于零。 不需要洞察,不需要独家数据,抄一遍就行。
  • 实现方式高度雷同。 大家用同一份公式、同一个开源实现、同一批公开数据、同样的换仓节奏,算出来的持仓自然高度重合。
  • 进出场时间也雷同。 同一天买、同一天卖。买的时候一起把价格抬高,卖的时候一起把价格砸低——这一点最要命:拥挤不只是让收益变薄,还会让回撤变深,因为出门的时候大家挤在同一个门口。

再叠上一层:这条公式还必须能装下越来越多的钱。一个策略能容纳多少资金而不把自己的收益吃掉,是有上限的(见 流动性与容量)。公开的因子往往吸引的是最大规模的那批钱,触到容量天花板的速度也最快。

学术界有一支实证研究专门测这件事:把因子按论文发表的时间点切开,比较发表前后的表现。方向上的结论是一致的——发表之后普遍变差。具体的幅度各家研究口径不同,这里不引用数字,但方向本身已经足够说明问题。

所以「公开的因子基本没用了」这句话,准确的说法应该是:它们作为超额收益的来源基本失效了,但作为理解和度量的工具仍然有用。 你可以用它们描述一个组合的性格(偏价值还是偏成长、偏大盘还是偏小盘),可以用它们当基准来衡量别人给你的东西是不是只是把公开因子重新包装了一遍。这个用途反而更实在——它能帮你识破一大批「我们的策略很独特」的说辞。

顺着这条线往前推一步,就是这行军备竞赛的全部逻辑。既然公式一旦公开就会被吃掉,那还想保有优势就只剩三个方向:找别人没有的数据做别人来不及做的速度用别人复现不出的复杂度。三个方向都要花钱,而且门槛只会越来越高。第三个方向还有个自带的陷阱——复杂度越高,越容易在历史数据上试出一个假的东西来,最后你以为自己造了新武器,其实只是造了一个更精致的幻觉。

对个人的现实含义,不是让你去参加这场竞赛,而是提醒你别在别人的主场上打。大资金去不了的角落、需要长时间持有才能兑现的东西、需要忍受难看波动的东西,这些地方的拥挤程度天然低——不是因为你更聪明,是因为对方进不来或者不愿意进来。

失效边界与常见误用

把所有亏钱都归给「信号衰减」。 这个词太好用了,好用到会变成借口。亏钱的原因还有一大堆:仓位太重、成本吃掉了利润、执行走样、单纯的运气差。先按机制排查,别直接跳到最体面的那个解释。

一衰减就换。 这是最常见也最贵的错法。因子的表现本来就抖,你把正常的低谷读成衰减,换掉它去找下一个,而下一个又是你在同一份历史数据上试出来的——于是你在「试探—上线—误判—再试探」里转圈,每转一圈都在给数据窥探交学费。要区分「这一段难看」和「中枢在下移」,前者要等,后者要动。

以为衰减等于归零。 更常见的结局是变薄而不是消失。一个变薄的因子在扣掉手续费、印花税、冲击成本之后,可能刚好从正的变成负的——衰减的临界点不在收益为零那里,在你的成本线那里。你的成本越高,这条线抬得越高,因子在你手上「死」得越早。同一个因子,对不同的人有不同的死期。

把「公开的没用」推成「秘密的就有用」。 完全不成立。绝大多数不公开的东西,不公开的原因是它经不起检验,而不是它太值钱。保密只是没被证伪的必要条件,不是有效的证据。

只监测收益,不监测拥挤。 收益是滞后的,等它难看的时候你已经在里面了。相对领先一点的迹象包括:这类做法开始被广泛谈论、同类产品扎堆发行、组合和市面上大部分同行高度重合、在市场急跌时出现难以解释的同步回撤。这些都不是精确指标,但比等收益曲线告诉你要早。

🚧 避坑

「它以前很有效」不是一个理由,是一个警告。 一个规律被你听说、被写进教科书、被做成产品卖,这条路径上的每一步都在削薄它的收益。判断它现在还有没有用,要看的是它现在的拥挤程度和你现在的成本,不是它历史上多风光。用历史业绩当买入理由,恰恰是衰减机制最喜欢的那类行为。

小结

  • 信号衰减的本质:超额收益的来源是「少数人知道且在做」,钱一涌进来,这个来源就被消耗掉了。吃掉规律的正是使用规律的钱。
  • 典型路径是四段:存在但没人看见 → 被发现被写下来 → 被大规模部署(收益被提前压缩进发现当天)→ 只剩风险暴露、不再给超额。
  • 监测的第一原则:IC 要当成一条按天的时间线看中枢是否在往零漂,而不是压成一个平均数;「多久算衰减」没有标准答案,取决于你想识别的幅度相对噪音有多大。
  • 一定要把「真衰减(缓慢下滑)」「本来就是假的(样本外躺平或反号)」「规则变了(某个时点断崖)」「模型老化」四件事分开,用错应对方式比不应对更贵。
  • 公开的因子基本丧失了作为超额收益来源的价值——复现成本为零、实现雷同、进出同步、最先撞上容量天花板;但它们作为度量和识破话术的工具依然好用。
  • 这套机制直接解释了行业的军备竞赛(更新的数据、更快的速度、更复杂的模型),也解释了个人为什么不该去参赛,而该去找拥挤度天然低的地方。

一句话记住这篇:你听说的那条近路,正因为你听说了,所以快不好走了。

本文所引源码与文献均来自上述快照与公开出版物,是阅读代码与文档得出的机制说明,不是运行结果;具体行为请以你手上那个版本为准。回 量化与 AI 投研概念库 看其它概念各自在说什么;本站内容为投资教育,不构成任何投资建议,边界见 免责声明

内容有错、看不懂、或想看下一篇?告诉我们 →

本文为投资教育整理,不构成任何投资建议;不荐个股/基金、不预测点位、不承诺收益。关键数据与结论请结合权威来源自行验证,并见风险免责声明