最小方差组合 以及 由此得出的对冲系数beta
(2016-07-11 21:54:38)分类: 美国股市研究 |
最近我在想,给定一组股票,怎么构建一个组合,使得收益率的方差最小minimum variance portfolio(MVP),这样不会被洗盘洗出去。我谷歌查了一下,经典的markowitz组合理论已经给出了答案。具体可见这个课件http://www.math.ust.hk/~maykwok/courses/ma362/Topic2.pdf, 代码可参见https://www.fpcomplete.com/blog/2014/04/mvp。
中心思想是构建efficient frontier有效边界。而这个边界可以表达成两个典型的组合的任意线性叠加。这个两个典型组合的权重系数w1, w2在那个课件的第15页给出:也就是最小方差组合w1=inverse(V)*e, 以及一个所谓的envelope信封组合w2=inverse(V)*R, V是股票收益率(注意不是log(股价)的协方差矩阵, e是全是1构成的单位向量,R是股票期望日收益率构成的向量。inverse函数对矩阵求逆。这个最小方差组合的缺点是权重都集中在波动小的股票上,有的权重接近0。更重要的是按w1做出来的组合走势,看起来也不是方差最小,这可能要归结为cov矩阵丢失了时间序列很多信息,就像麦当劳的牛肉汉堡,不是牛肉,而是是牛肉渣做的一样。协方差cov(x,y)=E(x*y)-E(x)*E(y)
类似的商业开发,有标普的低波动率指数etf:SPLV,最小方差etf:USMV。不过它们的构造加了一下限制条件,比如不能做空,最大的权重不能超过多少。尤其是做空,是很不理想的限制。
我选了两个股票做实验X=spy,Y=splv 从2016年7月8日往前220个交易日,我发现最小方差组合的系数beta3,不等于经典的CAPM beta1=cov(x,y)/var(y)
附:推荐joinquant的陈小米的博客,有很多用python的股票编程,理论方面薄弱了点,不过编程能力大大滴。
https://www.joinquant.com/user/f72e4aae82feceb0c64e6d98
alert提醒功能。
现在的大数据应用,大多都是一有了数据,就闭眼用各种机器算法run一遍,而不是依据经典的方法:先从对小范围数据的观察提出假设/猜想,然后再用大数据去验证这个假设/猜想。
后一篇:最近沪深300走势