QUANTSPACE · 第 3 课

开发你的第一个
量化因子

AI Agent & Skills 驱动的量化交易工作流

第 3 课 · 因子研究

过去涨得好,未来就一定排前面吗?

A 过去涨了 20%,B 只涨了 5%。
下一周,A 的收益一定更高吗?

今天练习的三件事

把直觉写成因子 → 看懂 IC 与分组 → 提出可检验的研究请求。

你要带走的能力

解释一个因子为什么这样算,并用证据判断它是否值得继续研究。

第 3 课 · 因子研究

先看你在比较谁

日期 × 标的ABC
昨天241
今天53−1
下一天

颜色只表示比较方向;数字是教学示意。

纵向:固定一只标的

A 今天与 A 的过去比较,帮助做择时判断。

横向:固定同一天

今天 A、B、C 彼此比较,研究谁可能相对更强。

本课重点是截面因子:同一日期,给一组标的打分并比较。
第 3 课 · 因子研究

因子分数,离订单还隔着什么?

行情发生了什么
OHLCV
指标状态如何
趋势斜率
因子预测什么
明确方向
组合选择谁
前 20%
仓位持有多少
A 占 50%

把指标当作因子研究

先提出它与未来表现的关系,再用历史数据检验。

把因子用于策略

还要选择标的、分配仓位,并考虑风险、成本与执行。

本课停在因子诊断;因子值本身不是订单,也不是仓位。
第 3 课 · 互动演示

Trend Score:趋势向上,也要看路径

第 3 课 · 因子研究

Trend Score:按四个面板读证据

Trend Score 因子原始绩效图:IC、分组净值、多空净值差、换手
点击原图放大 ↗ · period=25
IC Mean0.0319
ICIR0.0860
IC > 053.14%

IC 样本数:1,562
同一资产池与检验口径
全样本历史诊断

第 3 课 · 因子研究

Mom Skip:只取两个历史端点

长期动量,跳过最近一段价格变化。

Mom Skip = close[t−22]close[t−252] − 1
用于计算的历史区间t−252 → t−22
跳过近期22 个间隔
未来不进入输入
这不是“最近一年涨幅”:两个端点都在今天之前。

total=252,skip=22;252 与 22 都按交易观测计数,不按日历天数。

第 3 课 · 因子研究

Mom Skip:按四个面板读证据

Mom Skip 因子原始绩效图:IC、分组净值、多空净值差、换手
点击原图放大 ↗ · total=252 · skip=22
IC Mean0.0364
ICIR0.0932
IC > 054.42%

IC 样本数:1,562
同一资产池与检验口径
全样本历史诊断

第 3 课 · 学员互动

课堂互动 · 因子的输入

两份行情在 t−252、t−22 的收盘价相同,
但最近 25 个观测中,其他价格的路径不同。

Trend Score 和 Mom Skip 中,哪个得分可能变化?为什么?

先独立思考 45 秒,再分享你的判断和理由。

查看答案收起答案
Trend Score 可能变化;Mom Skip 不变。
Mom Skip 只读取两个指定端点;Trend Score 使用最近 25 个价格,路径改变可能影响斜率与拟合程度。
第 3 课 · 互动演示

滚动到今天:哪些价格已经可以使用?

第 3 课 · 因子研究

让项目计算,再看输出是什么

OHLCV panel(symbol, eob)
Factor按 symbol 逐只计算
fac_val + close按 eob 形成截面
诊断IC / 分组 / 换手
eobsymbolclosefac_val
2018-07-06SHSE.5103003.3950−1.3808
2018-07-06SHSE.511010111.31290.0634
2018-07-06SHSE.5188802.6800−0.0000

沿用原课数据结构示例;不是前面 18 标的绩效对照的样本区间。

保留标的与日期,才能把“今天的因子”和“之后的收益”对应起来。
第 3 课 · 因子研究

IC 先回答:同一天的高分,后来更强吗?

固定同一日期、同一期限,因子与未来收益按标的一一配对。

同一标的日期 t 的因子t → t+5 的未来收益
A0.18+2.1%
B0.05−0.4%
C−0.07+0.7%
Pearson ICₜ = Corrᵢ(fᵢ,ₜ, Rᵢ,ₜ→ₜ₊ₙ)

正值

高因子与高收益同向

接近零

本期线性相关较弱

负值

方向相反,需解释

第 3 课 · 互动演示

原始数值与名次,回答的问题不同

第 3 课 · 因子研究

先分清:因子 ICIR 与组合 IR

因子诊断:ICIR

先得到每个日期的 IC,
再比较跨日期的均值与波动。

ICIR = mean(IC) / std(IC)

平均预测方向,相对于波动有多大?

组合绩效:IR

先计算组合相对基准的主动收益:
rp − rb

IR = 平均主动收益 / 跟踪误差

跟踪误差 = 主动收益的标准差。

本课作业的 IR 指 ICIR;项目字段 IC_IR,不额外年化。

ICIR:T 为有效日期数,std 用样本标准差(T−1);T < 2 或标准差为 0 时未定义。
比较时统一频率、收益期限与年化口径;ICIR 不限于 −1 到 1。

