前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Quantopian Risk Model (QRM)

Quantopian Risk Model (QRM)

作者头像
用户5753894
发布2019-11-04 16:34:46
1.1K0
发布2019-11-04 16:34:46
举报
文章被收录于专栏:王的机器王的机器
本文献给今天 36 岁的自己

本文含 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!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 王的机器 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档