利用馬科維茨投資組合模型建立Alpha策略

上學期的一份大作業。

理論基礎

馬科維茨的投資組合(均值-方差、有效邊界)模型最早採用了風險資產的期望收益率(均值)和用方差(或標準差)代表的風險來研究資產組合和選擇問題。理論上來說可以通過投資組合規避非系統性風險。

而Alpha策略則是找出某種可以超越大盤收益率的選股策略,再做空對應大盤的股指期貨等衍生品,就可以穩定產生收益,且可以規避系統性風險。

所以將兩者結合,利用馬科維茨的理論選股規避非系統性風險,再套入Alpha策略,進行對沖,規避系統性風險,從而產生穩定收益。這個策略看起來很美好,但是否能真正奏效,我們來實際模擬一下。

主要利用的工具

Matlab建立模型、R做簡單可視化。

所利用的數據範圍

滬深三百的300支股票的收盤價數據、滬深三百股指收盤價數據(對比構建的投資組合收益率)

數據時間範圍

2012年1月——2017年11月

建立模型過程如下:

第一步

將滬深三百300支股票 2012.1.1--2013.1.1的收盤價導出。

這樣其實可以構成一個245*300(245是因為2012年大約有245個交易日)的收盤價矩陣。

然後計算每支股票的日收益率,得出一個新的244*300的收益率矩陣。

求得的日收益率是用複利計算,也就是用 ln(a_{i+1}/a_{i})

註:其中的股票肯定存在有些股票在數據區間還未上市或者停牌的情況,這部分數據顯示為空值。則進行初步篩選,比如這一年超過1/3空值的股票去掉,不進入這一次的組合中;對其餘低於1/3空值的股票,在空值中插入該股票在2012.1.1——2013.1.1時間內非空值數據的均值,比如股票A每日價格為:9.53,9.31,(停牌),9.99,則停牌那天的數據插入 (9.53+9.31+9.99)div3=9.61 ,即數據變為9.53,9.31,9.61,9.99。(這種方法值得商榷)

第二步

計算每支股票的期望收益率以及300支股票之間的協方差,這樣就構成了一個300*300的矩陣(300支股票,但是如果存在第一步注中的空值超過1/3的股票,那就<300了)。

Matlab有函數可以算。

注意 協方差需要得到一個協方差矩陣,橫軸縱軸都是股票,矩陣中(i,j)位置就代表股票i和股票j的協方差,(i,i)就代表方差。

第三步

Matlab有一系列的金融函數,包括資產組合(也就是有效邊界)的這個函數,即:portopt

[PortRisk,PortReturn,PortWet] = portopt(ExpReturn,ExpCovariance,N)

輸入期望收益率矩陣(ExpReturn,第一步中244*300的矩陣)和協方差矩陣(ExpCovariance,第二步中300*300的矩陣),以及需要多少個點(N)來組成你的圖像。

輸出橫坐標:風險(標準差),縱坐標:期望收益率,還有很重要的:在某個點這些股票的權重分配。

輸出的都是一個300*1的矩陣。

這樣有效邊界就畫出來了。

然後就要找最優市場組合點,即CML和有效邊界的切點,設定無風險利率為0.03,再找切點就可以了。找切點可以用夏普比,因為剛剛函數的輸出不是有300個點嗎,計算這300個點的夏普比,最大那個點,就是切點了。這樣就可以做出圖1了。(收益率和標準差都年化過了)

圖1 有效邊界

離奇的權重

特別有趣,滬深300中大部分股票分配的權重都是0!切點的最佳市場組合大概只有二十支股票有分配權重,這有很重要的意義!如果300支股票都有權重,那現實中很難有一個投資人有財力和精力去投資300支股票,但是只有20支,就完全具有操作空間了。

對沖和收益

先利用馬科維茨的有效邊界理論在滬深三百中選股,由此確定之後買入股票的權重,同時做空對應的滬深300期貨進行對沖,並在之後過程中逐月向前滾動得出新的最優投資組合,繼續做空期貨對沖,實現規避系統性風險的目的。最終計算收益率,思路示意圖如圖1所示:

圖2 策略思路圖

選擇了2012年1月——2017年11月5年的數據進行回測,不算很短了,防止了一定程度上的過擬合,最終均值方差策略選出的股票與滬深300股指的每月年化收益率,如圖3所示,可以看出紅色柱還是明顯高於綠色柱的。

圖3 收益率對比

圖ut3

