03

微小优势,怎样积少成多

核心问题单个信号只比瞎猜好一点点,这点优势怎样才能积少成多?

视频 约 9 分钟图解 11 张

第一单元 · 第 3 / 3 节010203

视频

待发布

预计 2026-10-10 17:30(北京时间)发布,以实际公开时间为准。
视频发布后会嵌入在这里,并加入 Bilibili 合集“量化与机器学习入门”。 预计时长约 9 分钟。

学习目标

  1. 看清信号的量级:常见信号的平均 IC 只有零点零几;随便拿两只股票比一比,分数高的那只下个月跑赢的概率只有 52% 左右。
  2. 理解“弱优势 × 很多股票 × 很多期”为什么能累积成稳定的结果。
  3. 理解噪音这么大,为什么后面每一步都要严格检验。

图解讲义

一个月,三百个点
01一个月的三百只股票:横轴是低波动分数,纵轴是下个月的相对收益。看上去一团乱麻,拟合线几乎是平的。
用一个数,表示猜得准不准
02IC 看的是分数名次和收益名次有多一致:完全一致是 1,毫无关系是 0。真实的股票里一般只有零点零几。
每个月的 IC
03每个月的 IC 上下跳得很厉害,相邻两个月可以完全反过来。平均下来是 0.069,62% 的月份为正。
十个信号,都差不多
04十个常见信号的平均 IC 都在同一个量级。IC 0.07 平方一下,只能解释千分之五左右的差别。
很小的优势,靠次数
05一枚 52% 正面的硬币:抛一次和瞎猜差不多,抛三千次,赢多输少的概率到了 98.5%。
股票版的硬币
06股票版的硬币:两只股票比一比,分数高的那只跑赢的概率约 52%。同一个月的押注会一起赢、一起输。
月份越多,越稳
07IC 的累计平均:头两年忽正忽负,五年以后稳定在 0.05 到 0.08 之间。这就是积少成多。
弱信号的三个麻烦
08弱信号的三个麻烦:容易被运气骗,模型容易把噪声当规律,优势容易被成本吃掉。
合适的预期
09合适的预期:不指望某只股票一定涨,只指望一篮子股票平均好一点、多数月份 IC 为正。
练习:算一个信号的 IC
10练习:让 AI 生成模拟数据,算低波动和随机数的 IC,比一比两者有什么不同。
这一节,记住三件事
11单个信号很弱;微小优势靠次数积少成多;要防运气、噪声和成本。

交互演示合成数据

弱信号:优势、股票数与月份数

单次押注猜对的比例51.8%
赢的月份占比(5 次模拟)39%–58%
最终累计为正5 / 5
05010005101520253035累计成绩(百分点)月份

每个月押注 30 只股票,每只猜对的概率是 51.0%。一个月的成绩 = 猜对的比例 − 50%,曲线把它逐月累加;五条线是五次独立模拟,虚线是按平均优势应有的位置。把股票数和月份数往大拖,五条线会越来越聚拢。

让 AI 带你做模拟数据

把下面的提示词整段复制给任意一个 AI 助手。它会先生成一份模拟的股票月度数据(设定对每一节都一样),再带你把这一节的分析做一遍。数据是模拟的,具体数字会和视频不同,但应该看到同样的规律。

任务(第 03 节):看看一个信号到底有多弱。
1. 每个月算 lowvol 的 IC,画出 192 个月的 IC 柱状图,再算平均 IC 和 IC 为正的月份占比。
2. 生成一列和一切都无关的随机数当“信号”,同样算平均 IC 和正的占比。
3. 把五个特征的平均 IC 列成一张表。
提示词开头的模拟数据设定
请用 Python(numpy、pandas,需要时用 scikit-learn)带我做一个量化入门练习。先生成一份模拟的股票月度数据,随机种子用 42:

1. 300 只股票,192 个月(月份编号 0–191,相当于 16 年)。
2. 每只股票有一个固定的波动 sigma,从 0.05 到 0.13 均匀抽取;它的 beta = 0.5 + 5 × sigma。
3. 每个月有五个特征:mom(动量)、val(估值,越大越便宜)、size(规模)、lowvol(低波动)、prof(盈利)。
   - mom、val、size、prof:第 0 个月取标准正态;之后每个月,新值 = 0.9 × 上月值 + 0.44 × 标准正态。
   - lowvol = −sigma + 0.02 × 标准正态。
   - 每个月把五个特征各自在 300 只股票之间标准化(减平均、除以标准差)。
4. 每个月抽一个下个月的大盘收益 mkt_next ~ 正态(0.005, 0.05);再给五个特征各抽一个当月系数 = 基础系数 + 0.01 × 标准正态,基础系数依次是 0.004、0.003、0、0.005、0.002。
5. 下个月收益 ret_next = beta × mkt_next + Σ(当月系数 × 特征) + sigma × 标准正态。
6. 整理成一张长表:每行是一只股票的一个月,列为 month、stock、sigma、五个特征、mkt_next、ret_next。打印前几行和总行数。

后面统一的口径:
- IC:每个月,某一列和 ret_next 在 300 只股票之间的 Spearman 秩相关。
- 年化收益:把每月收益连乘,再按 12 / 月数 开方后减 1。
- 等权基准:每个月 300 只股票 ret_next 的平均。
- 第 m 个月这一行的特征在第 m 个月月底已知,标签 ret_next 是第 m+1 个月的收益。训练模型时,在第 s 个月月底打分,训练只用月份 ≤ s−2 的行(中间隔开一个月)。

接下来按我的要求一步一步做。每一步先用一两句话说明在做什么,再给代码和结果。

应该看到

  • lowvol 的平均 IC 大约 0.03–0.05,IC 为正的月份大约六成。单个月份的 IC 有正有负,跳得很厉害。
  • 随机数的平均 IC 接近 0,正的月份接近一半。
  • 五个特征里,mom、val、lowvol 的平均 IC 在 0.02–0.06;prof 更弱;size 接近 0,因为模拟设定里它的基础系数就是 0。

对不上的时候,把你的结果和这几条一起发给 AI,让它解释是哪一步出了问题。

自测

  1. IC 衡量的是什么?

    • A. 选中股票的平均收益
    • B. 信号的平均值
    • C. 每个月选了多少只股票
    • D. 每个月信号的排名和下个月收益的排名有多一致
    看答案

    答案 D。IC 是排名的相关程度:1 表示排得完全对,0 表示和瞎猜一样。

  2. 平均 IC 只有 0.04,为什么还可能有用?

    • A. 每次同时比几百只股票、连续很多个月,小的优势会累积起来
    • B. 因为它每个月都是对的
    • C. 因为 0.04 已经很高
    • D. 它没有用
    看答案

    答案 A。单看一个月,0.04 和噪声差不多;几百只股票、十几年加起来,优势才显出来。

  3. 一个毫无用处的随机信号,它的 IC 会是什么样?

    • A. 每个月都正好是 0
    • B. 一直是负的
    • C. 平均接近 0,但单个月份有正有负
    • D. 和 lowvol 差不多
    看答案

    答案 C。所以只看某一个月的 IC 没有意义,要看很多个月的平均和稳定程度。

常见坑

  • 期待高准确率
  • 把一次漂亮的结果当成实力

下一节

这些弱信号从哪里来?

04什么驱动股票收益?同一个月里,有些股票总比别的好一点,这点优势是从哪里来的?