本文含 2758 字,27 图表截屏
建议阅读 16 分钟
0
引言
在量化投资领域中,因子(factor)就是对股票池进行筛选的指标。大家耳熟能详的因子模型(factor model)有
- 单因子(市场因子)模型 Capital Asset Pricing Model(CAPM)
- Fama-French 三因子(市场、规模、价值因子)模型
- Ross 提出的多因子模型 Arbitrage Pricing Theory(APT)
本帖考虑的是量化平台 Quantopian 中的风险模型(Quantopian Risk Model, QRM),它是建立在 APT 之上,详细原版文档可点击左下角的阅读原文获得。
1
模型简介
1.1
风险模型
QRM 本质上是一个多因子线性模型,用 J 个行业因子和 K 个风格因子来描述资产收益。
其中
- ri,t 是第 i 个资产在时点 t 上的收益
- J 是行业因子的个数
- K 是风格因子的个数
- βseci,j,t 是第 i 个资产的第 j 个行业因子在时点 t 上的因子载荷
- fsecj,t 是第 i 个资产的第 j 个行业因子在时点 t 上的因子收益
- βstyi,k,t 是第 i 个资产的第 k 个风格因子在时点 t 上的因子载荷
- fstyk,t 是第 i 个资产的第 k 个风格因子在时点 t 上的因子收益
- εi,t 是第 i 个资产在时点 t 上的残差收益
因子载荷(factor loading)也称作因子暴露(factor exposure),因子收益(factor return)也称作因子回报。
下两节分别介绍 QRM 里的行业因子和风格因子。
1.2
行业因子
行业因子(sector factor)反映不同行业对收益产生的影响。我们用晨星(Morningstar)里的行业 ETF 收益来表示行业因子收益 fsecj,t。下表总结出行业、ETF 代号、晨星代号、SID 和 Quantopian API 里变量名称之间的映射。
每种股票都会映射到某个行业中,而该行业的因子收益是已知的,需要估计的是行业的因子载荷。
1.3
风格因子
QRM 考虑五个风格因子(style factor),分别是动量(momentum)、规模(size)、价值(value)、短期反转(short-term reversal)和波动率(volatility)。每个风格因子都可以用来复制一个传统的投资策略。下表总结出五个风格因子的定义。
风格因子的定义比较抽象,可用不同的代理(proxy)方法来量化,下面介绍 QRM 对这五个风格因子的具体实现方法。
动量因子
动量因子用「过去一年扣除最近一月的收益率」来量化。
其中 ri,t 是第 i 个资产在第 l 天的收益,而 c 是每个月的交易日的天数,通常设为 21。
规模因子
规模因子用「流通市值的自然对数」来量化。
其中 Mi,t-1 是第 i 个资产在第 t-1 天的流通市值。
价值因子
价值因子用「权益和流通市值的比率」来量化。
其中 Si,t-1 是第 i 个资产在第 t-1 天的权益。
短期反转因子
短期反转因子用「近 14 日的相对强弱指数的相反数」来量化。
其中 RSIi,t-1 是第 i 个资产在 (t-15, t-1) 时期内的 14 天相对强弱指数。
波动率因子
波动率因子用「近 6 个月收益率的标准差」来量化。
其中 bar{ri} 是第 i 个资产在 (-6c t-1, t-1) 时期内的平均收益。
2
理论框架
2.1
方法论
整个 QRM 的方法论是将下面模型
划分成以下两个子模型
在 N 只股票,T 天历史,J 个行业和 K 种风格的设置下,我们选取 Quantopian 3000 只股票,采用 2 年历史数据,涉及 11 个行业和 5 种风格,因此 N = 3000, T = 500, J = 11, K = 5。令现在为时点 T,那么时点 t 代表历史第 T-t 天。
子模型一
第一个子模型目的是计算行业残差收益(sector residual return)矩阵,大小为 T×N,具体算法步骤总结在下表中。
步骤 2 中这种在「不同时点对相同股票」的回归被称作时间序列回归(time-series regression),上述算法进行了 N 次时间序列回归。
假设我们拿 6 只股票举例,而且只计算 4 天的历史收益。第 1 只股票是高盛,属于金融行业;第 2 只股票是 AT&T,属于电信行业。上述算法的简易版可视化如下图。
将 6 只股票做同样的回归而计算残差,堆叠后的残差矩阵(大小 6×4)如下图。
这个残差矩阵作为下个子模型的输入。
子模型二
第二个子模型目的是计算所有股票的风格残差收益(style residual return)矩阵,大小为 T×N。
首先将所有股票分成两大类
- 第一类包含房地产投资信托(REITs)、美国存托凭证(ADRs)和流动性差的股票,称为补充股票(complementary stock)
- 第二类包括剩余的股票,称为正常股票(normal stock)
对于 N1 只正常股票,我们已知其风格因子载荷,回归得到风格因子收益;假设五个风格因子适用于所有股票(正常股票和补充股票),那么对于 N2 只补充股票,用之前的风格因子收益,回归得到风格因子载荷。具体算法步骤总结在下表中。
步骤 1 中这种在「相同时点对不同股票」的回归被称作横截面回归(cross-sectional regression),步骤 2 中这种在「不同时点对相同股票」的回归被称作时间序列回归(time-series regression)。上述算法进行了 T 次横截面回归和 N2 次时间序列回归。
在 6 只股票中,假设前 4 只(N1 = 4)是正常股票,后 2 只(N2 = 4)是补充股票,步骤 1 的可视化如下图。
整理成矩阵形式,得到
垂直堆叠的风格因子收益矩阵 Fsty(大小 T×K)和风格残差收益矩阵 Σsty(N1) (大小 T×N1)如下图。
在步骤 2 中, 我们用 Fsty 对补充股票的残差收益做回归,其可视化如下图。
垂直堆叠风格残差收益矩阵 Σsty(N2)(大小 T×N2)如下图。
最后在步骤 3 将 Σsty(N1) 和 Σsty(N2) 合并成一个整体矩阵。
2.2
Quantopian 实现
方法论弄清楚后,实现以上两个算法其实不难,至于模型最后效果如何,确实需要考虑其他细节,如下图所示(第 73-81 行)。
麻烦的是如何得到行业因子收益和风格因子载荷。贴心的是 Quantopian 有一个 risk_loading_pipeline 的 API,可以获取所有股票在任何历史时期的上述指标。
展示代码如下:
有了这些数据,就可以选股(用混合法或整合法)、配置权重(用 MVO, Risk Parity 等等),做回测了。
3
总结
本帖介绍了 QRM,它本质就是个多因子模型,但是有自己独到的处理方法。
- QRM 先计算行业 ETF 收益,做行业因子收益的代理指标,再用时间序列线性回归得到行业残差收益。
- QRM 把所有股票分成正常股票和补充股票
- 先计算正常股票的风格因子载荷,再用横截面线性回归得到风格因子收益。
- 假设所有股票的风格因子收益一样,再用时间序列线性回归得到补充股票的风格因子载荷。
再用表格的形式总结 QRM 的方法论。
Stay Tuned!