對沖策略重要的不是看我們選股策略的收益率,而是看比對應的股指期貨收益率高出多少,高出的部分才是真正的收益率(因為賣空了股指期貨),所以把每個紅條減去綠條才是,如圖4所示。

圖4 策略收益率

一些建倉參數設置

在這裡對沖時,沒有選擇最簡單的等價值對沖,而是根據組合的 eta 來選擇需要賣空的股指期貨。所以就引出來了以下的 eta 的計算和現金的配置

(1)建倉合約選擇

為簡化模型,且設置策略全部為買入 30 天后平倉,所以本組在建倉合約的選擇上全部選擇下月合約,合約份數:

合約份數=frac{現貨價值}{單位期貨合約價值}	imeseta

(2)Beta參數設定

在投資過程中,投資組合的系統風險用 Beta 係數來計量,通過以大盤整體為參照物,用投資組合的風險收益率與整個大盤的平均風險收益率作比較,可以得出如下公式:

eta=frac{Cov(r_{a},r_{m})}{delta_{m}^{2}}

式中,Cov 為協方差函數, r_{a}r_{m} 分別反映投資組合與大盤整體的風險收益率, delta_{m}^{2}

反應大盤總體的價格波動,這裡用滬深 300 股指度量。

(3)現金及交易成本預留

在本模型中,總資金的用途劃為三部分,分別為購買股票的資金、購買期貨的保證金和補貼虧損保證金的部分。最終決定初始保證金規模為期貨總價值的15%,補貼虧損的現金占購買期貨總價值的 10%。

動態調整期貨頭寸

在本模型中,用前一年的股票價格選出投資組合及配置權重後,可根據

eta=frac{Cov(r_{a},r_{m})}{delta_{m}^{2}}

計算每次 Beta 值。

籍此在每 30 天會動態調整 Beta 係數值,從而改變購買期貨的總價值。

Beta 穩定性

經計算,由均值方差選股策略選出的股票組合,Beta 標準差為 0.1502,波動較大,但是通過分析 Beta 與滬深 300 股指的同步走勢,我發現正好解釋了之前產生的一些疑問。

當發現馬科維茨選股策略選股得出的收益率很高時,就產生一定疑問:在2015 年股災期間,所選出的股票組合收益仍然遠高於滬深 300 指數。 但是通過分析 Beta 與滬深 300 指數的同步走勢發現,在 2015 年股災期間,均值方差模型所選股票的 Beta 值不斷下降,且達到最低點 Beta=0.1626。這個數值正好說明在這段時間,所選股票與大盤相關性差。當大盤暴跌時,選出的股票卻只是小跌甚至略微盈利,這就解釋了為什麼股災期間,所選股票仍能獲得較大超額收益率。 Beta和大盤的走勢如圖5:

圖5 Beta和滬深三百指數走勢對比

現金配置比例

總資產主要用來購買股票和期貨,而用來購買期貨的部分又包含了保證金和用來補貼期貨虧損的部分。首先,決定初始保證金規模為期貨總價值的15%,補貼虧損的現金占購買期貨總價值的 10%。

現在,假設用來購買股票的部分為 x,購買期貨的為 y,則有

x+y=1億(1)

根據公式:

合約份數=frac{現貨價值}{單位期貨合約價值}	imeseta(2)

所以,購買期貨的現金

y=合約份數	imes單位期貨價值	imes(0.15+0.10)(3)

聯立(1)、(2)、(3)解得x、y

x=frac{1億}{1+0.25	imeseta}

y=1億-x

策略就是這樣,但是其實還是有好多問題,

  1. 還是有可能存在過擬合問題。這5年的回測時間還是不算很長。現在得出的收益率也是經過一定的調參的,比如選股時間現在是利用一年的數據選股,之前用過三個月的、半年的,但效果一般。還是那句話,沒有永遠賺錢的策略,所以現在這個策略實際有多少收益率就不一定了。
  2. 可能買不到想要的價格。那個收益率最高的那個月,其實是因為剛好買入了一支連續漲停一個月的股票——巨人網路,可以看圖6。這就導致了可能買不進去..
  3. 採用的插值法,是否有更好的方法替代。

圖6 巨人網路連續漲停一月

推薦閱讀:

投資理論(2):斗傻理論(Bigger Fool Theory)|米羅
臨兵斗者皆陣列於前(上) 市場如戰場 先為不可勝
這個龍愛量子的「真愛粉」終於承認自己是大忽悠了!丨無路可套
《通往自由的交易之路》精英級100課邀請函
預測未來10年的投資大方向,準備好迎接未來了嗎?

TAG:互聯網金融 | 金融 | 投資 |