2. 风险因子识别:市场因子、行业因子、风格因子、因子暴露计算
做指数增强策略,说白了就是在跟市场玩「捉迷藏」。你得先搞清楚,到底是谁在背后推着你的净值上上下下。我个人习惯把风险因子分成三大类:市场因子、行业因子、风格因子。这三兄弟,你一个都躲不掉。
2.1 市场因子:Beta 是原罪
市场因子是所有风险因子里最「霸道」的一个。它代表的是整个市场的系统性风险,也就是我们常说的 Beta。你想想看,大盘涨的时候,你的组合大概率跟着涨;大盘跌的时候,也很难独善其身。这就是市场因子在起作用。
我在项目中遇到过最典型的案例:一个客户拿着一个看似很牛的选股策略,回测年化收益 25%。结果我一算 Beta,好家伙,1.8。这意味着什么?大盘涨 10%,他涨 18%;大盘跌 10%,他跌 18%。这哪是选股能力?这分明是加了杠杆的指数基金。
2.2 行业因子:别把运气当能力
行业因子是另一个容易让人「飘」的东西。你重仓了新能源,今年新能源涨了 50%,你的组合涨了 40%。你觉得自己是股神?其实只是风口上的猪。
我曾经犯过一个错误:2019 年做回测时,一个策略表现特别好,年化超额收益 8%。我兴奋得不行,结果一拆解行业暴露——好家伙,超配了白酒 15%。那两年白酒什么行情大家都知道。去掉行业因子贡献,超额收益只剩 2%。嗯,这脸打得有点疼。
行业因子的识别,核心是看你的组合相对于基准指数,在哪些行业上「赌」了额外的权重。常见的行业分类有申万一级、GICS 等。我个人习惯用申万一级,28 个行业,够细也够用。
| 行业因子 | 暴露计算方式 | 常见陷阱 |
|---|---|---|
| 银行 | 组合权重 - 基准权重 | 银行股波动小,容易让人忽视暴露 |
| 食品饮料 | 组合权重 - 基准权重 | 长期超额收益高,容易过度依赖 |
| 电子 | 组合权重 - 基准权重 | 周期性强,暴露过大回撤惊人 |
2.3 风格因子:大小盘、价值成长
风格因子是更「阴险」的存在。它不像行业那么直观,但影响一点不小。最常见的风格因子就是大小盘(市值因子)和价值成长(估值因子)。
你想想看,2021 年小盘股涨得飞起,你如果重仓了小盘,超额收益自然好看。但到了 2022 年,大盘股开始反弹,小盘股跌成狗,你的超额收益就变成了负的。这就是风格因子在作祟。
我记得有一次做归因分析,一个策略在 2017 年表现极差。我一开始以为是选股逻辑出了问题,后来一算风格暴露——好家伙,市值因子暴露是 -0.8,也就是严重偏向小盘股。而 2017 年是大盘股的牛市。这哪是选股问题?这是风格踩错了节奏。
2.4 因子暴露计算:别凭感觉,要算账
好了,前面说了这么多,到底怎么算因子暴露?其实没那么玄乎。核心就一句话:你的组合在某个因子上的暴露,等于组合中所有股票在该因子上的加权平均值。
举个例子,你要算市值因子暴露。先拿到每只股票的市值(取对数),然后按组合权重加权平均,再减去基准指数(比如沪深 300)的加权平均市值。这个差值就是你的市值因子暴露。
代码实现其实很简单,我贴一段我常用的 Python 代码:
import pandas as pd
import numpy as np
def calculate_factor_exposure(portfolio_weights, benchmark_weights, factor_values):
"""
计算因子暴露
portfolio_weights: 组合权重 Series
benchmark_weights: 基准权重 Series
factor_values: 因子值 Series (如市值、估值等)
"""
# 组合的因子暴露
portfolio_exposure = np.sum(portfolio_weights * factor_values)
# 基准的因子暴露
benchmark_exposure = np.sum(benchmark_weights * factor_values)
# 相对暴露
relative_exposure = portfolio_exposure - benchmark_exposure
return relative_exposure
# 示例:计算市值因子暴露
# 假设你有100只股票的权重和市值数据
portfolio_w = pd.Series(...) # 组合权重
benchmark_w = pd.Series(...) # 基准权重
log_market_cap = pd.Series(...) # 对数市值
size_exposure = calculate_factor_exposure(portfolio_w, benchmark_w, log_market_cap)
print(f"市值因子暴露: {size_exposure:.4f}")
2.5 知识体系总览
下面这张图是我自己整理的因子识别框架,你可以把它当成一个检查清单。每次做策略之前,先过一遍这张图,能帮你避开 80% 的坑。
说实话,因子识别这件事,做一次不难,难的是坚持做。我见过太多人,刚开始做策略时认认真真算因子暴露,跑顺了就忘了。等到回撤来了,才手忙脚乱地找原因。何必呢?
记住一句话:你控制不了的东西,迟早会控制你。 因子暴露就是那个你必须要控制的东西。别偷懒,每个月花 10 分钟算一下,能省去后面 10 个小时的复盘时间。