第 6 课 · Multi-Factor Portfolio

多因子组合管理

先弄清每个因子能预测多久、晚几天还剩多少效果,
再决定调仓与权重。

IC 研究:2019—2024 样本内 · 组合回测:2019—2026.05 全样本
多因子
组合
Horizon
IC
Lagged
IC
调仓
周期
因子
权重
相关性
与绩效
真实实验 · 核心因子池

最终使用了哪六个因子?

trend252_skip2212-1 趋势质量

观察过去约一年、跳过最近 22 日,并用斜率和 R² 同时衡量趋势方向与平滑度。

样本内 H=5 IC:0.051
mom_skip252_2212-1 跳月动量

计算 close[t−22] / close[t−252] − 1,只看首尾涨幅,不评价中间路径是否平滑。

样本内 H=5 IC:0.041
trend2222 日趋势评分

对近 22 日对数价格做回归,用年化斜率 × R²,偏向短期且走得稳的趋势。

样本内 H=5 IC:0.051
quantile_reversion6060 日分位偏离

衡量价格相对 60 日中位数偏离多远;统一复评后采用方向修正值。

样本内 H=5 IC:0.047
upday_volume20上涨日成交量占比

近 20 日成交量中,上涨日占得越多,说明上涨时承接更积极。

样本内 H=5 IC:0.057
breakout_persistence20突破持续性

把近 20 日创新高频率与价格斜率结合,判断突破能否持续。

样本内 H=5 IC:0.047
这次扩展:在原 4 个因子上,明确加入 trend_score(period=22)mom_skip(total=252, skip=22)
期限结构 · 固定 Lag = 0

Horizon IC:预测期限测试

IC(H, 0)=corr(Ft, Rt,H)
Rt,H=Pt+1+H / Pt+1 − 1
t今天计算因子
t + 1收益窗口开始
t + 1 + H收益窗口结束
改变 Horizon1、3、5、10、20、40、60 日累计收益。
回答什么?今天的因子更擅长预测短期,还是中长期?
不回答什么?信号晚几天使用是否仍有效。
为什么可能先升?单日收益噪声大,累计窗口能把分散的小优势聚起来。
为什么后来会降?窗口太长会混入新的市场信息,原信号被稀释。
Horizon IC 的峰值不是最佳调仓周期。调仓还要看信号衰减、排名变化、换手与成本。
第 6 课 · 互动演示

拉长收益窗口,IC 会怎样变?

真实结果 · 样本内 2019-01-02—2024-12-31

不同因子的预测期限不一样

六个核心因子的样本内 Horizon IC 曲线
先升后降上涨日成交量:H=1 为 0.022,H=10 升到 0.074,H=60 回到 0.015。
长期趋势的期限更长trend252_skip22 从 H=20 的 0.093,继续升到 H=60 的 0.179。
不能只报一个 H同一因子在 1 日和 20 日预测的是不同问题。
曲线只使用 2019-01-02—2024-12-31 样本内数据;每个点同时保存 ICIR、HAC t 值、置信区间与有效日期数。
第 6 课 · 学员互动

Horizon IC 最高的那一档,能当调仓周期吗?

某个因子的 Horizon IC 在 H=10 最高,H=5 和 H=20 都更低。

这能直接说明应该每 10 天调一次仓吗?请选「能」或「不能」,并写一句理由。

先独立想 45 秒:写出判断,再写一句理由。看完题再点答案。

查看答案收起答案
不能。
Horizon IC 只回答:今天的因子更擅长预测多长的累计收益。峰值不是调仓周期。调仓还要看信号衰减、排名变化、换手和成本。
信息衰减 · 固定 Horizon

Lagged IC:延迟衰减测试

IC(H, L)=corr(Ft, Rt,H,L)
Rt,H,L=Pt+1+L+H / Pt+1+L − 1
t今天计算因子
t + 1 + L推迟 L 日后开始
t + 1 + L + H收益窗口结束
改变 Lag同一个 t 日信号,推迟 0、1、2、3、5…60 日使用。
回答什么?今天的排序等几天以后,还剩多少预测能力?
关键观察降至初值 50%、首次转负、失去显著性。
Lag 0现在用原始信息最完整
Lag 5等一周检查还能保留多少
Lag 20等一个月可能已换成另一段行情
第 6 课 · 互动演示

同一个信号,晚几天再用还剩多少?

真实结果 · 样本内 · 四个 Horizon

期限变长,与信号衰减不是一回事

