“馬科維茨”投資組合模型實踐——第二章 MPT 以及有效邊界

前情概要

我們先來回顧上一篇談到的“風險分攤”,我們通過調整收益變化的概率分布,使其波動范圍逐步向中間“靠攏”,來達到降低風險的目的(如下圖所示,想要了解具體內容的小伙伴,點此跳轉至上一篇文章)。事實上,這種“向中靠攏”的實現,我們也稱為方差最小化(或者標準差最小化)。

現代投資組合理論

現代投資組合理論(Modern Portfoilio Theory) 的核心思想,正是以“最小化收益率變化方差,并最大化期望收益”為目標來配置資產,也被叫做均值-方差 (Mean-Variance) 分析,是金融領域的重要基礎理論。

我們“設計”了一個投資組合,假設它由這兩只股票組成,且這兩只股票的收益率服從正態分布(均值為0),我們通過程序模擬來模擬一下:

可以看到,藍綠兩線代表“股票”的收益率變化。接下來,我們再定義兩個函數:

1、權重函數:用于為2只股票分配隨機權重。

2、投資組合配置函數:調用權重函數生成不同的投資組合,并計算這些組合下的期望收益和方差:

至此,數據已經準備完畢。我們從中隨機挑選出500個投資組合(注意,組成投資組合的這兩只股票,本身的平均收益率是可以計算得到的固定值,在合成投資組合時,由于配置的權重不同,引起了投資組合的收益率以及方差的不同)。

現在讓我們通過圖形化來觀察一下投資組合有哪些特性。為了更直觀地分析,我們對效用-收益坐標軸進行變換:橫軸為收益率的標準差,縱軸為期望收益率。

通過可視化之后,你將觀察到它們形成了特征像“子彈”那樣的拋物線,位于線上的每一個藍色點,都代表了不同權重配比下的一個投資組合。我們把拋物線上的半部分稱作有效邊界。對于擁有相同風險(方差)的兩個點,投資者會追求更高的期望收益率。

實際上,隨著構成投資組合的股票數量不斷增加,子彈區域會被逐漸填充滿,下圖是有4只股票組合按不同權重組成的投資組合特征圖形。

此時有效邊界仍然有效,因為在其他位置的所有點,都能在有效邊界找到一個風險相同,確有更高收益的對應點。

關于如求解有效邊界,涉及到向量計算、拉格朗日乘子與二次規劃問題。幸運的是,Python的第三方庫已經包含了現成的方法可供調用。我們下面將略作簡單說明。

首先根據已知條件,我們有了(或者我們可以通過簡單計算得到)以下數據:

1、股票均價向量 P:(p1,p2 ,...,pn),記錄著n只股票指定交易日內的各自均價;

2、股票方差向量 S2:記錄著n只股票各自收益率的離散程度

3、n * n 的協方差矩陣 C:記錄著n只股票相互收益率變化趨勢之間的相關程度。

另外,我們假設一個帶求解的可變向量 w:(w1,w2 ,...,wn),記錄著股票的配置比例(權重)。

由此我們得到:

投資組合的期望收益R = wT · P(按w對各股票期望收益加權平均)

投資組合的方差V = w · C ·wT,之所以不使用 wi2Si2 ,是因為簡單的加權平方,只考慮了資產本身的離散程度,而遺漏了資產相互間的相關影響,因此我們引入C 這個 N x N 的協方差矩陣:

等價于:

它的對角線的值代表每個資產的自身的方差,而對角線以外的值則是代表資產之間的方差。

那么結合我們剛才說到的投資組合圖形,我們需要找的,就是圖中方差最小的那個點,也即最左側的那一點,也就是使投資組合方差 w · C · wT 最小化。

這里我假設各位都已經把那些大學里艱澀難懂的線性代數,微積分等數學知識以往的差不多了,因此并不做具體推導,后續我可能會把具體推導過程掛在網盤上供有興趣的同學下載。在這里不做展開。

代碼實現

我們可以利用Cvxopt庫來求解得到最左側的紅點所對應的權重分配,具體代碼如下:

通過該方法,我們得到了最小方差的權重分配參數 w 向量:

在下一章中,我們將會展示如何在量化交易回測中應用上述方法。本篇首發于微信公眾號“數據夕拾”,趕快搜索一下關注吧。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容