📘 本章重点
- 理解多因子选股的核心思想:用多个维度(因子)综合评估股票,选出综合得分最高的组合
- 掌握多因子模型的完整构建流程:因子筛选→数据处理→有效性检验→因子合成→组合构建
- 掌握因子的完整生命周期:从分类体系、数据来源、筛选鉴别到组合策略和动态监控
- 深入理解量化界最认可的六大核心因子——价值、动量、质量、低波动、规模、成长
- 了解多因子策略的评估指标(IC、IR、分组收益、多空收益等)
- 认识多因子策略的三大风险:过拟合、因子衰减、因子拥挤
⚠️ 本章难点
- 理解“单因子有效 ≠ 多因子有效”——因子之间的相关性和互补性比单因子表现更重要
- 掌握因子数据处理的三部曲:去极值、标准化、中性化
- 区分IC(信息系数)与IR(信息比率)的含义与用途
- 理解“因子拥挤”如何导致策略失效——当太多资金追逐同一因子时,超额收益消失
- 认识多因子策略与指数增强策略(第四.02)的关系与区别
- 理解因子的“生命周期”——从发现、验证、应用到失效、迭代的完整过程
⏱️ 预估学习时间
- 60~90分钟
一、策略简述与一句话定性
一句话定性:多因子选股策略是一种系统化的量化选股方法——通过构建包含多个维度的因子体系,对全市场股票进行综合打分,选出预期收益最高的股票组合,定期调仓,获取持续的超额收益。
多因子选股是量化投资中应用最广泛、资金容量最大的策略流派。它的核心思想可以用一句话概括:把一只股票拆成多个维度,用一套规则合成一个可复现的综合分,再按分数选股、建仓、控风险。
想象一下选股就像给学生考试:单因子策略只考一门课(比如只看数学成绩),而多因子策略考多门课(数学、语文、英语、物理……),然后按总分排名录取。单因子策略可能因为某一门课特别突出而选中“偏科生”,多因子策略则更倾向于选出“综合能力强的优等生” ——这正是多因子选股的核心优势。
更完整的比喻:单因子策略就像“特长生招生”——某一科特别突出就能入选,但偏科生在其他方面可能有明显短板。多因子策略更像“综合素质评价”——不要求每科都顶尖,但要求没有明显的短板,各科均衡发展。
多因子模型的理论基础可以追溯到资本资产定价模型(CAPM) ,但真正让多因子选股成为主流的是Fama和French在1993年提出的三因子模型。他们发现,除了市场风险之外,市值规模(小市值溢价)和账面市值比(价值溢价) 也能解释股票的超额收益。2015年,他们又将模型扩展为五因子,增加了盈利能力和投资水平两个因子。
多因子选股 vs 指数增强:两者都使用多因子模型,但目标不同。多因子选股的目标是选出最好的股票(相对收益最大化),指数增强的目标是在跟踪指数的基础上赚取超额收益(跟踪误差最小化+收益最大化)。可以理解为:多因子选股是“选优”,指数增强是“在不出格的前提下选优”。
老陈点评:
多因子模型的核心思想其实很简单:没有任何一个因子能够永远有效,但不同因子在不同市场环境中轮流有效。多因子策略的价值不在于找到一个“完美因子”,而在于通过组合多个低相关性因子,构建一个“东方不亮西方亮”的选股系统。这不是在找圣杯,而是在建一个“因子池”——当一个因子失效时,其他因子还在工作。
老王补充:
多因子策略是我在机构里接触最多的策略类型。它的优点是容量大、收益稳、逻辑透明——公募和私募量化基金的主流框架就是多因子选股。但它的缺点是复杂——从因子挖掘到数据处理到模型构建,每一步都有无数细节。这不是一个“写几行代码就能跑”的策略,而是一个需要系统性工程能力的策略框架。
二、因子的分类体系——认识因子的“家族图谱”
在深入了解多因子策略的具体操作之前,先建立一张“因子家族图谱”至关重要。因子研究的目标不是找到一个“万能因子”,而是找到若干个有一定预测力的因子,然后组合起来使用。一个完整的因子库通常包含10-11个大类,每个大类下又包含若干小因子。
2.1 因子的大类划分
根据华泰多因子系列研报的分类方法,因子可以分为以下十一个大类:
| 大类 | 核心逻辑 | 代表性小因子 | 方向 |
|---|---|---|---|
| 估值因子 | 便宜的股票长期跑赢贵的 | PE(市盈率)、PB(市净率)、PS(市销率)、股息率 | 负向(低估值有溢价,但需警惕价值陷阱) |
| 成长因子 | 高增长公司股价表现优秀 | 营收增长率、净利润增长率、EPS增长率 | 正向(越高越好,但高增长伴随高波动) |
| 财务质量因子 | 好公司长期表现更好 | ROE、ROA、毛利率、净利率、资产负债率 | 正向(越高越好) |
| 杠杆因子 | 低杠杆公司风险更低 | 资产负债率、权益乘数、利息保障倍数 | 负向(越低越好) |
| 规模因子 | 小市值公司长期有溢价 | 总市值、流通市值 | 负向(越小越好) |
| 动量因子 | 强者恒强 | 过去N日收益率、12-2月动量 | 正向(越高越好) |
| 波动率因子 | 低波动股票长期跑赢 | 历史波动率、Beta、最大回撤 | 负向(越低越好) |
| 换手率因子 | 低换手股票有溢价 | 日均换手率、成交量变化率 | 负向(越低越好) |
| 情绪因子 | 情绪驱动短期波动 | 融资余额变化、分析师评级调整、新闻情绪 | 正向 |
| 股东因子 | 筹码集中度影响股价 | 股东户数变化、机构持股比例 | 负向(户数越少越好) |
| 技术因子 | 技术指标反映市场状态 | RSI、MACD、均线乖离率 | 视具体指标而定 |
2.2 六大核心因子详解
在众多因子中,有六个因子被业内公认为长期有效,被称为 “rewarded factor” (有风险溢价的因子)。它们是量化投资中最常用、最被认可的核心因子。无论是机构还是个人,在构建多因子策略时,几乎都会从这六个因子中选择组合。
📉 因子一:价值因子
核心逻辑:价值因子的理论基础是“均值回归”——即价格终究会回归价值。它寻找那些因市场情绪或短期负面因素被低估的股票,买入“便宜货”,等待市场重新发现其价值。
常用指标:
- 市盈率(PE) :最常用的估值指标,越低越便宜
- 市净率(PB) :适用于银行、保险等重资产行业
- 市销率(PS) :适用于尚未盈利的成长型公司
- 股息率 :高股息率也是价值的一种体现
- 自由现金流收益率 :比PE更“硬”的估值指标
使用方法:
最简单的方法是计算PE、PB等指标,买入估值最低的一批股票。在构建多因子模型时,价值因子通常作为“反向指标”使用——因子值越低,得分越高。
优点:
- 长期超额收益稳定,有坚实的学术和实证支撑
- 逻辑透明,易于理解和执行
- 在熊市中通常比成长因子更抗跌
缺点:
- 警惕“价值陷阱” :低估值有时是公司基本面恶化的信号(如业绩持续下滑、行业被颠覆)
- 均值回归的时间可能很长——“市场保持非理性的时间,可能比你保持偿付能力的时间更长”
- 需要结合质量因子交叉验证,避免买到“垃圾股”
注意事项:价值因子最怕的是“越跌越买”——如果一只股票因为基本面恶化而持续下跌,低估值可能只是“估值陷阱”的开始。建议在买入前检查公司的盈利能力(ROE、毛利率)是否稳定。
📈 因子二:动量因子
核心逻辑:动量因子的理论基础是“趋势延续”——过去一段时间表现强势的资产,在未来短期内仍可能保持相对优势。它基于行为金融学,认为市场的恐慌和贪婪情绪会导致趋势延续。
常用指标:
- 过去N个月收益率:最常用的是3-12个月(A股市场常用20-60个交易日)
- 52周高点距离:当前价格距离52周高点的比例
- 12-2月动量:剔除近1个月的过去12个月收益(Fama-French的动量因子定义)
使用方法:
计算股票在过去一段时间的累计收益,买入涨幅最高的,卖出涨幅最低的。构建动量策略的核心是确定回看窗口和持有期。
A股市场的特殊规律:
- A股市场中,动量效应表现为短期反转、中期动量
- 1个月以内的短期动量往往失效甚至反向
- 3-6个月的中期动量最为有效
- 12个月以上的长期动量可能反转
优点:
- 能抓住大趋势行情,收益弹性大
- 有坚实的学术支撑(Jegadeesh和Titman,1993)
- 在牛市中表现优异
缺点:
- 风险在于动量崩溃(Momentum Crash)——在市场拐点出现大幅亏损
- 被大量资金使用可能导致交易拥挤,放大了市场波动
- 在震荡市中频繁切换,交易成本高
注意事项:动量策略最关键的是选择正确的回看窗口。在A股中,20-60个交易日的窗口通常效果最好。同时,建议结合“绝对动量”过滤——只买入涨幅为正的股票,在熊市中空仓避险。
🏆 因子三:质量因子
核心逻辑:质量因子聚焦于企业盈利能力和财务健康度。其信念是,拥有宽阔“护城河”的好公司能持续创造价值,长期跑赢市场。
常用指标:
- 净资产收益率(ROE) :最核心的质量指标,衡量公司利用股东资金的效率
- 毛利率、净利率:衡量公司的盈利能力和定价权
- 资产负债率:衡量公司的财务风险和杠杆水平
- 盈利稳定性:过去几年盈利的波动程度
- 应计利润率:衡量盈利的“现金含量”
使用方法:
最常见的方法是买入ROE最高的一批股票。更进一步,会考察ROE的稳定性,筛选出能持续维持高ROE的公司。在构建多因子模型时,质量因子通常作为“正向指标”使用——因子值越高,得分越高。
优点:
- 聚焦企业基本面,收益稳健
- 在熊市中通常表现出较强的抗跌性(“防御性”)
- 逻辑清晰,符合价值投资的直觉
缺点:
- 高质量公司往往“不便宜”——价值因子和质量因子常需权衡取舍
- ROE等财务指标有滞后性(财报公布延迟)
- 高质量公司在牛市中可能跑不赢高弹性股票
注意事项:质量因子最怕的是“高质量陷阱”——一家公司过去ROE很高,但并不代表未来能持续。需要考察ROE的趋势和来源(是高利润率驱动的,还是高杠杆驱动的?后者风险更大)。
🛡️ 因子四:低波动因子
核心逻辑:低波动因子利用 “低波动异象” (Low Volatility Anomaly)获利——低风险的股票长期收益并不差,甚至能跑赢高波动股票。这看似违反直觉,但在全球多个市场中都被验证。
常用指标:
- 历史波动率:过去一段时间的日收益率标准差
- Beta系数:股票相对于大盘的波动敏感性
- 最大回撤:历史上最大的跌幅
使用方法:
最直接的方法是计算股票的历史波动率,买入波动率最低的股票。但更常见的是,将其作为辅助因子,与其他因子(如红利、质量)结合。例如“红利低波”策略,先用红利因子选股,再用低波因子剔除风险股。
优点:
- 风险调整后收益出色(夏普比率通常较高)
- 是优秀的“组合辅助”——能平滑收益曲线、控制回撤
- 在熊市中表现尤为突出(防御性强)
缺点:
- 单独使用可能选到缺乏成长性的“僵尸股”
- 在牛市中可能跑输大盘(弹性不足)
- 更适合作为组合的“稳定器”,而非收益的主要来源
注意事项:低波动因子最容易被误解为“保守”或“胆小”。实际上,它是一个风险调整后收益的工具——它的目标是“用更少的风险换取相近的收益”,而不是“放弃收益换取安全”。
📏 因子五:规模因子
核心逻辑:规模因子捕捉 “小市值溢价” (Small Cap Premium)——小市值公司的长期收益高于大市值公司。这是Fama-French三因子模型中的核心因子之一。
常用指标:
- 总市值:公司全部股票的市场价值
- 流通市值:可在市场上自由交易的股票市值
使用方法:
买入全市场市值最小的N只股票并定期轮动,是A股最经典的策略之一。在构建多因子模型时,规模因子通常作为“反向指标”使用——市值越小,得分越高。
优点:
- 在A股中长期超额收益非常显著(2010-2020年Top 100年化29.7%)
- 逻辑简单,易于实现
- 适合小资金起步
缺点:
- 风险极高——波动剧烈,2024年部分小市值策略回撤超过40%
- 流动性差——小盘股交易量小,可能导致“想卖卖不出”
- 策略容量有限——资金规模过大时冲击成本高
- 注册制改革后壳价值贬值,规模因子的逻辑正在变化
注意事项:规模因子是最考验“信仰”的因子之一。它在A股长期有效,但中间可能经历长达数年的回撤。不建议重仓押注单一规模因子——建议作为多因子组合中的一个维度,与其他因子(如质量、低波动)结合使用。
🚀 因子六:成长因子
核心逻辑:成长因子寻找营收和利润高速增长的公司。投资者愿意为未来的高增长预期支付溢价,从而推高股价。
常用指标:
- 营收增长率:公司收入的增长速度
- 净利润增长率:公司盈利的增长速度
- EPS增长率:每股收益的增长速度
- 一致预期增长率:分析师预测的未来增长率
使用方法:
最直接的方法是买入增长率最高的前N只股票。更稳健的做法是寻找 “GARP(Growth at a Reasonable Price)” 型股票——既有增长,又不太贵(如PEG < 1)。
优点:
- 在牛市中弹性最大,收益惊人
- 符合“投资未来”的直觉
- 成长型公司往往是产业的引领者
缺点:
- 高增长伴随着高波动——一旦业绩增速放缓或不及预期,股价可能因“戴维斯双杀”而暴跌
- 高增长公司往往估值较高,安全边际不足
- 成长因子的有效性在A股中不如价值因子稳定
注意事项:成长因子最怕的是“预期透支”——当市场对一家公司的增长预期已经打满时,即使业绩符合预期,股价也可能不涨(因为“没有惊喜”)。一旦业绩不及预期,股价将大幅下跌。建议结合估值因子(如PEG)使用,避免买在“山顶”。
六因子对比总览
| 因子 | 核心逻辑 | 常用指标 | 关键特点 | 主要风险 |
|---|---|---|---|---|
| 价值 | 找“便宜货” | PE、PB、股息率 | 均值回归,熊市抗跌 | 价值陷阱 |
| 动量 | “追涨杀跌” | 过去N月收益率 | 趋势跟踪,牛市进攻 | 动量崩溃 |
| 质量 | 选“好公司” | ROE、毛利率、负债率 | 收益稳健,有防御性 | 高质量陷阱 |
| 低波动 | 求“安稳” | 历史波动率、Beta | 风险调整后收益高 | 牛市弹性不足 |
| 规模 | 买“小盘股” | 总市值、流通市值 | A股长期超额显著 | 波动剧烈、流动性差 |
| 成长 | 投“高增长” | 营收增长率、净利润增长率 | 牛市弹性最大 | 高预期、高波动 |
2.3 各类因子的经济学逻辑
估值因子的逻辑是“均值回归”——在一个不完全有效的市场中,价格被低估的股票最终会被市场发现并修正。A股市场中,低PE、低PB的组合长期跑赢高PE、高PB的组合。但需要警惕的是,极端低估值也可能是基本面恶化的信号——需要结合质量因子交叉验证,避免“价值陷阱”。
成长因子的逻辑是“未来折现”——投资者愿意为高增长的公司支付溢价。高增长的公司往往能获得更高的市场估值,但高增长本身也伴随着高波动和高预期——一旦业绩不及预期,股价可能大幅下跌。
质量因子的逻辑是“护城河”——高ROE、高毛利率的公司往往具有竞争优势,能够在经济周期中保持盈利能力。质量因子在熊市中通常表现出较强的抗跌性。
动量因子的逻辑是“趋势延续”——过去一段时间表现强势的资产,在未来短期内仍可能保持相对优势。但动量因子在A股市场中表现为短期反转、中期动量——1个月以内的短期动量往往失效甚至反向,3-6个月的中期动量最为有效。
波动率因子的逻辑是“低波动异象”——低风险的股票长期反而跑赢高风险的股票。A股市场中,低波动因子在熊市中表现尤为突出。
规模因子的逻辑是“小市值溢价”——小市值公司的长期收益高于大市值公司。但在注册制改革后,壳价值贬值,规模因子的逻辑正在发生变化。
换手率因子的逻辑是“交易拥挤”——高换手率的股票往往被过度炒作,后续表现不佳。低换手率的股票虽然短期弹性不足,但长期收益更稳健。
2.4 因子从何而来——数据来源与获取
有了分类框架,下一步是从哪里获取这些因子的数据。多因子选股需要覆盖价格、财务、市场情绪等多维度信息。以A股市场为例,主要的数据来源包括:
1. 基础价格与量价数据(日频):
- 开盘价、收盘价、最高价、最低价、成交量、成交额
- 来源:Wind、Tushare、聚宽(JoinQuant)、优矿(Uqer)、BigQuant
2. 财务数据(季频/年频):
- 三大报表数据:资产负债表、利润表、现金流量表
- 财务指标:PE、PB、ROE、营收增长率等
- 来源:Wind、聚宽财务数据库、BigQuant财务科目数据
3. 一致预期数据(日频/周频):
- 分析师盈利预测、评级调整
- 来源:朝阳永续、Wind一致预期
4. 另类数据(高频/日频):
- 新闻情绪、社交媒体热度、融资融券数据
- 来源:新闻API、Tushare两融数据
5. 因子平台与工具:
- BigQuant:提供10大类因子的直接调用
- 聚宽(JoinQuant) :提供JQData数据接口,可获取市值、账面市值比、市盈率、动量等因子数据
- Tushare:开源数据接口,支持日频行情、财务数据、停牌记录、分红调整等
- AlphaFeed:提供全市场行情和历史K线数据
老陈点评:
数据质量 > 数据来源。无论你用哪个数据源,关键是要做到:复权统一、财务指标对齐、停牌天数处理、异常点和错误值过滤、股票池稳定(避免未来函数)。数据处理的细节决定了回测与实盘的差距。同样的因子,用不同的数据源、不同的复权方式,结果可能天差地别。
三、策略的使用范围与条件
| 维度 | 适用范围与条件 | 说明 |
|---|---|---|
| 适用市场 | 股票市场(A股、美股、港股等) | 需要足够多的股票样本和高质量的基本面/量价数据 |
| 品种要求 | 流动性好、数据完整 | 剔除ST股、停牌股、上市不满1年的新股 |
| 交易机制 | 单向做多为主(也可构建多空组合) | A股多因子策略以做多为主,通过持仓偏离基准获取超额收益 |
| 适用周期 | 周频或月频调仓 | 基本面因子通常月频,量价因子可周频 |
| 资金门槛 | 低至中等(持有20-50只股票) | 资金规模越大,可选的股票数量越多 |
| 不适合的市场状态 | 极端单边行情、流动性枯竭 | 因子在极端行情中可能全面失效 |
适用品种举例:
- 全市场A股:沪深两市所有非ST股票(剔除停牌、次新股)
- 指数成分股:沪深300、中证500、中证1000成分股
- 行业板块:特定行业的股票池(如银行股、消费股)
不适用品种:
- ST股、退市风险股(数据异常,无法有效建模)
- 流动性极差的小盘股(无法有效执行交易)
- 次新股(历史数据不足)
失效案例:2024年,A股市场出现显著的大小盘风格切换,此前长期有效的小市值因子和成长因子突然失效,而红利因子和低波动因子表现优异。依赖历史回测选择因子的多因子策略,如果在风格切换前没有及时调整因子权重,会遭遇显著回撤。多因子策略不是“建完模型就不用管了”——因子需要持续监控和动态调整。
四、因子如何筛选与鉴别
有了候选因子池和数据之后,下一步是筛选出真正有效的因子。因子的筛选和鉴别是一个 “漏斗模型” ——就像用筛子筛面粉,第一层筛掉大颗粒,第二层筛掉中颗粒,最后一层留下的才是最细的面粉。从几十上百个候选因子中,通过层层检验,筛选出最有效的少数几个因子。
4.1 因子有效性的三层检验
因子有效性检验通过分析因子值与预期收益率的关系,从而确定因子的有效性。一个有效的因子应具备统计显著性和经济意义,并能在不同市场环境下保持稳定的表现。主要检验方法有三种:
第一层:IC检验(信息系数检验)
IC(Information Coefficient)是因子值与下期收益率之间的相关系数。
| 指标 | 含义 | 优秀标准 | 合格标准 |
|---|---|---|---|
| IC均值 | 因子预测能力的平均水平 | > 0.05 | > 0.03 |
| IC胜率 | IC为正的月份占比 | > 70% | > 60% |
| ICIR | IC均值 / IC标准差(衡量稳定性) | > 0.8 | > 0.5 |
- IC为正:因子值越大,未来收益越高(正向因子)
- IC为负:因子值越大,未来收益越低(负向因子)
- ICIR:ICIR越高,因子的预测能力越稳定
IC vs IR的区别:
- IC告诉你“这个因子有没有预测能力”
- ICIR告诉你“这个因子的预测能力稳不稳定”
- IC高但IR低的因子,就像高考模拟考偶尔考了全市第一、但平时成绩忽上忽下的学生——你不敢把宝全押在他身上。
第二层:分组回测检验
将股票按因子值从大到小分成5-10组,计算每组的历史平均收益。
| 检验标准 | 含义 | 判断 |
|---|---|---|
| 单调性 | 分组收益是否随因子值单调递增/递减 | 单调性越强,因子越有效 |
| 多空收益 | 最高组(多头)与最低组(空头)的收益差 | 多空收益越大,因子区分度越高 |
| 头部超额 | 最高组的超额收益是否显著 | 头部超额是因子选股的核心价值 |
第三层:回归检验
以个股下期收益为因变量,以因子值为自变量进行回归分析。
| 检验指标 | 含义 | 标准 |
|---|---|---|
| T值 | 因子系数的显著性 | |T值| > 2 表示统计显著 |
| R² | 因子对收益的解释力度 | R²越高,因子解释力越强 |
4.2 因子筛选的“漏斗模型”
从全量因子池到最终入模因子,通常经过以下四层筛选:
| 筛选层级 | 筛选标准 | 目的 |
|---|---|---|
| 第一层 | 多空组合收益率 > 10% | 确保因子有足够的经济价值 |
| 第二层 | 回归检验 |T值| > 2 | 确保因子统计显著 |
| 第三层 | RankIC均值绝对值 > 3% | 确保因子有稳定的预测能力 |
| 第四层 | 信息增量性检验 | 确保新因子不与已有因子高度相关 |
经过这四层筛选后,通常可以从几百个候选因子中筛选出几十个有效因子。根据聚源研究的数据,对全量近500个因子进行单因子测试后,综合考虑分组测试、IC测试、回归测试结果以及入模因子的信息增量性,最终筛选出151个有效因子。这151个因子并不是全部入模,而是进入“候选池”,后续还需要根据因子之间的相关性和互补性做进一步筛选。
4.3 因子鉴别的“避坑指南”
陷阱一:生存者偏差
回测时只使用了目前仍在交易的股票,排除了退市股票。退市股票在退市前的表现往往很差,如果被排除,回测收益会被严重高估。
如何避免:使用全量历史数据(包含已退市股票),或在数据处理时明确标注“剔除退市股”的假设。
陷阱二:未来函数
在回测中无意中使用了“未来才能获得的信息”——比如用当季财报数据在财报发布前进行选股。
如何避免:使用前一期的财报数据,确保选股时使用的数据在当时是已经公开的。
陷阱三:数据挖掘过拟合——“因子动物园”
在大量因子中反复搜索,总能找到几个“恰好”在样本内有效的因子。这些因子在样本外几乎必然失效。学术界有一个著名的说法叫 “因子动物园”(Factor Zoo) ——指被发现的因子越来越多,但真正有经济逻辑支撑的因子却寥寥无几。
如何避免:
- 使用样本外测试(用未参与训练的数据验证)
- 使用滚动窗口训练(避免固定参数)
- 优先选择有经济逻辑支撑的因子(而非纯数据挖掘的因子)
- 不要成为“因子收藏家”,要成为“因子鉴别师”
陷阱四:因子拥挤
当一个因子被太多资金追逐时,其超额收益会逐渐下降甚至消失。拥挤的因子可能在回测中表现优异,但在实盘中表现平平。
如何识别:
- 因子暴露的集中度
- 因子相关基金的规模增长
- 因子多空组合的收益衰减
4.4 因子筛选的实操步骤
Step 1:确定候选因子池
根据因子的分类体系,从每个大类中选取3-5个代表性小因子,构建初始候选池(通常50-100个因子)。
Step 2:单因子测试
对每个因子进行IC检验、分组回测和回归检验,记录每个因子的IC均值、ICIR、多空收益、T值等指标。
Step 3:相关性分析
计算因子之间的相关系数,剔除高度相关的冗余因子(相关系数 > 0.7)。
Step 4:综合评分排序
根据IC均值、ICIR、多空收益、T值等指标对因子进行综合评分,选出排名靠前的因子进入最终模型。
Step 5:样本外验证
用未参与筛选的数据验证入选因子的有效性,确保筛选结果不是过拟合的产物。
五、因子如何组合——从单因子到多因子
5.1 因子合成的核心原则
筛选出有效因子后,下一步是将它们合成为一个综合得分。因子合成的核心原则是:低相关性比高IC更重要。
| 原则 | 说明 | 示例 |
|---|---|---|
| 低相关性 | 因子之间相关性越低,组合的分散化效果越好 | 价值因子与动量因子相关性通常较低 |
| 经济逻辑 | 因子组合应有经济逻辑支撑 | 价值+成长+质量 = 选“又好又便宜”的股票 |
| 稳定性优先 | 稳定的因子组合比偶尔高收益的组合更可靠 | 等权法比动态加权法更稳健 |
| 可解释性 | 组合后的因子应能被解释 | 避免“黑箱”组合 |
5.2 常见的因子合成方法
| 合成方法 | 计算方式 | 优点 | 缺点 |
|---|---|---|---|
| 等权法 | 所有因子权重相同 | 简单稳健,任何时期总有因子起作用 | 不区分因子重要性 |
| IC加权法 | 按IC值赋予权重 | 强调预测能力强的因子 | IC可能不稳定 |
| ICIR加权法 | 按ICIR赋予权重 | 兼顾预测能力和稳定性 | 计算较复杂 |
| 动态加权法 | 根据近期表现动态调整权重 | 适应市场变化 | 可能过拟合,换手率高 |
实证参考(中证500股票池,不同合成方法的回测表现):
| 合成方法 | 多空组合年化收益率 | 最大回撤 | 月度胜率 |
|---|---|---|---|
| 等权法 | 9.88% | -16.23% | 57.41% |
| IC加权法 | 7.83% | — | — |
| IR加权法 | 7.42% | — | — |
数据解读:在中证500股票池中,等权合成的复合因子回测表现最优,多空组合年化收益率达9.88%。这说明“简单”不等于“无效”——等权法虽然朴素,但避免了过度优化,在实际应用中往往更稳健。
5.3 因子组合的“配方”思路
思路一:互补型组合
选择逻辑上互补的因子进行组合,覆盖不同的收益来源:
| 组合 | 覆盖维度 | 适用环境 |
|---|---|---|
| 价值 + 成长 | 便宜 + 增长 | 均衡市场 |
| 质量 + 低波动 | 好公司 + 低风险 | 熊市/震荡市 |
| 动量 + 反转 | 趋势 + 均值回归 | 趋势市中择时 |
| 价值 + 动量 + 质量 | 便宜 + 强势 + 优质 | 全面覆盖 |
实战选择:在牛市初期,动量+成长组合效果最好;在牛市末期,价值+低波动组合更安全;在熊市中,质量+低波动是“避风港”;在震荡市中,价值+动量组合往往能兼顾收益和稳健。
思路二:分层组合(“漏斗式”选股)
先用一两个因子做初筛(如剔除高估值、高波动股票),再用精细因子做终选:
| 层级 | 目的 | 因子示例 |
|---|---|---|
| 第一层(初筛) | 剔除风险股 | 剔除ST、停牌、流动性差 |
| 第二层(粗筛) | 快速缩小范围 | 低估值、低波动 |
| 第三层(精筛) | 综合打分排序 | 多因子综合得分 |
5.4 不同股票池的因子组合差异
因子组合并非“一招鲜吃遍天”——不同的股票池中,因子的有效性和组合方式存在差异:
| 股票池 | 因子表现特征 | 推荐组合方式 |
|---|---|---|
| 沪深300 | 大市值股票,基本面因子更有效 | 质量+价值+低波动 |
| 中证500 | 中等市值,成长因子更有效 | 成长+动量+质量 |
| 中证1000 | 小市值,量价因子更有效 | 动量+反转+换手率 |
六、多因子模型的构建流程
一个完整的多因子模型通常包含以下六个步骤:
Step 1:因子池选择与数据获取
确定候选因子池,根据各因子的计算方法获取相应的财务和量价数据。因子池通常包含几十到上百个候选因子,涵盖价值、成长、质量、动量、波动等多个维度。
Step 2:因子数据处理(关键步骤)
原始因子数据存在异常值、量纲不同、缺失值等问题,需要进行三步处理:
| 处理步骤 | 方法 | 目的 |
|---|---|---|
| 去极值 | 中位数去极值法、MAD法 | 消除极端值对模型的影响 |
| 标准化 | Z-Score标准化 | 消除量纲差异,使不同因子可比 |
| 中性化 | 对市值、行业做回归取残差 | 剔除市值和行业的影响,提取因子本身的alpha |
Step 3:因子有效性检验
检验每个因子是否具有预测未来收益的能力。常用方法包括:
| 检验方法 | 说明 | 评价指标 |
|---|---|---|
| IC法(信息系数) | 因子值与未来收益的相关系数 | IC均值 > 0.03,IC胜率 > 60% |
| IR法(信息比率) | IC均值 / IC标准差 | IR > 0.5 表示因子稳定有效 |
| 分组回测法 | 按因子值分组,观察各组收益单调性 | 分组收益单调递减/递增 |
| 回归检验法 | 因子值与收益的回归分析 | T值 > 2 表示统计显著 |
Step 4:因子合成
将筛选出的有效因子合成为一个综合得分。常见方法包括等权法、IC加权法、ICIR加权法等。
Step 5:组合构建与调仓
根据综合得分选股并构建投资组合。关键决策包括:
| 决策项 | 常见做法 | 说明 |
|---|---|---|
| 选股数量 | Top 20-50只 | 数量越多,分散性越好,但单只贡献越小 |
| 调仓周期 | 周频或月频 | 基本面因子月频,量价因子可周频 |
| 权重方式 | 等权、市值加权、风险平价 | 等权最简单,风险平价最稳健 |
| 风险控制 | 行业中性、市值中性、个股上限 | 控制偏离基准的风险 |
Step 6:动态监控与调整
多因子模型不是“建完就不用管了”——因子需要持续监控、定期评估、动态调整。
6.1 因子的动态监控
多因子策略的“因子池”就像一个养鱼池——你不能只养一种鱼(单因子),因为一旦这种鱼生病了(因子失效),整个池子就空了。你要养多种鱼(多因子),它们在不同的水温(市场环境)下轮流活跃——夏天鲫鱼活跃,冬天鲤鱼活跃。因子池的价值不在于每一条鱼都强壮,而在于总有一条鱼在合适的时候出来吃饵。
| 监控内容 | 监控频率 | 预警信号 |
|---|---|---|
| 因子IC衰减 | 月度 | IC均值连续3个月下降 |
| 因子拥挤度 | 季度 | 因子暴露集中度显著上升 |
| 因子收益变化 | 月度 | 多空收益持续下降 |
| 因子相关性变化 | 季度 | 因子间相关性突然上升 |
| 因子换手率 | 月度 | 因子分组换手率异常升高 |
6.2 因子失效时的应对策略
策略一:因子替换
当一个因子持续失效时,用同类的备用因子替换。例如,PE因子失效时,可以用PB或PS因子替代。
策略二:权重调整
降低失效因子的权重,提高有效因子的权重。动态加权法可以根据因子近期表现自动调整权重。
策略三:因子定制
在基础因子上做调整,形成“定制因子”。例如,将“5日动量因子”改为“10日动量+成交量过滤”(仅选量增的股票),拥挤度比基础因子低30%-40%。
策略四:策略切换
当多因子策略整体失效时(如市场风格剧烈切换),暂停多因子策略,切换到其他策略(如趋势跟踪、事件驱动等)。
七、仓位、买卖点与风险管理
7.1 入场与调仓信号
多因子策略的入场信号不是“某一时刻触发”,而是“定期选股、动态调仓”:
| 步骤 | 操作 | 说明 |
|---|---|---|
| Step 1 | 确定股票池 | 全市场A股,剔除ST、停牌、次新股 |
| Step 2 | 计算因子值 | 对每个股票计算所有因子的值 |
| Step 3 | 数据处理 | 去极值、标准化、中性化 |
| Step 4 | 计算综合得分 | 按权重合成综合得分 |
| Step 5 | 排序选股 | 按综合得分从高到低排序,选Top N |
| Step 6 | 调仓执行 | 卖出不在组合中的股票,买入新进入的股票 |
7.2 仓位管理
多因子策略的仓位管理相对灵活:
- 等权重配置:每个选中的股票分配相同资金(最简单)
- 因子得分加权:综合得分越高的股票分配更多资金
- 风险平价:根据波动率调整权重,使每只股票的风险贡献相等
调仓频率的选择:
- 月频调仓:适合基本面因子(财报数据月频更新)
- 周频调仓:适合量价因子(价格数据日频更新)
- 混合调仓:基本面因子月频、量价因子周频,分开调仓
7.3 止损设计
多因子策略的止损主要通过组合层面的风险控制实现:
| 风控方式 | 触发条件 | 说明 |
|---|---|---|
| 个股止损 | 单只股票跌幅超过阈值(如-20%) | 卖出该股票 |
| 行业中性 | 控制行业偏离度 | 避免行业集中度过高 |
| 市值中性 | 控制市值风格暴露 | 避免过度暴露于某一市值风格 |
| 最大回撤止损 | 策略总回撤超过阈值(如-15%) | 降低仓位或暂停策略 |
7.4 多因子策略的三大风险
风险一:过拟合
多因子模型有大量可调参数(因子选择、权重、阈值等)。如果过度优化历史数据,模型可能在样本内表现优异,但在样本外大幅失效。
如何防范:
- 使用样本外测试(用未参与训练的数据验证)
- 使用滚动窗口训练(避免未来信息)
- 限制因子数量(因子越多,过拟合风险越高)
- 优先选择有经济逻辑支撑的因子(而非纯数据挖掘的因子)
风险二:因子衰减
一个因子被发现后,随着越来越多资金涌入,其超额收益会逐渐下降甚至消失。
如何防范:
- 持续挖掘新因子(扩充因子池)
- 动态调整因子权重(根据近期表现)
- 关注因子拥挤度(避开资金过于集中的因子)
风险三:因子拥挤
当大量资金追逐同一个因子时,该因子的超额收益会被“买没了”。
如何识别:
- 因子暴露的集中度
- 因子相关基金的规模增长
- 因子多空组合的收益衰减
老陈点评:
多因子策略最大的挑战不是“找到好因子”,而是“持续管理因子池”。因子是有生命周期的——今天有效的因子,明天可能就失效了。 一个优秀的多因子模型,不是建完就不用管了,而是需要持续监控、定期评估、动态调整。这不是一次性的工程,而是持续运营的系统。
老王补充:
我在机构里见过太多“回测曲线完美、实盘一塌糊涂”的多因子策略。原因无非两个:过拟合和因子拥挤。回测里漂亮的曲线,往往是因为你无意中用了未来数据,或者因子恰好拟合了那段行情。实盘是检验真理的唯一标准——先用小资金跑半年再说。
八、策略的来历、设计者与趣闻
多因子模型的发展史,是一部金融学从“单因素解释世界”到“多因素理解世界”的演进史。
CAPM模型(1964年) :夏普(William Sharpe)在1964年正式发表了资本资产定价模型(CAPM)的核心论文,认为股票的预期收益只与一个因素有关——市场风险(Beta) 。这是多因子模型的“1.0版本”,虽然简洁,但很快被实证研究证明“不够用”。
套利定价理论APT(1976年) :罗斯(Stephen Ross)提出了套利定价理论(APT),将CAPM从单因素扩展到多因素。APT认为股票的收益可以由多个宏观经济因素解释,但APT没有告诉我们应该用哪些因素——这为后来的研究者留下了探索空间。
Fama-French三因子模型(1993年) :这是多因子模型发展史上最重要的里程碑。Fama和French发现,除了市场风险之外,市值规模(小市值溢价)和账面市值比(价值溢价) 也能显著解释股票的超额收益。他们提出的三因子模型迅速成为学术界和业界的主流框架。
Fama-French五因子模型(2015年) :在三因子模型的基础上,Fama和French增加了盈利因子(RMW,高盈利减低盈利)和投资因子(CMA,低投资减高投资) ,提出了五因子模型。这个模型更全面地解释了股票的超额收益。
趣闻:Fama和French在2015年提出五因子模型时,距离他们提出三因子模型已经过去了22年。有记者问Fama:“为什么等了这么久才推出五因子模型?”Fama的回答很干脆:“因为我们之前没发现这两个因子。 ”——这恰恰说明了因子研究的本质:不是“发明”因子,而是“发现”市场中已经存在的规律。
另一个有趣的事实:五因子模型中的投资因子(CMA)实际上是一个“反向”因子——投资越少的公司,未来收益越高。这背后的逻辑是:过度投资往往伴随着资本回报率下降和代理成本上升——管理层为了追求规模而牺牲了资本配置效率。而投资谨慎的公司更能保持盈利能力。有时候,“不做什么”比“做什么”更重要。
老陈点评:
Fama和French的工作意义在于,他们把“选股”从一门“艺术”变成了一门“科学”。在三因子模型之前,选股靠的是经验和直觉;在三因子模型之后,选股有了可量化、可检验、可复现的框架。这不是说经验不重要,而是说经验可以被系统化。
老王补充:
我在机构里见过无数“自称多因子”的策略,其实就是把几个指标加权打分。这本身没有错,但真正的多因子模型不是“打分”,而是“解释”——你要知道每个因子为什么能赚钱、什么时候会失效、因子之间是什么关系。 只知道“怎么算”不知道“为什么”的人,做不好多因子。
九、Python回测示例
以下代码演示一个简化的多因子选股策略在A股市场的回测。包含价值、成长、质量、动量四个因子,采用等权合成、月频调仓。
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
# 注意:
# 1. 本代码为多因子选股策略的选股逻辑框架,需要接入专业数据源(聚宽、优矿、Tushare等)
# 2. 实际运行需要获取股票的财务数据和量价数据
# 3. 以下代码展示选股逻辑,完整回测需要实现逐期循环、净值计算和统计指标
# 4. 建议使用聚宽、优矿等平台的内置回测引擎,或自行实现回测循环
def multi_factor_strategy(
stock_data, # 股票数据(含因子值)
factor_list, # 因子列表
factor_weights=None, # 因子权重(默认等权)
top_n=30, # 选股数量
rebalance_freq='M' # 调仓频率('W'周频,'M'月频)
):
"""
多因子选股策略(选股逻辑框架)
参数:
stock_data: DataFrame,包含每只股票的因子值和价格数据
factor_list: 因子名称列表
factor_weights: 因子权重(默认等权)
top_n: 选股数量
rebalance_freq: 调仓频率
返回:选中的股票列表
"""
df = stock_data.copy()
# 1. 因子数据处理
for factor in factor_list:
# 去极值(MAD法,3倍MAD阈值)
# MAD法对极端值比标准差法更稳健,3倍MAD约等于4.5倍标准差
median = df[factor].median()
mad = (df[factor] - median).abs().median()
upper = median + 3 * mad
lower = median - 3 * mad
df[factor] = df[factor].clip(lower, upper)
# 标准化(Z-Score)
df[factor] = (df[factor] - df[factor].mean()) / df[factor].std()
# 2. 计算综合得分
if factor_weights is None:
factor_weights = {f: 1/len(factor_list) for f in factor_list}
df['Score'] = 0
for factor, weight in factor_weights.items():
df['Score'] += weight * df[factor]
# 3. 按得分排序选股
df = df.sort_values('Score', ascending=False)
selected = df.head(top_n)['code'].tolist()
# 选股逻辑输出
print(f"选股数量:{top_n}")
print(f"因子列表:{factor_list}")
print(f"因子权重:{factor_weights}")
print(f"选中股票示例:{selected[:5]}")
return selected
# 完整回测的伪代码示例:
#
# for period in periods:
# # 获取当期数据
# data = get_data(period)
# # 选股
# selected = multi_factor_strategy(data, factors, top_n=30)
# # 计算当期收益
# period_return = calculate_return(selected)
# # 记录净值
# nav.append(nav[-1] * (1 + period_return))
#
# # 统计指标
# total_return = (nav[-1] / nav[0] - 1) * 100
# max_drawdown = max((nav.cummax() - nav) / nav.cummax()) * 100
# 使用示例(聚宽平台):
#
# from jqdatasdk import *
# auth('username', 'password')
#
# # 获取全市场股票数据
# stocks = get_index_stocks('000300.XSHG')
# df = get_fundamentals(query(...))
# df = get_price(stocks, ...)
#
# # 定义因子
# factors = ['pe', 'pb', 'roe', 'momentum_20d']
#
# # 运行策略选股
# result = multi_factor_strategy(df, factors, top_n=30)
回测结果参考(基于公开数据,不同因子组合和时段结果存在显著差异):
| 指标 | 参考值 |
|---|---|
| 年化收益率 | 15%-30% |
| 最大回撤 | 15%-25% |
| 年化超额收益(vs沪深300) | 5%-15% |
| 信息比率 | 0.8-1.5 |
| 月度胜率 | 60%-70% |
注:以上数据为不同多因子策略的历史回测参考值,实际表现取决于因子选择、权重设置和市场环境。不同时间段、不同股票池的结果可能存在显著差异。等权法在A股市场整体表现较好。但需要强调的是,回测表现不代表未来收益,过拟合和因子衰减是实盘中的主要风险。
代码说明:
本代码为多因子选股策略的选股逻辑框架,展示了从因子数据处理到综合得分计算到选股的核心逻辑。完整回测需要实现逐期循环——即对每个调仓周期重复执行选股逻辑,并计算每期的持仓收益。建议使用聚宽、优矿等平台的内置回测引擎,或自行实现回测循环。数据部分需要接入专业数据源(Wind、Tushare、聚宽等)获取真实的因子数据。
老陈点评:
回测时要注意:多因子策略的回测结果对数据处理方式极其敏感。 去极值的方法、标准化的方式、中性化的维度——每一个细节都可能影响最终结果。建议使用滚动窗口进行回测,并严格区分训练集和测试集,避免过拟合。
老王补充:
实盘中最大的问题是因子数据的质量。财务数据有披露延迟、有修正、有缺失——如果你不注意这些细节,回测和实盘的差距会非常大。建议先用财务数据的最新可用版本(而非回测时的“事后”数据)进行回测,这样才能模拟实盘的实际情况。
十、本章小结与思考题
小结
| 项目 | 核心要点 |
|---|---|
| 策略类型 | 多因子选股 / 系统性选股 |
| 核心逻辑 | 用多个维度综合评估股票,选出综合得分最高的组合 |
| 理论基础 | CAPM(1964)→ APT(1976)→ FF3(1993)→ FF5(2015) |
| 因子分类 | 11大类:估值、成长、质量、杠杆、规模、动量、波动、换手、情绪、股东、技术 |
| 六大核心因子 | 价值、动量、质量、低波动、规模、成长 |
| 数据来源 | Wind、Tushare、聚宽、优矿、BigQuant、AlphaFeed |
| 筛选标准 | IC均值>0.03、ICIR>0.5、|T值|>2、多空收益>10% |
| 合成方法 | 等权、IC加权、ICIR加权、动态加权 |
| 六大步骤 | 因子选择 → 数据处理 → 有效性检验 → 因子合成 → 组合构建 → 动态监控 |
| 核心优势 | 收益来源多样、容量大、逻辑透明 |
| 最大风险 | 过拟合、因子衰减、因子拥挤 |
| 资金门槛 | 低至中等(持有20-50只股票) |
多因子选股策略是量化投资中最成熟、应用最广泛的策略流派。它从单因子的“偏科生”思维升级为多因子的“综合能力”思维,通过组合多个低相关性因子,构建了一个“东方不亮西方亮”的选股系统。
因子的“生命周期” :从发现到验证、从应用到失效、从失效到迭代——这是一个完整的循环。没有永恒的因子,只有持续进化的因子体系。
老陈总结:
多因子策略的灵魂不是“找到最好的因子”,而是“建立一个稳定的因子组合”。单因子像一颗珍珠,多因子像一串项链——单个珍珠可能不完美,但串在一起就能熠熠生辉。 在多因子策略中,因子之间的低相关性比单个因子的高IC更重要——因为低相关性保证了“总有一个因子在工作”。六大核心因子就像六种不同的投资风格:价值因子找便宜货、动量因子追趋势、质量因子选好公司、低波动因子求安稳、规模因子买小盘股、成长因子投高增长——它们各自在不同市场环境中轮流发光。
老王总结:
如果你想做多因子策略,我的建议是:先从3-5个简单因子开始——比如PE(估值)、ROE(质量)、营收增长(成长)、20日动量(动量)。跑通之后再慢慢加因子、优化权重。不要一上来就搞几十个因子的复杂模型——那不是量化,那是过拟合的温床。
💡 思考题
- 单因子策略和多因子策略的本质区别是什么?为什么多因子策略的收益曲线通常比单因子策略更平滑?
- Fama-French三因子模型包含了哪三个因子?每个因子的经济逻辑是什么?五因子模型又增加了哪两个因子?
- 因子数据处理中的“去极值”“标准化”“中性化”分别解决什么问题?如果跳过某一步,会对策略产生什么影响?
- IC和IR的区别是什么?一个因子IC很高但IR很低,说明什么问题?在因子筛选时,你会优先选择IC高还是IR高的因子?
- 多因子策略面临“因子衰减”和“因子拥挤”两大风险。你认为这两者之间是什么关系?如果一个因子出现了拥挤迹象,你会如何应对?
- 因子筛选的“漏斗模型”包含哪几层筛选?每一层的筛选标准是什么?为什么要采用“漏斗模型”而不是直接使用所有因子?
- 等权法、IC加权法、ICIR加权法这三种因子合成方法各有什么优缺点?实证研究表明,在中证500股票池中等权法表现最优,你认为这是为什么?
- 价值、动量、质量、低波动、规模、成长这六大核心因子各自的特点是什么?在不同的市场环境(牛市初期、牛市末期、熊市、震荡市)中,你会优先选择哪几个因子进行组合?为什么?
- (展望题) 随着机器学习技术的发展,传统的线性多因子模型正在被非线性模型(如随机森林、XGBoost)取代。你认为传统多因子模型会被完全取代,还是两者会长期共存?请从“可解释性”和“预测能力”两个角度分析。
引用/参考出处
网上内容:
- 百度知道:《多因子选股(十八):从多因子到多策略》(2024-09-10):https://zhidao.baidu.com/question/1780538711821179420.html
- 百度知道:《多因子模型实战:7步构建超级选股策略》(2018-09-27):https://zhidao.baidu.com/question/469276926233257925.html
- 东方财富:《量化交易——因子选股、多因子选股策略目录》:https://caifuhao.eastmoney.com/news/20211102033403258126860
- 百度知道:Python量化交易:多因子策略与理论介绍:https://zhidao.baidu.com/question/1746678608355893947.html
- BigQuant《Fama和French的五因子模型介绍》:https://bigquant.com/wiki/doc/hiQfGBEwbG
- BigQuant《因子构建与标注-认识因子逻辑》:https://bigquant.com/wiki/doc/7IRqmluD3g
- 知乎专栏《多因子选股:用一套可复制的打分系统,把选股从感觉变成规则》:https://zhuanlan.zhihu.com/p/2005645782028685663
- 百度开发者《基于多因子量化选股的Python实现与投资策略解析》:https://developer.baidu.com/article/detail.html?id=3790784
- GitHub《一个完整的多因子选股量化策略项目》:https://github.com/1984tkr/multi-factor-stock-selection
- 腾讯云《用Python做多因子选股:从单一指标到因子打分体系》:https://cloud.tencent.cn/developer/article/2690090
学术论文与图书(元信息):
- Fama, E. F., & French, K. R. (1993). “Common risk factors in the returns on stocks and bonds.” Journal of Financial Economics, 33(1), 3-56.(三因子模型的奠基之作)
- Fama, E. F., & French, K. R. (2015). “A five-factor asset pricing model.” Journal of Financial Economics, 116(1), 1-22.(五因子模型的扩展)
- Sharpe, W. F. (1964). “Capital asset prices: A theory of market equilibrium.” Journal of Finance, 19(3), 425-442.(CAPM模型的经典论文)
- Jegadeesh, N., & Titman, S. (1993). “Returns to Buying Winners and Selling Losers: Implications for Stock Market Efficiency.” Journal of Finance, 48(1), 65-91.(动量效应的经典论文)


















暂无评论内容