样本内四个 Horizon 下的 Lagged IC 曲线
H=5,Lag 5 仍有信息六个因子的 IC 仍在 0.034—0.054;不是过 5 天就归零。
Lag 15—20 开始分化短期因子大多转负,两个 12-1 动量仍保持约 0.047—0.063。
两条轴要分开读Horizon IC 可以上升,同时 Lagged IC 随等待下降。
第 6 课 · 学员互动

Horizon 变长了,晚几天再用也会更好吗?

一个因子的 Horizon IC 随 H 从 5 升到 20。有人说:那把这个信号推迟 15 天再用,效果也会更好。

这种说法对吗?请选「对」或「不对」,并写一句理由。

先独立想 45 秒:写出判断,再写一句理由。看完题再点答案。

查看答案收起答案
不对。
拉长 H 是把收益窗口变长;晚几天再用是改变 Lag。两条轴要分开读:期限变长时,等待仍可能把同一条信号耗掉。
因子相关性 · 样本内 2019—2024

因子相关性

六个核心因子的样本内相关性热力图

怎么看相关性?

逐日 Spearman每天比较 ETF 横截面排名,再对日期取平均。

252 日滚动相关检查重复关系是否随市场阶段变化。

Top 3 Jaccard直接计算最终选中名单的重叠程度。

真实结果

两个 12-1 因子很像相关 0.87;Top 3 Jaccard 0.68。
22 日趋势也有重复与突破持续相关 0.77,Top 3 重叠 0.75。

六个因子不代表六份独立信息,组合时要避免重复加票。

相关性高不等于自动删除。它只提醒我们“可能重复”,最终仍要检查样本外增量价值。
第 6 课 · 学员互动

两个因子相关 0.87,要立刻删掉一个吗?

样本内,两个 12-1 因子的相关约 0.87,Top 3 名单也很像。

下一步应该直接删掉其中一个吗?请选「应该删」或「还不够」,并写一句理由。

先独立想 45 秒:写出判断,再写一句理由。看完题再点答案。

查看答案收起答案
还不够。
相关高只提示可能重复,不等于自动删除。还要看去掉一个之后,样本外有没有少掉真正的增量价值。
组合前处理 · 同一天横向比较

两种截面归一化:Rank 与 Z-score

原始趋势因子量纲还没统一同一天的 5 只 ETF
ETF A10
ETF B20
ETF C30
ETF D40
ETF E100

ETF E 是明显的极端值。直接相加时,它会因为数值大而主导组合。

方式 1 · RANK只保留先后顺序百分位 = 名次 ÷ 5
A0.2B0.4C0.6D0.8E1.0

更稳健:五个名次等距排列,100 不会比 40 获得额外优势。

方式 2 · Z-SCORE保留相对距离z = (x − 40) ÷ 31.6
A−0.95B−0.63C−0.32D0.00E1.90

信息更多:不看某只 ETF 的因子值绝对是多少,而是看它在“当天这批 ETF”里,比平均水平高或低了多少个标准差。

本课默认用 Rank:18 ETF 截面较小,排名对极端值更稳健。只有当“数值距离确实有经济含义”,并且已经去极值时,再考虑 Z-score。
第 6 课 · 互动演示

极端值在 Rank 和 Z-score 里差在哪?

第 6 课 · 学员互动

原始值是 100,Rank 会让它远超 40 吗?

同一天 5 只 ETF 的原始因子值是 10、20、30、40、100。

若用 Rank 百分位合成,100 会不会因为数值大很多,就比 40 多占很多优势?请选「会」或「不会」,并写一句理由。

先独立想 45 秒:写出判断,再写一句理由。看完题再点答案。

查看答案收起答案
不会。
Rank 只保留名次,五个名次等距;100 和 40 只差一个名次。Z-score 才会保留 100 与 40 之间的距离。
课堂基准 · 先从简单方法开始

等权排名与等权投票

方法 1等权排名

每个因子先变成每日横截面百分位,再用 1/N 合成。

组合前统一做 Rank 截面归一化:只保留名次,避免量纲差异或极端值主导等权平均。

统一方向百分位排名平均Top 3
方法 2等权投票

每个因子各选 Top 3。票数相同,用等权综合排名破局。

组合前统一做 Rank 截面归一化:投票只关心是否进 Top 3,同票时也该按名次而非数值距离破局。

各自 Top 3数票排名破局Top 3
共同优点透明、稳定、没有动态估计误差,是必须保留的基准。
主要差别排名保留强弱距离;投票更离散,更强调“有几个因子支持”。
后面的 IC、ICIR、最大 ICIR,只改变“因子说多大声”;Top 3、资产等权、5 日调仓与交易成本都保持一致。
第 6 课 · 互动演示

