【Introduction】
- 本策略给出利用标准的CAPM风险模型通过因子暴露做指数增强的模板,策略构建相对于某种特定风格因子的最小风险组合权重,亦可扩展为构建多因子线性叠加下的最优组合权重。因子数据来源于Join quant新开放的通联数据接口Tushare,原理性分析请参考投资研究。
【Tushare数据】
Tushare数据接口简单易用,其登陆需要token,可采用如下的方式
import tushare as ts
- ts.set_token('714a0f7c9e8b05df2f7b7c931a53e3fb06f42bb04ae2b8cf32704b542bd5f291')
- mkt = ts.Market()
- factorData = mkt.StockFactorsOneDay(tradeDate='',secID='')
基于CAPM风险因子暴露的$Smart \ \beta $指数增强策略¶
【$Smart \ \beta $】¶
- 指数投资产品在市场上逐渐占据越来越多的份额和地位,如ETF、分级基金等,这些指数基金有着重要且多样的投资价值。故名思议,指数产品就是投资标的池为某个指数的成分股。那么,具体如何投资这些指数呢?
- 通常会有两类投资指数的方式:
- 被动型指数跟踪:试图完全跟踪指数,不追求超额收益,收益完全来自于$\beta $
- 增强型指数跟踪:在跟踪指数的同时,追求一定的超额收益,$smart \ \beta $就是用来寻找这个超额收益
- 由于股票池就是投资标的的成分股,所以$smart \ \beta $用来寻找优于标的权重组合
【因子特征组合】¶
资产有很多属性,例如贝塔、预期收益率、市盈率、市值等,通常称为因子。每个股票对应于某个因子都有特定的数值,这个数值我们称之为股票在该因子中的暴露度。从线性空间的角度,因子即代表了某种维度,而因子的暴露度就代表了股票在这个维度上的映射数值。
假设股票池 $\mathbf{s}$ = [$s_1$,$s_2$,...,$s_n$],因子 $\mathbf{a}$ = [$a_1$,$a_2$,...,$a_n$] 是相应股票对应的因子暴露度。通过条件优化,可构建一个资产组合 $\mathbf{p}$ = [$w_1$,$w_2$,...,$w_n$],使$\mathbf{p}$对于该属性的暴露度为某种设定值$c$,即:$\sum_{i=1}^n a_iw_i = c$,这样能使资产组合权重精确的偏向于某种风格因子,获取这种风格因子的超额收益。
依CAPM模型,将风险定义为超额收益率的年化标准差,变量声明如下:
- $\mathbf{w}$:风险资产的头寸权重,即组合在每只风险资产上的投资权重;
- $\mathbf{V}$:风险资产超额收益率间的协方差矩阵;
- $\mathbf{a}$:风险资产的因子数据
可以将因子特征组合求解简单描述成以下QP问题:
- min $\mathbf{w}^T\mathbf{V}\mathbf{w}$
- s.t. $\mathbf{w}^T\mathbf{a} = 1$
针对任意定义的因子 $\mathbf{a}$,都可通过求解上述QP问题获得指数偏向于该风格因子的Smart $\beta $资产组合。
【风格因子】¶
昨天社区上线了新功能:回测/模拟中可以访问网络,并能从Tushare库上拿数据。Tushare背靠通联数据海量的数据商城接口,意味着接入Tushare库的话在Join quant也可以拿到优矿DataAPI中的海量数据(可直接在策略模板中引入Tushare的第三方库,利用token登陆,不过有的数据用tushare接口获取需要付费)。
本文构建了上述QP问题通用的handler类库,并测试了通联因子“FinancingCashGrowRate”特征组合的表现。