第 3 课 · 互动演示

把均值固定,再改变波动

第 3 课 · 学员互动

课堂互动 · 分数的尺度

每天都把所有标的的因子分数乘以 10,
标的、日期和未来收益保持不变。

这样能提高 Rank IC 或 ICIR 吗?为什么?

先独立思考 45 秒,再分享你的判断和理由。

查看答案收起答案
不能提高。
乘以正数不改变每天的因子排名,Rank IC 序列不变;在相同有效日期上,均值、样本标准差及有效的 ICIR 也不变。
第 3 课 · 因子研究

分组实验:先分组,再看未来

日期 t按因子从低到高排序
G1 … G5低分组 → 高分组
未来收益比较各组的后续表现

先看顺序

随因子升高,各组表现是否大致单调?

再看两端

高低组是否拉开?差距来自哪一端、哪个阶段?

未来收益决定检验结果,不决定今天分到哪一组。
第 3 课 · 互动演示

分组没变,未来表现可以完全不同

第 3 课 · 因子研究

把多空效应拆成两部分

高组的贡献

Top = NAV(G5) − B

高组比各组平均表现强多少?

低组的贡献

Down = B − NAV(G1)

低组比各组平均表现弱多少?

Top_Down = Top + Down = NAV(G5) − NAV(G1)

这里 B = 五组累计净值的平均值。

净值差没有计入真实仓位、交易成本和执行约束,不是策略回测收益。
第 3 课 · 理解检查

差距扩大,就能说高组很强吗?

期末:高组净值 1.10,低组 0.80,
各组平均净值 1.15。

判断高组是否超过基准,并说明高低组差距主要来自哪一端。

先独立思考 45 秒,再给出判断和一句理由。

第 3 课 · 学员互动

课堂互动 · 两端之外

两份因子报告的 G1、G5 期末净值相同,
但中间三组的表现明显不同。

只凭相同的高低组净值差,能判断两者分组效果相同吗?为什么?

先独立思考 45 秒,再分享你的判断和理由。

查看答案收起答案
不能。
相同的高低组差值只说明两端相同。还要看中间组是否大致有序,以及各组的路径和阶段表现。
第 3 课 · 因子研究

比较之前,先把口径对齐

18 个 ETF/LOF · 1 日前瞻 Rank IC · 5 组分层 · 未扣交易成本

下载:2019-01-01—2026-06-30 有效因子期:2020-01-14—2026-06-30

黄金 ETFSHSE.518880
南方原油 LOFSHSE.501018
30 年期国债 ETFSHSE.511130
沪深 300 ETFSHSE.510300
中证 2000 ETFSHSE.563300
创业板 ETFSZSE.159915
科创 50 ETFSHSE.588000
恒生 ETFSZSE.159920
恒生互联网 ETFSHSE.513330
纳斯达克 100 ETFSHSE.513100
标普 500 ETFSHSE.513500
日经 225 ETFSHSE.513520
德国 DAX ETFSHSE.513030
法国 CAC40 ETFSHSE.513080
印度市场 LOFSZSE.164824
豆粕期货 ETFSZSE.159985
有色金属期货 ETFSZSE.159980
大宗商品股票 ETFSHSE.510170

前面两张图沿用原课的同一资产池、有效日期与计算口径。

第 3 课 · 因子研究

这些数字支持什么,还不能支持什么?

同一口径Trend ScoreMom Skip
IC Mean0.03190.0364
ICIR0.08600.0932
IC > 053.14%54.42%
IC 样本数1,5621,562

可以说

这段历史里,二者平均 Rank IC 都为正;Mom Skip 的这些描述统计略高。

还不能说

差异已证明显著、未来一定更好,或扣费后一定赚钱。

第 3 课 · 因子研究

先开发,再冻结,再看后面的数据

较早历史 · 样本内

提出假设
决定公式、参数与方向
检查数据与实现

冻结

较晚历史 · 样本外

按固定方案验证
记录衰减与失败
不根据结果反复调参

看过后面的结果又改规则,这段数据就参与了开发。

本课展示的是全样本历史诊断,不能把已有图重新称为“干净的样本外结果”。

第 3 课 · 理解检查

看完验证结果,又改了一次参数

团队在较早历史选定窗口 25,
看完验证期后把窗口改成 20,
随后仍用原验证期宣布“独立验证通过”。

指出哪一步改变了验证期的角色,并提出下一步应怎么做。

先独立思考 45 秒,再给出判断和一句理由。

第 3 课 · 学员互动

课堂互动 · 选择也是开发

事先固定了 10 个因子,
看完样本外结果,只选表现最好的一个。

没有改参数,这份结果仍是对最终选择的独立验证吗?为什么?

先独立思考 45 秒,再分享你的判断和理由。

查看答案收起答案
不是对最终选择的独立验证。
“选谁”已经使用了这段结果。应冻结最终选择,再用未参与选择的数据或前向观察验证。
课后作业
  1. 用自己的话解释什么是 IC、IR、分组实验、多空效应
  2. 设计并测试一个自己的因子,并给出绩效结果