因子与交易信号
因子与交易信号
本章介绍如何从原始数据构造“因子(Factor)”和“交易信号(Signal)”,并对其进行初步检验。因子是量化投资尤其是股票多因子策略的核心概念。
在学术文献中,因子模型最早可以追溯到单因子的资本资产定价模型(CAPM),随后发展出 Fama–French 三因子模型、五因子模型等多因子框架,用以刻画价值、规模、盈利能力等系统性风险暴露(见 Fama & French, 1993, 2015)。在量化实务中,我们通常会在这些“已知”因子基础上,进一步挖掘新的 alpha 因子。
形式化一点,我们可以在横截面上写出经典的线性因子模型:
其中:
- 是资产 在 到 的超额收益;
- 是一组系统性因子(如市场、规模、价值、动量等)的收益向量;
- 是资产 对这些因子的暴露;
- 是无法被这些因子解释的超额收益(通常被视为“纯 alpha”)。
在资产定价的视角下,我们关心的是 的风险溢价是否存在、 是否能解释截面上的收益差异;而在量化策略的视角下,我们既关心 (因为它影响组合风险),也关心 (因为它是主动收益的来源)。本章讨论的“因子”和“信号”,可以理解为对 和 的进一步细化和工程化实现。
1. 因子与信号的基本概念
- 因子(Factor):刻画资产某一“特征”的数值,例如估值水平、盈利能力、价格动量等。
- 交易信号(Signal):给出具体操作方向和强度的信息,例如某只股票明天应该“加仓 2%”或“减仓 1%”。
通常的流程是:
- 从原始数据构建多个因子;
- 检验因子的预测能力(比如是否能预测未来收益率);
- 将一个或多个因子组合成交易信号;
- 将信号转化为实际仓位或订单,进入回测或真实交易。
2. 常见因子类型
这里按较常见的分类方法进行概览,仅列举典型例子,具体实现会根据市场和策略而变化。
2.1 估值因子(Value)
描述资产当前价格相对于其基本面是否“便宜”或“贵”。常见指标:
- 市盈率 PE(Price-to-Earnings):
- 市净率 PB(Price-to-Book):
- 股息率 Dividend Yield:
估值因子的典型假设:低估值资产未来预期收益更高,对应于学术文献中的“价值溢价”(value premium)。例如 Fama & French (1993) 通过构建高账面市值比减去低账面市值比组合(HML),验证价值因子在股票回报中的重要性。
2.2 成长因子(Growth)
刻画公司盈利和规模的成长性:
- 营业收入增长率;
- 净利润增长率;
- EPS 增长率;
- 现金流增长情况等。
典型假设:高成长公司未来盈利和股价有更高的上行空间(成长溢价)。
2.3 质量因子(Quality)
刻画公司盈利质量、财务稳健程度:
- ROE(净资产收益率);
- 毛利率、净利率;
- 资产负债率、流动比率;
- 盈利的稳定性(利润波动率较小)。
典型假设:高质量公司在长期具有更稳健的收益表现和相对较低的风险。
2.4 动量与反转因子(Momentum & Reversal)
根据历史价格走势构建因子:
- 动量因子:
- 例如过去 3~12 个月的累积收益:
- 更接近文献的定义是去掉最近一个月的收益(即“12-2” 动量),以避免短期反转的干扰(参见 Jegadeesh & Titman, 1993):
- 假设:涨得多的继续涨,跌得多的继续跌(趋势延续)。
- 短期反转因子:
- 例如过去 1~5 日的收益率:
- 假设:短期内价格有过度反应,存在均值回归。
2.5 情绪与流动性因子(Sentiment & Liquidity)
- 换手率、成交量、买卖盘不平衡等;
- 研报推荐、新闻情绪、舆情指标;
典型假设:
- 投资者情绪会在短期内驱动资产价格偏离基本面;
- 流动性较好的资产更易交易,但过高的换手也可能意味着噪声较多。
3. 因子构建的一般流程
从工程和研究的角度,一个规范的因子构建流程大致如下:
- 定义经济/金融含义:
- 因子应该有清晰的经济解释,而不仅仅是“机器自动筛出来的公式”。
- 确定计算公式和频率:
- 例如:PE 按滚动 12 个月盈利计算;动量按过去 12 个月收益率但去掉最近 1 个月。
- 处理原始指标的缺失和异常值:
- 参考上一章的数据清洗方法。
- 标准化与中性化处理:
- 将不同量纲的因子转化到可比较的尺度;
- 对行业、市值等进行中性化,避免因子只是“伪装的行业/市值效应”。
- 因子存储与版本管理:
- 对于生产环境,需要对因子值进行版本控制和回溯,确保回测和实盘的一致性。
4. 标准化与中性化
4.1 标准化(Standardization)
一个常见做法是对因子在每个截面(例如每天)上进行 z-score 标准化:
其中:
- 为第 只资产的原始因子值;
- 为当期截面因子值的均值;
- 为当期截面因子值的标准差。
标准化后的因子:
- 均值约为 0,标准差约为 1;
- 便于不同因子的组合和比较;
- 对极端值的影响相对更可控(通常会配合去极值)。
4.2 中性化(Neutralization)
假设我们构建了一个“质量因子”,但在截面回归中发现:
- 质量因子与市值因子高度相关;
- 质量因子与某些行业权重高度重叠。
这时,如果不做中性化,回测看到的“质量因子收益”可能实际上是市值或行业暴露带来的。
常见做法是通过截面回归将因子对指定变量(如市值、行业哑变量)回归,保留残差部分作为“中性化因子”:
- :原始因子值;
- :市值(可取对数);
- :行业虚拟变量(1 表示属于该行业,0 表示不属于);
- :回归残差,被视为剔除了市值和行业影响后的“纯因子”。
在实践中,大多数多因子模型都会使用中性化因子进行组合,以提高可解释性和稳定性。
用组内去均值看清行业中性化
静态结果为 A/C/E 做多、B/D/F 做空,权重绝对值之和为 1,下一期多空收益为 0.88%。这个六只股票的算例只展示“剔除组均值”的机械含义。真实行业中性化还要处理行业内样本数、连续市值暴露、权重和异方差;中性化也会改变目标信号,不能作为默认仪式。
5. 因子有效性的初步检验
构建好因子后,需要检验其是否具有预测未来收益的能力。最常见的两个工具是排序分组法和 IC/Rank IC。
5.1 排序分组回测(Portfolio Sorts)
基本步骤:
- 在每个截面(如每月末),按因子值从低到高对所有资产排序;
- 将资产分成若干组(如 5 组或 10 组);
- 计算每一组在下期的平均收益率;
- 比较高因子组与低因子组之间的收益差异。
如果该因子有效,通常会观察到:
- 高因子组(如最高分组 Q5)的平均收益率显著高于低因子组(如最低分组 Q1);
- “多高因子组、空低因子组”的多空组合收益显著为正;
- 这一特征在较长时间范围、不同市场环境下具有一定稳健性。
从更偏“资产定价实证”的角度看,分组回测也可以被视为一种非参数的横截面检验:
- 将因子值视为对未来收益率的排序指标;
- 若因子具有单调性和稳定性,则高分组与低分组之间的收益差可以视为对该因子“价格”的估计。
分组收益单调性:因子是否真的能排序未来收益
排序分组先看 Q1 到 Q5 的整体形状,再看多空组合的收益是否稳定。
分组回测首先看的是排序关系,而不是某一组是否碰巧赚钱。如果 Q1 到 Q5 的收益大体单调上升,Q5-Q1 的多空收益才更像来自因子信息;如果收益只在某一个分组突然跳起,就要警惕极端样本、行业暴露或数据挖掘。中性化后的曲线仍然向上,才更有资格进入下一步的稳健性检验。
对分组组合本身,还可以进一步做时间序列回归,例如检验多空组合收益对 Fama–French 因子是否具有正的截距:
若 显著大于 0,说明该因子在控制传统风险因子后仍然具有独立的超额收益贡献。
5.2 IC(Information Coefficient)与 Rank IC
在截面上计算因子与下期收益率之间的相关性:
- IC:使用皮尔逊相关系数,度量线性相关:
- Rank IC:使用秩相关(如 Spearman 相关),度量排序的一致性:
其中:
- 是时点 的因子截面向量;
- 是从 到 的收益率向量。
统计量:
- IC 的时间序列均值 :衡量平均预测能力;
- IC 的标准差 和 t 统计:衡量显著性;
- IC 的信息比率(IR):
在许多学术和实务研究中(例如 Grinold & Kahn, 2000),Rank IC 被视为“信息系数”,其大小与预期的 Alpha 信息含量和可实现的信息比率紧密相关,是构造多因子模型和组合优化的关键输入之一。
不要把某个 IC 数值当成跨市场阈值。同样的 0.03 会因资产数量、持有期重叠、换手、衰减速度、横截面依赖和成本而具有完全不同的经济价值。报告 IC 的时间序列分布、有效样本量、分组单调性、成本后组合增量,并与冻结的基准模型比较。
在假设 独立同分布且均值为 、标准差为 的简化情形下,可以形式化地写出 IR:
当我们将因子信号线性地转化为组合权重、并在较长时间内稳定交易时,策略的理论信息比率可以近似写成:
其中 是“独立投注次数”(breadth),这一关系在 Grinold 的“基本定理(Fundamental Law of Active Management)”中有详细推导:
尽管在现实世界中“独立投注次数”的定义远比理论中复杂,这一公式仍然为我们提供了一个直观的启示:
- 在保持因子质量(IC)不变的情况下,增加频率、扩展标的池可以提升策略的 IR;
- 反之,再强的因子,如果可交易机会很少,其最终 IR 也可能有限。
6. 信号合成与多因子模型
实际策略中很少只依赖单一因子,更多是多个因子共同决定一个资产的“打分”或“目标权重”。
6.1 线性打分模型
最简单的形式是线性组合:
其中:
- 是第 个因子在资产 上的值(通常已标准化);
- 是该因子的权重,可以:
- 手工设定(如等权、经验权重);
- 通过回归或优化估计。
打分越高,代表越应该“多持有”该资产,打分越低则反之。后续可将打分转换为:
- 排名选股(例如选出前 20% 构建多头组合);
- 或者通过线性变换直接得到目标持仓权重。
在资产定价的语境下, 可以被视为对资产 未来超额收益 的一个线性估计器;在 Grinold–Kahn 框架中,若我们假设
则上式中的 实际上反映了各因子对预期超额收益贡献的大小。进一步结合协方差矩阵,就可以在均值–方差框架下得到最优组合权重(见第 04 章)。
6.2 基于机器学习的信号模型(概览)
在更复杂的场景中,可以使用机器学习模型从因子中学习非线性关系,例如:
- 树模型:随机森林、梯度提升树等;
- 线性/逻辑回归:预测超额收益或上涨概率;
- 简单神经网络等。
注意事项:
- 机器学习模型更易发生过拟合;
- 需要更严格的样本划分、交叉验证和稳定性检验;
- 在生产环境中还要考虑模型可解释性、计算成本和延迟。
近年来有大量研究尝试将机器学习用于因子挖掘与资产定价(例如 Gu, Kelly & Xiu, 2020),结果表明在控制好过拟合和交易成本的前提下,复杂模型可以在横截面预测中获得一定增益。不过,模型复杂度与解释性之间的权衡在实务中非常重要。
从计量经济学的视角看,这类模型本质上是在拟合一个高维非线性条件期望:
其中 是一个高维特征向量, 可以由树模型、神经网络等逼近。Gu, Kelly & Xiu (2020) 将这一框架与 Fama–MacBeth 回归结合,提出了“机器学习版”的资产定价横截面检验思路,为后续大量工作奠定了基础。
7. 因子筛选:从候选到“可投因子”
前面的章节更多关注因子构建和单因子检验,在实务中,从“数十到数百个候选因子”走到“真正在组合里拿资金”的过程,往往会经历一套相对标准化的因子筛选流程。下面给出一个常见的“实战标准版”工作流,可视为对前文内容的系统组织。
7.1 阶段 1:因子构建(Factor Construction)
目标:生成一篮子候选因子,数量可以从几十到几百不等。
典型步骤:
- 数据预处理(对应第 01 章):
- 去极值:MAD、分位数剪裁(quantile clipping);
- 标准化:z-score 或秩标准化(rank-based);
- (可选)行业/市值中性化:剔除行业和大小盘效应,得到“纯风格”因子。
- 因子生成方式:
- 经典财务因子:Value/Quality/Growth 等;
- 技术因子:动量、波动率、成交量/换手率相关因子;
- 量价微结构因子:订单簿深度、买卖盘不平衡、成交簇等(高频数据);
- 特征工程:滑动窗口统计量(均值、标准差、偏度、峰度)、极值计数等;
- 机器学习特征:embeddings、autoencoder 提取的低维表示等。
阶段 1 的产出是一个包含大量候选因子的“因子库草稿”。
7.2 阶段 2:单因子横截面检验(Cross-sectional Predictive Test)
目标:通过截面预测能力初步筛掉明显无效的因子。
主要工具:本章第 5 节中已经介绍的 IC/Rank IC 与分组回测。
关键指标:
- 截面 IC / Rank IC 时间序列;
- IC 的 t 统计和信息比率(IR);
- IC 稳定性:正 IC 的比例、IC decay(例如从 t+1 到 t+5 的 IC 衰减曲线);
- 分组收益:long top quantile / short bottom quantile 的多空组合收益和 t 统计。
常用评估逻辑:
- 截面预测能力弱且不稳定 → 直接剔除;
- 只有在极短期(如 t+1 日)有效且对成本非常敏感 → 谨慎处理,多放在短期策略池中;
- 只有同时通过时间外推、横截面支持、分组单调性和成本敏感性检查,才进入下一阶段;
- 进入下一阶段表示“值得继续检验”,不表示已经可配置资金。
阶段 2 的产出是“通过单因子检验的因子集合”。
7.3 阶段 3:时序稳定性与鲁棒性验证(Robustness Tests)
目标:避免因子只在特定时间段或少数行业里有效。
检查内容:
- 不同时间段可重复性:
- 将样本划分为多个子期(如牛市、熊市、震荡市)分别检验 IC 与分组收益;
- 不同行业的泛化能力:
- 计算行业内 IC(industry IC)、比较因子在各行业的表现;
- 样本内 vs 样本外表现:
- 使用滚动窗口或时间切分(train/validation/test)检查是否过拟合;
- 再采样/交叉验证(Rolling CV):
- 在滚动子样本上重复因子检验,观察结果一致性;
- 极端行情敏感度:
- 针对疫情、流动性危机等极端时期,检查因子表现是否异常恶化。
判定标准(示意):
- 若因子在任何一个关键阶段出现结构性退化(例如长期为正的 IC 在某段时间持续为负且显著)→ 降权或剔除;
- 若因子只在某个细分行业或风格上有效 → 可以考虑将其作为“行业特定因子”,而非广义横截面因子。
阶段 3 的产出是“跨周期、跨行业具有一定稳健性的因子集合”。
7.4 阶段 4:风险暴露与冗余检测(Risk / Redundancy Tests)
目标:确保因子的收益不是简单的已知风险溢价,也不是对团队现有因子的重复。
- 与传统风险因子的正交检测:
- 与 Beta、Size、Value、Momentum、Volatility 等标准因子做相关性检验:
- 若相关系数 ,则新因子很可能只是旧因子的线性变换;
- 使用截面回归检验边际贡献:
其中 是已有风格因子暴露,新因子为 ;如果 的平均值不显著,则说明新因子在控制已有因子后没有额外解释力。
- 与 Beta、Size、Value、Momentum、Volatility 等标准因子做相关性检验:
- 与内部因子库的相关性:
- 将新因子与已有因子库中的所有因子计算相关矩阵;
- 若新因子与某些已有因子高度相关且构造逻辑相近 → 视为冗余,除非其在组合层面的边际贡献显著更好;
- 也可以在组合优化中加入“因子多样性”目标,限制因子间相关性过高。
阶段 4 的产出是“在风险空间和因子库空间中具有边际独立性的因子集合”。
7.5 阶段 5:可投资性评估(Tradability & Capacity Test)
目标:判断因子是否可以在真实市场中以合理成本实现其理论收益。
主要考察:
- 交易成本与冲击:
- 在加入合理的成本模型(见第 05 章)后,因子多空组合的收益是否仍为正且显著;
- 对不同参与率/规模下的表现做敏感性分析。
- 板块与市值偏差:
- 检查因子多空组合的持仓分布,是否过度偏向小盘股或流动性较差板块;
- 对小盘或冷门板块的暴露进行约束,避免滑点和冲击成本过大。
- 容量评估(Capacity):
- 在不同资金规模(如 100M / 1B / 10B)下模拟执行,估算可承载的资产规模;
- 若因子策略在较小资金下表现良好但在放大规模时收益完全被成本吞噬,则其仅适合小资金或自营账户使用。
阶段 5 的产出是“可真实部署且容量可接受的因子”。
7.6 阶段 6:因子组合贡献评估(Portfolio / IR Contribution)
目标:判断某个因子在加入现有多因子组合后,是否在组合层面带来实质性的改进。
评价标准:
- 信息比率提升(组合 IR 的增量);
- 边际夏普增量(Marginal Sharpe):加入因子后的组合夏普 vs 原组合夏普;
- 与现有组合的低相关度(因子层面和组合收益层面);
- 对组合回撤分布的影响(尾部风险是否改善)。
常见的组合测试方式:
- 等权组合:简单检验加入新因子后的整体表现变化;
- 风险平价组合:按风险贡献平衡因子,观察新因子的风险–收益比;
- 基于 IC 或预期收益的最优权重组合(例如 IC weighting、均值–方差框架、Black–Litterman 等)。
只有当新因子在上述各阶段测试中表现良好,并在组合层面带来正向的边际贡献时,才会被纳入最终的“可投因子库”。
参考文献(节选):
- Fama, E. F., & French, K. R. (1993). "Common risk factors in the returns on stocks and bonds." Journal of Financial Economics.
- Fama, E. F., & French, K. R. (2015). "A five-factor asset pricing model." Journal of Financial Economics.
- Jegadeesh, N., & Titman, S. (1993). "Returns to buying winners and selling losers: Implications for stock market efficiency." The Journal of Finance.
- Grinold, R. C., & Kahn, R. N. (2000). Active Portfolio Management. McGraw-Hill.
- Gu, S., Kelly, B., & Xiu, D. (2020). "Empirical asset pricing via machine learning." The Review of Financial Studies.
8. 从因子到交易信号
因子价值本身并不直接产生收益,需要转换为实际操作指令。常见转化步骤:
- 确定持仓方向与强度:
- 根据因子得分改变目标权重,如:
- 或者采用分组方法:Q1 组权重最低,Q5 组最高。
- 加上风险和约束条件:
- 控制总杠杆、行业权重、市值暴露等(将在组合与风险管理章节详细展开)。
- 生成订单:
- 计算当前持仓与目标持仓的差异,生成买卖指令;
- 将指令提交给执行模块。
9. 自学手册:从候选因子到可投信号
9.1 学习目标
学完本章后,你应当能够:
- 区分“因子值”“alpha 预测”和“交易信号”三件事;
- 为一个候选因子写出经济假设、计算公式、频率和数据口径;
- 使用标准化、中性化、分组回测和 IC/Rank IC 做初步检验;
- 判断一个因子是否只是行业、市值或旧因子的变形;
- 说明为什么通过单因子检验的因子仍然未必适合真实组合。
9.2 研究场景
假设你发现“过去 12 个月盈利预测上调幅度较大的股票,下个月表现更好”。团队要求你把它做成候选因子。你不能只交一条公式,而需要交一份研究包:
- 因子的经济解释是什么?
- 预测目标是未来 1 日、1 周还是 1 月收益?
- 是否做行业、市值中性化?
- Rank IC 是否稳定?IC decay 是否合理?
- 加入交易成本和容量约束后是否还可投?
本章的手册化目标,就是把“一个想法”推进到“可进入组合评审的信号”。
9.3 定义与工作流逻辑
| 层级 | 问题 | 输出 |
|---|---|---|
| 原始指标 | 数据字段如何计算? | 如盈利预测上调比例、过去收益、换手率 |
| 因子 | 指标是否有稳定经济含义? | |
| 标准化因子 | 不同资产之间是否可比较? | z-score 或 rank score |
| 中性化因子 | 是否剔除行业、市值等已知暴露? | 回归残差 |
| alpha 预测 | 因子如何映射到预期收益? | 或 Score |
| 交易信号 | 如何转成目标权重或订单? | / orders |
工作流顺序通常是:
9.4 迷你案例:12-2 动量因子评审清单
以 12-2 月动量为例,研究报告至少应回答:
- 公式:过去 12 个月到过去 2 个月的累计收益,跳过最近 1 个月以降低短期反转干扰。
- 频率:月度调仓,使用月末可见价格。
- 清洗:剔除上市不足 12 个月、长期停牌和流动性过低的股票。
- 标准化:每月横截面 winsorize 后做 z-score。
- 中性化:回归剔除行业和市值暴露。
- 检验:计算月度 Rank IC、五分组收益、Q5-Q1 多空组合收益。
- 稳健性:分牛市、熊市、震荡市检查;按行业分别计算 IC。
- 可投资性:加入半价差、佣金和冲击成本;检查换手率与小盘暴露。
- 组合贡献:与现有 Value、Quality、Low Vol 因子的相关性不能过高,并能提升组合 IR。
9.5 常见错误与研究陷阱
- 把相关性当因果:因子和未来收益相关,不代表有稳定经济机制;先要求合理解释,再谈部署。
- 只看平均 IC:平均值为正但波动极大,可能意味着因子只在少数月份赚钱。
- 中性化目标不清:过度中性化会删掉真实 alpha,不中性化又可能留下无意暴露;要与策略目标一致。
- 忽略 IC decay:如果信号只在下一日有效,却设计成月度调仓,收益会在执行前衰减。
- 候选因子互相重复:多个高相关因子叠加不会自动提高信息量,反而会放大同一风险源。
- 先看结果再改公式:反复调公式直到回测漂亮,会产生严重数据挖掘偏差。
9.6 自测题与答案提示
- 为什么因子通过分组检验后,还要看 Rank IC? 答案提示:分组检验关注组合收益和单调性,Rank IC 关注全截面排序一致性;二者互补。
- 一个因子与市值因子相关系数为 0.8,应如何处理? 答案提示:先判断经济含义是否本来就包含市值;若目标是独立 alpha,应做市值中性化或边际贡献检验。
- 为什么“因子收益显著”不等于“策略可投”? 答案提示:真实策略还受换手、成本、容量、约束、组合冗余和执行风险影响。
- 线性多因子打分中,因子权重可以如何设定? 答案提示:可用等权、基于 IC/IR 的权重、横截面回归系数或组合优化结果;关键是避免样本内过拟合。
9.7 小结与过渡
本章把因子研究拆成了从经济假设到可投信号的完整链条。一个合格因子不仅要有统计表现,还要有清晰口径、可复现数据、稳健检验、低冗余和可执行性。下一章会把这些信号放入回测框架,检验它们在真实约束和交易成本下能否形成稳定策略收益。
本章从概念上介绍了因子与信号,并给出了构建和检验的基本框架。下一章将基于这些因子,介绍如何搭建策略回测框架,评估策略表现并避免常见回测陷阱。