等权排名和等权投票,会选出同一批吗?

第 6 课 · 学员互动

刚进前三三次,和只拿一次第一,投票留谁?

3 个因子,最终选 Top 3。
甲:三个因子都排第 3。
乙:一个因子排第 1,另外两个排最后。

等权投票更可能留下甲还是乙?请选一个,并写一句理由。

先独立想 45 秒:写出判断,再写一句理由。看完题再点答案。

查看答案收起答案
更可能留下甲。
投票只数「进没进该因子 Top 3」:甲 3 票,乙 1 票。排第 1 还是第 3,这一步不看差多少。
方法 3 · 近期有效性

IC 权重:近期更有效的因子多说一点

wICi,tmax(0, IC(252,H=5)i,t)
IC(252,H=5)i,t=mean(ICH=5i,t−251:t)
对应 H=5跟课堂基准调仓周期使用同一个预测期限。
滚动 252 日至少 126 个有效 IC 才开始动态估计。
延迟 6 日t 日信号的 5 日收益到 t+6 才完整发生。
非负 + 上限不做负权;单因子最多 50%;失败回退等权。
t 日因子值已知

但未来 5 日收益未知。

t+1 → t+6收益逐步发生

这段时间不能偷看 IC。

t+6 日后IC 才能进入权重

动态权重保持因果。

品种打分仍做 Rank 截面归一化:IC 权重只改变“哪个因子更重要”,不让原始量纲和极端值混进这个判断。
两层权重 · 别混在一起

IC 权重是因子的权重,不是品种仓位

观点层 · 三因子示例IC 因子权重

根据各因子过去的 IC,决定它们在综合评分里各说多大声。

因子 A 50%因子 B 30%因子 C 20%
选择层合成 ETF 综合得分

得分j = 0.5×RankA,j + 0.3×RankB,j + 0.2×RankC,j

综合排序 选 Top 3权重作用 因子评分
资金层再决定资产权重

本课把选出的 Top 3 ETF 等权配置,让比较只发生在因子组合方法。

ETF 1 ETF 2 ETF 3
因子 A 的 IC 权重为 50%,只表示它贡献一半的综合评分;不表示任何一只 ETF 的仓位是 50%。
第 6 课 · 互动演示

滚动 IC 权重

方法 3 的升级 · 有效性之外,再看重复信息

滚动 IC vs 最大 IC:差在哪?

ROLLING IC只看最近准不准

r = 滚动平均 IC
正的 r 越大,因子权重越高。

IC截断配重

A、B 即使高度相关,只要各自平均 IC 高,都会得到较高发言权。

MAX IC有效,还要不重复

r = 滚动平均 IC
先用相关矩阵把重复信息压缩,再分配权重。

ICΣ⁻¹r配重

A、B 很像时会被一起压低;较独立的 C 即使 IC 略低,也可能多分一点。

共同输入成熟后的 252 日滚动 IC
Max 新增输入对应日期的滚动因子相关性
稳健处理50% 样本相关 + 50% 单位阵
别误读Max 不是挑“IC 最大”的单一因子
一句话:滚动 IC 问“谁最近更准”;最大 IC 再问“谁是在重复同一种证据”。相关历史不足时,最大 IC 不应假装知道去重结果,应回退等权。
方法 4 · 有效还要稳定

ICIR 权重:别只看平均 IC

ICIR(252,H=5)i,t=IC(252,H=5)i,ts(ICH=5i,t−251:t)
wICIRi,tmax(0, ICIR(252,H=5)i,t)
平均 IC 相同IC 波动更小的因子,ICIR 更高,权重也更高。
它在惩罚什么?今天有效、明天反向、阶段切换剧烈的因子。
它会出什么问题?样本太少或标准差极小时,比例可能失真。
252 日窗口避免短样本剧烈摆动
126 日门槛历史不够先等权
50% 上限避免单因子独占
全部非正自动回退等权
品种打分仍做 Rank 截面归一化:ICIR 只评价有效性与稳定性,不让原始量纲或极端值改变综合分。它仍没有处理因子之间是否重复;这正是下一步最大 ICIR 要加入的约束。
第 6 课 · 互动演示

平均 IC 相同,ICIR 如何改变权重?

第 6 课 · 学员互动

平均 IC 相同,权重会一样吗?

两个因子平均 IC 都是 0.04。A 几乎每天都在 0.04 附近;B 有时 +0.20,有时 −0.10。

按 ICIR 加权,会更偏向 A 还是 B?请选一个,并写一句理由。

