28 KiB
Alpha 因子研究详解
quant_alpha_factor_demo.py 学习文档
目标读者:量化入门者,已完成前三篇学习
配套文件:quant_alpha_factor_demo.py
前置知识:建议先阅读前三篇文档
系列位置:第 4 篇 — Alpha 因子研究篇
目录
- 什么是 Alpha 因子?
- 因子动物园:主要因子流派
- 合成股票池:为什么需要多只股票?
- 五个经典因子详解
- 因子预处理:三步标准化流程
- IC 分析:量化因子预测能力
- 分层回测:直观验证因子有效性
- 因子合成:1+1 > 2
- 多空组合:因子的实际落地
- 因子衰减:信号会过时
- 结果解读与局限性
- 术语速查表
1. 什么是 Alpha 因子?
1.1 从一个比喻说起
想象你是一个选股顾问,每天从 3000 只 A 股中挑出最有潜力的 50 只。你会怎么做?
初学者可能说:"涨得多的买,跌得多的卖。"
有经验的人可能说:"找低估值、高成长、低波动的股票。"
Alpha 因子 (Alpha Factor) 就是这些选股思路的数学化表达——用一个公式,对每只股票算出一个"分数",分数越高,预期未来收益越高。
1.2 Alpha 的准确含义
在金融学中,收益被分解为两部分:
股票总收益 = Beta 收益 + Alpha 收益
股票总收益 = (跟随大盘的那部分) + (超出大盘的那部分)
| 术语 | 中文 | 含义 |
|---|---|---|
| Beta (β) | 市场贝塔 / 系统性风险 | 随市场涨跌的收益——"大盘涨了 10%,我的股票也涨了 8%" |
| Alpha (α) | 超额收益 / 选股能力 | 超越市场的额外收益——"大盘涨了 5%,但我的策略赚了 20%" |
Alpha 因子的目标就是找到那些能预测"未来超额收益"的信号。
1.3 因子 vs. 策略
很多初学者会混淆"因子"和"策略"的概念:
| 因子 (Factor) | 策略 (Strategy) | |
|---|---|---|
| 本质 | 一个截面排名信号(谁更好?) | 一套完整的买卖规则 |
| 例子 | MOM = 12月动量 | "当 MOM > 0 时买入,< 0 时卖出" |
| 分析方法 | IC、分层回测 | 净值曲线、夏普比率 |
| 应用范围 | 多只股票的横截面 | 单只或多只股票的时间序列 |
因子是选股的"原材料",策略是用因子构建的"成品"。
2. 因子动物园(Factor Zoo)
学术界发现的因子多达 300+ 个,被戏称为"因子动物园 (Factor Zoo)"。按经济学逻辑,主要分为以下几大类:
2.1 行为金融类因子(最常用)
| 因子 | 中文 | 核心逻辑 | 代表论文 |
|---|---|---|---|
| Momentum | 动量因子 | 赢家继续赢,输家继续输(追涨惯性) | Jegadeesh & Titman (1993) |
| Reversal | 反转因子 | 短期过度涨跌会均值回归 | Jegadeesh (1990) |
| Post-Earnings Drift | 盈利漂移 | 超预期财报后股价持续漂移 | Ball & Brown (1968) |
2.2 风险溢价类因子(有理论支撑)
| 因子 | 中文 | 核心逻辑 |
|---|---|---|
| Low Volatility | 低波动因子 | 低波动股票的风险调整后收益更高(违反 CAPM) |
| Low Beta | 低贝塔因子 | 低市场敏感性股票长期跑赢(BAB 效应) |
| Illiquidity | 非流动性因子 | 流动性差的股票有额外的流动性溢价 |
2.3 基本面类因子(需要财报数据)
| 因子 | 中文 | 核心逻辑 |
|---|---|---|
| Value (B/P, E/P) | 价值因子 | 低估值股票长期跑赢(价值投资量化版) |
| Profitability (ROE) | 盈利能力 | 高盈利质量公司持续超额收益 |
| Growth | 成长因子 | 营收/利润高速增长的公司 |
本 Demo 聚焦于纯价格/成交量因子(无需财报),这也是因子研究的起点。
3. 合成股票池
3.1 为什么需要多只股票?
前三篇 Demo 分析的都是单只股票随时间的变化(时间序列)。
Alpha 因子研究是一种完全不同的分析维度:
时间序列分析: 分析同一只股票在不同时间的行为
苹果公司 → 2020, 2021, 2022, ...
截面分析: 在同一个时间点,比较不同股票之间的差异
2023-01-01 → 苹果, 谷歌, 微软, 亚马逊, ...
因子的"截面预测能力"是指:在某一天,因子值高的股票,是否在未来一段时间表现更好?
这需要"同一天、多只股票"的数据——即横截面数据 (Cross-Sectional Data)。
3.2 隐藏因子生成模型
为了让演示中的因子真实有效,本 Demo 使用了一个隐藏因子生成模型 (Hidden Factor Generative Model),向合成数据中注入"真实的 Alpha":
每只股票每天的收益 = 市场风险 + 质量 Alpha + 动量 Alpha + 噪音
= β × r_市场 + λ_q × Q_i,t + λ_m × M_i,t + ε_i,t
| 成分 | 符号 | 变化速度 | 含义 |
|---|---|---|---|
| 市场风险 | β × r_市场 | 每日变化 | 所有股票共同承担的市场涨跌 |
| 质量 Alpha | λ_q × Q_i,t | 季度持续 | 该股票的"潜在质量分",缓慢变化 |
| 动量 Alpha | λ_m × M_i,t | 月度持续 | 该股票的"当前动量状态",适度变化 |
| 特质噪音 | ε_i,t | 每日随机 | 无法预测的随机波动 |
关键点:Q 和 M 是不可直接观察的隐藏变量。
Alpha 因子的价值就在于:用可观察的价格数据(动量、波动率等)来间接估计这些隐藏的质量/动量分数。
4. 五个经典因子详解
4.1 动量因子(MOM)— 追涨惯性
来源:Jegadeesh & Titman (1993)
直觉:股票市场存在"趋势延续"效应——过去 6-12 个月的赢家,未来 3-12 个月通常继续赢。
\text{MOM}_{i,t} = \frac{P_{i,t-21}}{P_{i,t-252}} - 1
| 参数 | 说明 |
|---|---|
P_{i,t-21} |
股票 i 在 t-21 日(约 1 个月前)的价格 |
P_{i,t-252} |
股票 i 在 t-252 日(约 12 个月前)的价格 |
| 计算窗口 | 从 12 个月前 到 1 个月前(跳过最近 1 个月) |
为什么要跳过最近 1 个月?
最近 1 个月的收益往往会短期反转 (Short-Term Reversal),这是由于做市商 (Market Maker) 的库存调整和买卖价差摩擦导致的微观结构效应。如果不跳过最近 1 个月,反转效应会污染动量信号。
# 代码实现
MOM_LONG = 252 # 12 个月
MOM_SHORT = 21 # 跳过 1 个月
factor_mom = prices_df.shift(MOM_SHORT) / prices_df.shift(MOM_LONG) - 1.0
# ↑ P[t-21] ↑ P[t-252]
本 Demo 实验结果:
- IC 均值 = +0.065 ★ 有效
- ICIR = +0.452(接近 0.5 的优良水平)
- 这是因为隐藏质量/动量因子高的股票,自然同时有高 12M 动量 AND 高未来收益
4.2 短期反转因子(REV)— 均值回归
来源:Jegadeesh (1990)
直觉:上个月涨太多的股票,下个月往往小幅回调;跌太多的往往反弹。
\text{REV}_{i,t} = -\left(\frac{P_{i,t}}{P_{i,t-21}} - 1\right)
取负号是为了保持"因子值越高 → 预期收益越高"的正方向约定:
- 上个月大跌(负收益)→ REV 为正 → 预期反弹 → 因子值高 ✓
本 Demo 实验结果:
- IC 均值 = -0.050(负!意料之中)
- 为什么是负的?因为我们的数据中注入了"动量 Alpha"——动量强的股票上个月涨、下个月还要涨,REV 反而是负向预测。这是一个很好的教学点:同一个市场中,因子之间可能互相矛盾。
4.3 低波动因子(LVOL)— 低波动异象
来源:Baker, Bradley & Wurgler (2011)
直觉:根据传统金融理论,高风险应获高回报。但实证研究发现,低波动股票的原始收益也更高,即"低波动异象 (Low-Volatility Anomaly)"。
\text{LVOL}_{i,t} = -\sigma_{i,t-60:t}
其中 \sigma 是过去 60 交易日的日收益率标准差(年化波动率的代理指标)。
取负号:波动率越低 → LVOL 越高 → 预期收益越高。
可能的解释:
- 机构投资者受"跑赢基准"的业绩压力,被迫偏爱高贝塔/高波动股票,导致这些股票被高估
- 散户偏好"彩票式"高波动股票(类似买彩票),也导致高波动股票被高估
- 低波动股票更少被卖空,保护其免遭过度高估后的暴跌
4.4 低贝塔因子(BAB)— 赌对低贝塔
来源:Frazzini & Pedersen (2014) "Betting Against Beta"
直觉:CAPM 预测 β = 1.5 的股票比 β = 0.5 的股票多 50% 的期望收益。但实际上两者差距远小于理论值,甚至低贝塔股票反而更赚钱。
\text{BAB}_{i,t} = -\hat{\beta}_{i,t}^{(60D)}
\hat{\beta}_{i,t} = \frac{\text{Cov}(r_i, r_{\text{mkt}})_{60D}}{\text{Var}(r_{\text{mkt}})_{60D}}
代码实现(完全向量化,不用 Python 循环):
# 利用 pandas rolling 方法批量计算所有股票的滚动贝塔
rolling_var_mkt = market_series.rolling(60).var() # 市场方差
rolling_cov = log_ret_df.apply(
lambda col: col.rolling(60).cov(market_series) # 各股协方差
)
rolling_beta_df = rolling_cov.div(rolling_var_mkt, axis=0) # β = Cov/Var
factor_bab = -rolling_beta_df # 取负值
4.5 Amihud 非流动性因子(ILLIQ)— 流动性溢价
来源:Amihud (2002) "Illiquidity and Stock Returns"
\text{ILLIQ}_{i,t} = \frac{1}{D} \sum_{d=t-D}^{t} \frac{|r_{i,d}|}{V_{i,d}}
| 符号 | 含义 |
|---|---|
| $ | r_{i,d} |
V_{i,d} |
第 d 日的成交量(元) |
| D = 20 | 过去 20 个交易日 |
含义:"每元成交量能引起多大的价格波动?"
- ILLIQ 高 → 流动性差(小单也能推动价格)→ 投资者要求更高回报 → 流动性溢价 (Liquidity Premium)
5. 因子预处理:三步标准化
原始因子值"脏"得没法直接用,必须经过以下三步清洗:
Step 1:截面去极值(Winsorization)
问题:某天某股票的动量值是 +500%(因为遭遇了重组事件),这个极端值会完全主导本日截面的相关系数计算。
解决:在每个截面,将超出 [\mu - 3\sigma, \mu + 3\sigma] 的值截断到边界。
原始: [5%, 12%, 8%, 500%, -2%, 9%]
↓
去极值: [5%, 12%, 8%, 46%, -2%, 9%] ← 500% 被截断到 3σ 边界
# 向量化实现(无 Python 循环)
mu = factor_df.mean(axis=1) # 每日截面均值
sig = factor_df.std(axis=1) # 每日截面标准差
lower = (mu - 3 * sig).values[:, np.newaxis] # 广播到矩阵形状
upper = (mu + 3 * sig).values[:, np.newaxis]
clipped = np.clip(factor_df.values, lower, upper)
Step 2:截面 Z-score 标准化
问题:动量因子单位是%(典型值 ±30%),ILLIQ 单位是极小的小数(1e-10 量级),无法比较和相加。
解决:在每个截面,对因子进行 Z-score 标准化,使均值=0,标准差=1。
z_{i,t} = \frac{x_{i,t} - \bar{x}_t}{\sigma_t}
标准化后:
- 不同因子量纲统一,可以直接相加(因子合成时需要)
- Z-score > 0 → 该股票因子值高于同期平均
- Z-score < 0 → 该股票因子值低于同期平均
Step 3:市值中性化(Market Cap Neutralization)
问题:在 A 股市场,小市值股票往往同时具有高动量、高波动、低流动性。如果不剔除市值效应,动量因子可能只是在选小市值股票,并非真正的动量信号。
解决:对 log(市值) 做 OLS 回归,用残差替换原因子值:
\text{factor\_neutral}_i = \text{factor}_i - (\hat{\alpha} + \hat{\beta} \cdot \log(\text{mktcap}_i))
# 每个截面: y = alpha + beta * x + residual
y_c = factor_values # (50,) 各股因子值
x_c = log_mktcap_values # (50,) 各股对数市值
xm, ym = x_c.mean(), y_c.mean()
slope = np.dot(x_c - xm, y_c - ym) / np.dot(x_c - xm, x_c - xm)
residuals = y_c - (ym + slope * (x_c - xm)) # 市值中性化后的因子值
形象比喻:
这就像做标准化考试时,把"学生身高"这个干扰变量从"篮球成绩"中剔除——矮的学生篮球技术再好,也会因为身高被低估,剔除后才能真正比较技术水平。
6. IC 分析(Information Coefficient)
6.1 IC 的定义
\text{IC}_t = \text{SpearmanCorr}\left(\text{factor}_{t,\cdot},\ \text{return}_{t+H,\cdot}\right)
在日期 t,计算截面 Spearman 秩相关系数:
- 左侧:50 只股票在 t 日的因子值(处理后)
- 右侧:这 50 只股票在未来 H=21 日的收益率
为什么用 Spearman 秩相关而不用 Pearson 线性相关?
| Pearson | Spearman | |
|---|---|---|
| 计算 | (X - \bar{X}) \cdot (Y - \bar{Y}) 的相关 |
\text{rank}(X) 与 \text{rank}(Y) 的相关 |
| 假设 | 线性关系 | 只需单调关系 |
| 对极端值 | 敏感 | 鲁棒 |
| 量化研究常用 | ○ | ✓ 更常用 |
6.2 ICIR:IC 的信噪比
\text{ICIR} = \frac{\text{IC 均值}}{\text{IC 标准差}}
ICIR 就是"IC 序列的夏普比率"——衡量因子预测能力的稳定性:
| ICIR | 含义 |
|---|---|
| < 0.3 | 不稳定,可能只是偶然 |
| 0.3 ~ 0.5 | 有一定稳定性 |
| > 0.5 | 稳定的 Alpha 信号 |
6.3 IC 评价标准
| 指标 | 强因子 | 有效因子 | 弱因子 |
|---|---|---|---|
| |IC 均值| | > 0.10 | 0.05~0.10 | < 0.05 |
| ICIR | > 0.5 | 0.3~0.5 | < 0.3 |
| IC > 0 比率 | > 60% | 55%~60% | < 55% |
6.4 本 Demo 的 IC 结果解读
| 因子 | IC 均值 | ICIR | 解读 |
|---|---|---|---|
| MOM ★ | +0.065 | +0.452 | 动量有效!因为高质量/高动量股票有持续的正 Alpha |
| REV | -0.050 | -0.273 | 反转因子在此模型中"反着来"——短期涨的股票继续涨(动量效应更强) |
| LVOL | -0.010 | -0.028 | 近乎无效——数据中没有注入"低波动溢价"的 Alpha |
| BAB | -0.010 | -0.027 | 近乎无效——原因同上 |
| ILLIQ | +0.009 | +0.058 | 极弱——有轻微的流动性溢价信号 |
学习要点:IC 近零不代表因子"写错了",而是反映了数据生成机制。本 Demo 的合成数据中,Alpha 主要来自质量和动量因子,所以 MOM 有效而 LVOL/BAB 无效。真实市场中,多个因子通常都有正 IC,但有时某种因子会在特定市场环境(regime)下失效。
7. 分层回测(Quantile Analysis)
7.1 方法步骤
分层回测是最直观的因子验证方式:
① 在每个调仓日 T,按因子值对 50 只股票从小到大排序
② 等分成 5 组(Q1=最低 20%,Q5=最高 20%)
③ 各组各构建等权组合,持有 21 天
④ 记录各组收益,持续到回测结束
期望的理想结果:
累积收益: Q5 > Q4 > Q3 > Q2 > Q1 (单调递增)
如果因子有效,Q5(因子分最高)应该持续跑赢 Q1(因子分最低)。
7.2 本 Demo 的 MOM 因子分层结果
| 分组 | 年化收益 | 含义 |
|---|---|---|
| Q1(最低动量) | -8.9% | 过去一年最弱势的股票,未来继续弱 |
| Q2 | -12.7% | 偏弱 |
| Q3 | -5.0% | 中性 |
| Q4 | +9.7% | 偏强 |
| Q5(最高动量) | +27.9% | 过去一年最强势的股票,未来继续强 |
| L-S(Q5-Q1) | +40.1% | 多空价差,几乎与市场涨跌无关 |
虽然 Q2 < Q1 有轻微异常(不完全单调),但整体趋势清晰:高动量 → 高未来收益。
7.3 分层回测的实现细节
for i in range(len(rebal_dates) - 1):
t0, t1 = rebal_dates[i], rebal_dates[i + 1] # 建仓日 / 平仓日
# 按因子值分组
labels = pd.qcut(
factor_today.rank(method='first'), # 先取秩(避免重复值问题)
n_quantiles, # 分成 5 组
labels=["Q1", "Q2", "Q3", "Q4", "Q5"]
)
# 计算等权持有收益
hold_ret = price_df.loc[t1] / price_df.loc[t0] - 1.0
for q in ["Q1", "Q2", "Q3", "Q4", "Q5"]:
stocks_in_q = labels[labels == q].index
bucket_returns[q].append(hold_ret[stocks_in_q].mean())
为什么先 rank() 再 qcut()?
qcut 按数值边界分割,如果因子值有重复(e.g., 好几只股票 LVOL 恰好相同),分组会不均匀。先 rank(method='first') 将重复值也区分开(先出现的秩更低),再 qcut 就能保证每组大小相同。
8. 因子合成(Factor Combination)
8.1 为什么要合成?
单个因子的 IC 通常只有 0.05~0.10,预测能力有限。多因子合成的优势:
- 互补:不同因子捕捉不同维度的 Alpha,合成后覆盖更多信息源
- 降噪:单个因子可能在某些时期失效;多因子合成后整体更稳定
- 提升 ICIR:若各因子 IC 不完全相关,合成后 ICIR > 单个因子的 ICIR
用统计语言表达:设因子 A 和 B 各自 IC 均值 = $\mu$,IC 相关系数 = $\rho$,则:
\text{ICIR}_{composite} = \frac{2\mu}{2\sigma\sqrt{(1+\rho)/2}} = \frac{\text{ICIR}}{\sqrt{(1+\rho)/2}}
当 \rho < 1 时,合成 ICIR > 单个 ICIR。这就是多元化的价值。
8.2 两种合成方法
方法1:等权合成 (Equal-Weight Composite)
\text{Composite}_{EQ,i,t} = \frac{1}{N}\sum_{k=1}^{N} z_{k,i,t}
- 优点:简单、稳健,不依赖历史 IC 估计,不容易过拟合
- 缺点:对强因子和弱因子一视同仁
方法2:IC 加权合成 (IC-Weighted Composite)
w_k = \frac{\max(\overline{IC}_k, 0)}{\sum_j \max(\overline{IC}_j, 0)}, \quad \text{Composite}_{ICW,i,t} = \sum_{k=1}^{N} w_k \cdot z_{k,i,t}
- 优点:给更强的因子更高权重,理论上 ICIR 更高
- 缺点:历史 IC 可能不稳定(特别是样本期短时),有过拟合风险
本 Demo 结果:
| 方法 | IC 均值 | ICIR |
|---|---|---|
| 等权合成 | +0.036 | +0.237 |
| IC 加权 | +0.045 | +0.304 |
IC 加权略好,因为它把更多权重给了最强的 MOM 因子(权重 88.4%)。
9. 多空组合(Long-Short Portfolio)
9.1 构建逻辑
多空策略是因子策略的"利润提取机制":
每个调仓日(每月):
① 计算每只股票的合成因子分
② 买入 Top 20%(因子分最高的 10 只)= 多头组合
③ 做空 Bottom 20%(因子分最低的 10 只)= 空头组合
④ 21 天后平仓,重复
9.2 市场中性(Market Neutral)
多空组合最大的优点是市场中性 (Market Neutral):
多空收益 = 多头组合收益 - 空头组合收益
= (Alpha_long + Beta_long × r_市场) - (Alpha_short + Beta_short × r_市场)
≈ Alpha_long - Alpha_short (若 Beta_long ≈ Beta_short,市场影响相消)
这意味着:无论市场大涨大跌,多空组合只赚 Alpha,不受市场影响。
9.3 本 Demo 结果解读
| 组合 | 年化收益 | 夏普比率 | 最大回撤 |
|---|---|---|---|
| 多头 (Long) | +30.9% | 1.36 | -13.9% |
| 空头 (Short) | -2.3% | -0.11 | -43.4% |
| 多空 (L-S) | +33.9% | 5.19 | -0.4% |
多空 Sharpe 达到 5.19 并最大回撤仅 -0.4%——这是演示数据 注入了较强 Alpha 信号的结果,真实市场中通常 Sharpe 1-3 就算非常优秀的多空策略。
9.4 A 股限制与现实考量
⚠️ A 股重要提示:
A 股融券做空受到严格限制,普通投资者无法执行多空策略。
多空策略主要适用于:港股、美股市场,或通过股指期货进行市场对冲。
在 A 股,因子策略通常只执行"多头"部分(买入高分股票),不做空低分股票。
10. 因子衰减(Factor Decay)
10.1 什么是因子衰减?
因子衰减曲线回答一个关键的实践问题:
"这个因子的信号,在多少天后就失效了?"
我们对不同的持有期 H(1D, 5D, 10D, 21D, 42D, 63D)分别计算 IC:
\text{IC}(H)_t = \text{SpearmanCorr}\left(\text{factor}_{t,\cdot},\ \text{return}_{t+H,\cdot}\right)
如果 IC(H) 随 H 增大而快速降向 0,说明因子是"短期信号",需要高频换仓。
如果 IC(H) 衰减缓慢,说明因子是"长期信号",低频换仓也有效。
10.2 本 Demo 的衰减结果
| 持有期 | MOM (IC) | REV (IC) |
|---|---|---|
| 1D | +0.067 | -0.043 |
| 5D | +0.066 | -0.045 |
| 10D | +0.065 | -0.046 |
| 21D | +0.065 | -0.050 |
| 42D | +0.061 | -0.027 |
| 63D | +0.054 | -0.033 |
MOM(慢衰减):IC 从 1D 到 21D 几乎不变(+0.067 → +0.065),42D 以后才明显下降。
→ 说明动量信号在 1-3 个月内保持有效,月频换仓足够,不需要高频交易
REV(快变化):在 42D 处强度减弱(-0.027),62D 处轻微回升。
→ 反转信号在短期更强,长期减弱,适合周频换仓
10.3 实践意义
快速衰减因子:
优点: 信号新鲜,短期预测准确
缺点: 必须高频换仓 → 高换手率 (Turnover) → 高交易成本
适合: 高频量化交易机构,有直连交易所的低手续费通道
慢速衰减因子:
优点: 不需要频繁换仓,交易成本低
缺点: 信号滞后,无法捕捉短期机会
适合: 中低频量化(月频/季频)、散户量化尝试
11. 结果解读与局限性
11.1 为什么 LVOL 和 BAB 无效?
在本 Demo 中,LVOL 和 BAB 的 IC ≈ 0,原因在于数据生成机制:
我们只注入了质量和动量 Alpha,没有注入"低波动溢价"或"低贝塔溢价"。因此,低波动率并不预示更高未来收益。
在真实市场中,低波动因子在许多市场(美股、港股、A 股)都有实证支撑。本 Demo 的结果不能说明低波动因子无效——只能说明它在这个特定的合成数据中无效。
11.2 合成数据的局限性
| 局限 | 真实市场中不存在 | 本 Demo 简化了 |
|---|---|---|
| 市场冲击 | 大单买卖会推高/压低价格 | 假设无限流动性 |
| 交易成本 | 买卖价差、印花税、佣金 | 未扣除交易成本 |
| 因子拥挤 | 大家都用同一个因子时,超额收益消失 | 未模拟 |
| 财报数据 | 基本面因子需要财报,有发布延迟 | 未涉及 |
| 风险暴露限制 | 真实组合需控制行业、风格暴露 | 无约束 |
11.3 量化因子研究的注意事项
- 样本外验证(Out-of-Sample Test):IC 是在同一数据集上计算的,存在过拟合风险。实践中需要用样本外数据验证。
- 因子衰减与换仓成本的权衡:IC 高不等于策略盈利,必须考虑换手成本是否侵蚀了因子收益。
- 市场环境(Regime)的影响:动量因子在趋势市中有效,在剧烈波动的市场(如2020年3月)可能大幅失效。
- 因子拥挤(Factor Crowding):当太多资金追同一个因子时,因子溢价会被套利消除。
12. 术语速查表
| 中文 | English | 简要说明 |
|---|---|---|
| Alpha 因子 | Alpha Factor | 能预测股票未来超额收益的数学信号 |
| 超额收益 | Alpha | 超越市场基准的额外收益 |
| 市场贝塔 | Market Beta (β) | 股票收益对市场收益的敏感度 |
| 截面数据 | Cross-Sectional Data | 同一时间点多只股票的数据 |
| 时间序列 | Time Series | 同一只股票随时间变化的数据 |
| 因子动物园 | Factor Zoo | 学术界发现的 300+ 个因子的统称 |
| 动量因子 | Momentum Factor | 基于过去 12-1 月累积收益的趋势延续信号 |
| 动量效应 | Momentum Effect | 赢家继续赢、输家继续输的市场现象 |
| 短期反转 | Short-Term Reversal | 短期内价格过度波动后的均值回归 |
| 低波动异象 | Low Volatility Anomaly | 低波动股票收益反而更高,违反 CAPM |
| 非流动性 | Illiquidity | 每单位成交量引起的价格波动幅度 |
| 流动性溢价 | Liquidity Premium | 流动性差的资产额外要求的收益补偿 |
| 低贝塔 | Low Beta (BAB) | 贝塔系数低的股票,与市场敏感性低 |
| 赌对低贝塔 | Betting Against Beta | Frazzini & Pedersen 提出的低贝塔超额收益策略 |
| Amihud 指标 | Amihud Illiquidity | |r|/成交量的均值,衡量流动性的经典指标 |
| 去极值 | Winsorization | 将极端异常值截断到合理范围 |
| 截面标准化 | Cross-Sectional Normalization | 在每个日期截面做 Z-score 标准化 |
| Z-score | Z-score | (x - 均值) / 标准差,使均值=0,标准差=1 |
| 市值中性化 | Market Cap Neutralization | 回归剔除市值因子对因子值的影响 |
| 信息系数 | IC (Information Coefficient) | 因子值与未来收益的 Spearman 秩相关系数 |
| IC 均值 | IC Mean | IC 时间序列的均值,衡量因子平均预测能力 |
| IC 标准差 | IC Std | IC 时间序列的波动率,衡量因子稳定性 |
| ICIR | ICIR (IC Information Ratio) | IC均值/IC标准差,类似因子的夏普比率 |
| Spearman 秩相关 | Spearman Rank Correlation | 基于排名(秩)而非原始值的相关系数 |
| Pearson 相关 | Pearson Correlation | 基于线性关系的相关系数 |
| 持有期 | Holding Period (H) | 建仓到平仓的时间跨度 |
| 分层回测 | Quantile Analysis / Bucket Test | 按因子值分组,对比各组未来收益 |
| 五分位 | Quintile (Q1-Q5) | 将股票等分为 5 组 |
| 等权组合 | Equal-Weight Portfolio | 每只股票持仓权重相同 |
| 调仓日 | Rebalance Date | 重新计算因子并调整持仓的日期 |
| 换手率 | Turnover | 每期组合发生变化的比例,越高交易成本越大 |
| 因子合成 | Factor Combination | 将多个因子加权合成为一个综合因子 |
| 等权合成 | Equal-Weight Composite | 所有因子等权相加的合成方法 |
| IC 加权合成 | IC-Weighted Composite | 按各因子历史 IC 均值加权合成 |
| 多因子模型 | Multi-Factor Model | 使用多个因子解释股票收益差异的模型 |
| 多空组合 | Long-Short Portfolio | 做多高分股票、做空低分股票的中性化策略 |
| 多头 | Long | 买入持有,期望价格上涨 |
| 空头 | Short / Short Selling | 借入并卖出,期望价格下跌后回购获利 |
| 多空价差 | Long-Short Spread | 多头组合收益 - 空头组合收益 |
| 市场中性 | Market Neutral | 多空两侧的市场敝口相互对冲,净市场风险 ≈ 0 |
| 因子衰减 | Factor Decay | 因子预测能力随持有期延长而减弱的现象 |
| 市场环境 | Market Regime | 具有共同特征的特定市场状态(如牛市/熊市/震荡市) |
| 因子拥挤 | Factor Crowding | 过多资金追逐同一因子导致溢价消失的现象 |
| 样本外验证 | Out-of-Sample Test | 在训练数据之外的独立数据集上验证模型效果 |
| 过拟合 | Overfitting | 模型过度适应训练数据,导致样本外表现差 |
| 隐藏因子 | Hidden Factor / Latent Factor | 不可直接观察、只能间接估计的潜在驱动因子 |
| 截面 | Cross-Section | 在同一时间点对多个实体的观察 |
| OLS 回归 | OLS (Ordinary Least Squares) | 普通最小二乘法,用于因子中性化 |
| 残差 | Residual | OLS 回归中因变量实际值与拟合值的差值 |
上一篇:事件驱动回测
附录:系列文档导航
| 篇 | 文件 | 文档 | 核心内容 |
|---|---|---|---|
| 第 1 篇 | quant_data_pipeline_demo.py |
doc_01_data_pipeline.md |
复权、收益率、缺失值、异常值、涨跌停 |
| 第 2 篇 | quant_strategy_backtest_demo.py |
doc_02_strategy_backtest.md |
技术指标、策略逻辑、向量化回测、绩效指标 |
| 第 3 篇 | quant_event_driven_backtest_demo.py |
doc_03_event_driven_backtest.md |
事件驱动架构、6大组件、成本模型、与向量化对比 |
| 第 4 篇 | quant_alpha_factor_demo.py |
doc_04_alpha_factor.md |
因子构建、IC/ICIR、分层回测、因子合成、多空组合 |