面向小白的多因子组合策略入门指南
在本周的学习中,已经进入到实质性的内容,之前都是在为今天的课程内容做铺垫。在整个流程中,先将想法变成可量化的因子,组合之后形成多因子策略,再运行策略,再查看回测报告,研究是再否可再优化。
整个流程可以概括为:将想法转化为可量化的因子 → 组合形成多因子策略 → 运行策略 → 查看回测报告 → 研究优化空间。
从最初理解什么是因子,到掌握各类因子的特点,再到学会将多个因子组合并调整权重,每一步都在为最终的策略构建打下基础。当我们完成策略搭建并运行回测后,通过分析各项指标(如年化收益、夏普比率、最大回撤等),就能判断策略的有效性,并找到进一步优化的方向。
量化投资的核心不在于一次性的完美构建,而在于持续迭代、不断验证与改进的过程。本周的学习,让我们真正迈出了从理论到实战的关键一步。
一、什么是因子?为什么需要多因子?
在量化投资中,“因子”可以理解为一种用来解释或预测资产收益的指标或特征。比如过去20天涨幅、成交量变化、估值水平等,都可以作为因子。
简单来说:
👉 因子 = 用数据描述股票“好不好”的方式
那为什么不只用一个因子,而是要用“多因子”?
原因很简单:
- 单一因子容易失效(市场风格会变化)
- 不同因子关注不同维度(趋势、估值、情绪等)
- 多因子组合可以分散风险,提高稳定性
👉 类比:判断一个人优秀与否,不只看成绩,还看能力、性格、经验等
二、因子的类型
常见的因子可以从多个维度进行分类,以下是几种主流的分类方式:
1. 按构建方式分类
| 类型 | 说明 | 特点 | 示例 |
|---|---|---|---|
| 线性因子 | 通过简单数学运算构建,关系呈线性 | 可解释性强、计算简单 | 动量因子、估值因子 |
| 非线性因子 | 通过机器学习或复杂变换构建 | 表达能力更强、解释性较弱 | 神经网络因子、决策树因子 |
2. 按逻辑来源分类(主流框架)
这是学术界和业界最常用的分类方式,源自 Fama-French 等经典研究:
| 大类 | 说明 | 典型因子 |
|---|---|---|
| 价值因子 | 寻找被低估的股票 | 市盈率(PE)、市净率(PB)、市销率(PS) |
| 动量因子 | 趋势延续效应 | 过去收益率、反转效应 |
| 质量因子 | 公司盈利能力与财务健康 | ROE、ROA、毛利率、资产负债率 |
| 规模因子 | 小盘股溢价效应 | 市值对数 |
| 波动率因子 | 低波动异象 | 历史波动率、Beta |
| 情绪因子 | 市场情绪与资金流向 | 换手率、融资融券余额 |
| 成长因子 | 业绩增长预期 | 营收增速、净利润增速 |
| 流动性因子 | 交易活跃度 | 换手率、Amihud非流动性指标 |
3. 按数据来源分类
| 类型 | 说明 | 示例 |
|---|---|---|
| 量价因子 | 基于价格和成交量数据 | 动量、波动率、换手率 |
| 基本面因子 | 基于财务报表数据 | ROE、资产负债率、现金流 |
| 宏观因子 | 基于宏观经济指标 | GDP增速、利率、CPI |
| 分析师预期因子 | 基于分析师评级与预测 | 盈利预测调整、评级上调 |
| 另类数据因子 | 基于非传统数据源 | 卫星图像、搜索热度、新闻情绪 |
4. 按投资逻辑分类
| 类型 | 说明 | 示例 |
|---|---|---|
| 趋势因子 | 捕捉市场趋势 | 动量、均线突破 |
| 均值回归因子 | 捕捉过度反应后的回归 | 反转、低估值 |
| 套利因子 | 捕捉定价偏差 | 可转债溢价、ETF折溢价 |
| 事件驱动因子 | 捕捉特定事件影响 | 业绩预告、分红送转 |
5. 按因子数量分类
| 类型 | 说明 |
|---|---|
| 单因子 | 只使用一个因子进行选股 |
| 多因子 | 组合多个因子,加权形成综合评分 |
6. 分类全景图
因子分类
│
┌───────────────┼───────────────┐
↓ ↓ ↓
按构建方式 按逻辑来源 按数据来源
│ │ │
┌────┴────┐ ┌─────┴──────┐ ┌───┴───┐
↓ ↓ ↓ ↓ ↓ ↓
线性因子 非线性 价值因子 量价因子 基本面
因子 动量因子 宏观因子 另类数据
质量因子
规模因子
波动率因子
情绪因子
成长因子
流动性因子
💡 对于初学者来说,最需要掌握的是“价值、动量、质量、规模”这四大经典因子类型,它们是构建多因子策略的基石。
上面是对因子做了比较详细的说明,下面通过对pandai的工作流将多因子组合的策略运行起来:

从官方的模板中选中多因子模板(快速的运行策略)
三、编写因子与权重调整
下面给出几个简单的动量因子例子:

因子1
RANK((CLOSE / DELAY(CLOSE, 20)) - 1)
👉 含义:过去20天的收益率,并进行排名
因子2
RANK((OPEN / DELAY(CLOSE, 20)) - 1)
👉 含义:用开盘价计算的20天收益率
因子3
也可以用 Python 写成策略形式:
class MomentumFactor(Factor):`
def calculate(self, factors):`
close = factors['close']` - 获取收盘价
returns = RETURNS(close, 20)` - 计算20日收益率
return RANK(returns)` - 对收益率进行排名
四、因子组合与权重调整
当我们有多个因子时,可以进行组合:
综合因子 = w1 * 因子1 + w2 * 因子2 + w3 * 因子3
这里的 w1, w2, w3 就是权重。
为什么要调整权重?
- 不同因子效果不同(有的更稳定,有的更激进)
- 市场环境变化(趋势市场 vs 震荡市场)
- 控制风险和收益的平衡
👉 举例:
- 动量因子在牛市表现好 → 提高权重
- 价值因子在震荡市稳定 → 增加配置
常见方法:
- 等权重(最简单)
- 根据历史表现加权
- 使用优化算法(如最大夏普)
五、策略结果与核心指标
在构建好因子组合后,我们需要评估策略表现。下面是一些常见指标:

1. 收益类指标
| 指标 | 示例值 | 含义 |
|---|---|---|
| 因子收益 | 17.81% | 因子本身带来的平均收益 |
| 年化收益 | 132.01% | 将策略收益换算成年收益,便于比较 |
2. 风险与收益比
| 指标 | 示例值 | 含义 |
|---|---|---|
| 夏普比率 | 4.5026 | 每承担一单位风险,获得多少收益,越高越好(通常 >1 就不错) |
| 最大回撤 | 3.56% | 从最高点跌到最低点的最大损失,越低越好 |
3. 因子有效性指标
| 指标 | 示例值 | 含义 |
|---|---|---|
| IC_mean | -0.0449 | 因子与未来收益的相关性,正值表示预测有效 |
| Rank_IC | -0.0678 | 排名相关性,比IC更稳健 |
| IC_std | 0.1482 | IC波动程度 |
| IC_IR | -0.3036 | IC稳定性(IC_mean / IC_std) |
4. 统计显著性
| 指标 | 示例值 | 含义 |
|---|---|---|
| t统计量 | -1.7705 | 判断因子是否显著有效 |
| p-value | 0.0859 | 小于0.05通常认为显著 |
5. 胜率相关
| 指标 | 示例值 | 含义 |
|---|---|---|
| P(IC>0.02) | 35.29% | IC较好的比例 |
| P(IC<-0.02) | 52.94% | IC较差的比例 |
6. 信息比率
| 指标 | 示例值 | 含义 |
|---|---|---|
| IR | -1.9543 | 因子超额收益能力 |
7. 单调性
| 指标 | 示例值 | 含义 |
|---|---|---|
| 单调性 | 0.92 | 因子排序后收益是否呈现良好分层,越接近1越好 |
8. 分组

从上面这些分组,可以看出,所有的股票被随机分面了5组,每组不同的收益反馈是不一样的
六、如何使用你的因子
当你的多因子策略表现不错时,可以:
- 将组合后的因子保存
- 添加到“因子大赛”的节点中
- 后续直接调用该因子参与比赛或策略构建
👉 好处:
- 避免重复计算
- 提高策略开发效率
- 便于复用与优化
总结
多因子策略的核心思路是:
构建多个有效因子 → 通过权重组合增强稳定性 → 用指标评估策略优劣 → 持续优化与迭代
对于初学者来说,可以从简单动量因子 + 等权组合开始,逐步理解各类指标,再慢慢提升复杂度。
量化投资不是一蹴而就,而是一个不断验证与改进的过程 🚀