先独立想 45 秒:写出判断,再写一句理由。看完题再点答案。

查看答案收起答案
更偏向 A。
ICIR = 均值 ÷ 标准差。平均相同、波动更小的因子更稳定,权重更高。B 虽然偶尔很强,但不稳定,会受到惩罚。
方法 4 到方法 5 · 稳定性之外,再看独立性

滚动 ICIR vs 最大 ICIR:差在哪?

ROLLING ICIR奖励稳定的有效性

r = 滚动平均 IC ÷ IC 标准差
平均 IC 相同,波动更小者权重更高。

ICIR截断配重

A、B 的 ICIR 都高且彼此高度相关时,仍可能同时拿到很高权重。

MAX ICIR稳定,也要提供新增信息

r = 滚动 ICIR
先用相关矩阵调整 r,再决定各因子的发言权。

ICIRΣ⁻¹r配重

A、B 太像时会被压缩;较独立的 C 可因新增信息获得更多权重。

同一个案例:A、B 的 ICIR 都是 1.5,相关性 0.9;C 的 ICIR 是 1.2,但与两者接近独立。滚动 ICIR 主要奖励 A、B 的稳定;最大 ICIR 会把“重复的稳定性”降权,并给 C 留出空间。
一句话:滚动 ICIR 解决“不要只看平均”;最大 ICIR 进一步解决“不要把同一份稳定证据算两次”。
方法 5 · 有效性 × 稳定性 × 独立性

最大 ICIR:把因子相关性也放进权重

5 日基准下最大 ICIR 方法的滚动因子权重
核心想法高 ICIR、又不与别人重复的因子,多分一点权重。
相关矩阵收缩50% 样本相关 + 50% 单位阵,降低矩阵不稳定。
保持可控权重非负、上限 50%;不可解或全非正时回退等权。
品种打分仍做 Rank 截面归一化:最大 ICIR 新增的是相关性约束,让优化只处理有效性、稳定性与重复信息,而不受原始数值尺度干扰。
第 6 课 · 互动演示

Max ICIR 组合方法

第 6 课 · 学员互动

两个很像的因子,独立的那个会怎样?

三个因子的 ICIR 差不多。A 和 B 几乎总是选出同一批 ETF;C 与它们都不相关。

最大 ICIR 更可能把权重匀给 A 和 B,还是多给一点 C?请选一种,并写一句理由。

先独立想 45 秒:写出判断,再写一句理由。看完题再点答案。

查看答案收起答案
更可能多给一点 C。
A 和 B 太像,属于重复信息,优化会把它们往下压。C 提供独立信息,即使并不更强,也能分到更多权重。
全样本组合回测 · 五因子 · 5 日调仓 · 单边成本 5 bp

五种方法放到同一套含成本回测里

六种组合方法的全样本净值
方法年化Sharpe回撤换手
滚动 ICIR25.9%1.36017.8%33.3
滚动 IC25.5%1.34117.8%32.7
最大 ICIR24.7%1.31022.3%33.1
等权投票26.0%1.28618.7%33.8
等权排名23.6%1.20920.5%32.8
1 / 5 / 10 日的最高 Sharpe 为 1.092 / 1.360 / 1.178,因此选 5 日。这是全样本择优,可能高估真实效果;正式研究仍应锁定参数后再做样本外验证。
第 6 课 · 学员互动

全样本里 5 日 Sharpe 最高,就能定调仓周期吗?

同一套方法在 1 / 5 / 10 日调仓里比较,5 日的 Sharpe 最高,于是选了 5 日。

这能当成已经证明的最佳调仓周期吗?请选「能」或「不能」,并写一句理由。

先独立想 45 秒:写出判断,再写一句理由。看完题再点答案。

查看答案收起答案
不能。
这是全样本择优,可能高估真实效果。正式研究应先锁定参数,再拿到没有参与选择的样本外区间去验证。
课后练习 · 用自己的因子完成研究闭环

用自己挖出来的因子,跑完三组实验

YOUR FACTOR从一个自己挖出的因子开始

先统一方向:因子值越大,预期收益越高。

沿用课堂的 18 ETF、样本内外划分、5 日基准周期和交易成本,保证结果可以直接比较。

01Horizon IC测试不同收益期限,判断它更擅长预测短期还是中长期。
02Lagged IC在多个 Horizon 下推迟使用信号,观察效果怎样衰减。
03组合回测把IC绝对值大于0.03的因子加入因子池,比较等权、IC、ICIR 与最大 ICIR 的含成本表现。