孫麗泊
摘要:隨著中國金融體系的逐步完善和大數(shù)據(jù)時代的到來,新技術在金融領域的應用不斷深化。本文在馬科維茨投資組合理論的基礎上,借助Python工具,在20只來自不同行業(yè)的股票中選取5只進行了組合投資分析,通過實證得到夏普比率最大的最優(yōu)投資組合及方差最小的最優(yōu)投資組合,對它們的預期收益率、標準差及夏普比率進行對比分析,并給出資產(chǎn)組合的有效邊界。通過實證分析,進一步說明馬科維茨投資組合理論在金融風險管理中的重要意義。
關鍵詞:馬科維茨模型 ?Python ?夏普比率 ?有效邊界 ?最優(yōu)投資組合
一、引言
(一)相關理論
1.馬科維茨投資組合理論。1952年,哈里·馬科維茨的論文《Portfolio Selection》運用概率論和求解二次規(guī)劃的方法解決投資組合的選擇問題,這是現(xiàn)代資產(chǎn)組合管理理論誕生的標志。在投資者厭惡風險并尋求期望收益最大化的假設條件下,馬科維茨投資組合理論包括均值-方差模型和效邊界理論兩方面內(nèi)容。該理論提出用均值和方差分別量化投資組合的期望收益和投資風險,投資決策的目標便是尋找相同收益水平下投資風險最小或同等風險水平下收益最高的投資組合,位于有效邊界上的投資組合同時滿足這兩個條件。
(1)均值-方差模型。
假設投資者在某單一投資期投資于n種風險資產(chǎn)構成的組合,ri表示第i個資產(chǎn)的預期收益率,則資產(chǎn)組合的期望收益率為:
(1)
其中表示第i個資產(chǎn)所占的投資比重。
用表示第i個資產(chǎn)的方差,則由n項資產(chǎn)構成的投資組合的方差為:
(2)
其中,i,j表示不同的資產(chǎn),是資產(chǎn)i和資產(chǎn)j之間的協(xié)方差,它是用來衡量兩種資產(chǎn)收益率聯(lián)動性的指標。為資產(chǎn)i與資產(chǎn)j之間的相關系數(shù),可用來比較兩種資產(chǎn)之間相關性的大小。和分別表示資產(chǎn)i和資產(chǎn)j的標準差。根據(jù)公式(2)可以看出,投資組合的風險主要取決于各個資產(chǎn)的投資比重、不同證券之間的相關系數(shù)、以及各項資產(chǎn)的標準差。因此,我們應優(yōu)先選擇方差較小且兩兩之間相關系數(shù)較低的資產(chǎn)構建投資組合從而降低投資風險。在實際應用中,通常用過去收益數(shù)據(jù)的樣本平均值和樣本方差來估計未來收益與風險。
(2)資產(chǎn)組合的有效邊界。
投資組合中各項資產(chǎn)的所有可能組合構成可行集,其形狀類似圖1所示的一個左凸的實心區(qū)域。MVP點標注的為最小方差資產(chǎn)組合,以該點為中心可將可行集分成兩部分,其中位于上半部分邊緣線的投資組合同時滿足既定收益水平下風險最小和同等風險水平下收益最高的條件,被稱為資產(chǎn)組合的有效邊界。
2.夏普比率。1966年,夏普提出用夏普比率(Sharpe ratio)作為衡量基金業(yè)績的風險調(diào)整指標,夏普比率是投資組合的超額期望收益率與整體標準差之比,計算公式為:
(3)
其中,表示夏普比率,為投資組合整體標準差,是無風險利率。
表示資產(chǎn)組合每多承擔一單位風險時,能有多少超額收益。綜合考慮了收益與風險,本文的實證研究部分也將使用這一指標作為判斷投資組合優(yōu)劣的標準。
(二)研究內(nèi)容
本文研究的主要問題是,利用 Python語言說明馬科維茨投資組合理論在股市最優(yōu)投資組合選擇中的一個應用實例。Python語言具有完整的數(shù)據(jù)分析套件和能夠調(diào)取股價等金融數(shù)據(jù)的程序包,為解決金融問題提供了很大的方便。利用Python語句求解最優(yōu)投資組合可有效解決各項資產(chǎn)之間的協(xié)方差和相關系數(shù)計算復雜等問題。研究表明在Python中能夠很快計算出最優(yōu)投資組合,新技術對于馬科維茨的投資組合理論在中國金融市場中的應用有重要價值。
二、實證研究
本文選取了市場上20只來自不同行業(yè)比較有代表性的股票,首先利用過去三個月的歷史數(shù)據(jù)計算出這20只股票的收益率均值、股票相互之間的協(xié)方差與相關系數(shù),進而從中篩選出收益率較高且相互之間相關系數(shù)較小的5只股票;然后通過夏普比率最大化和方差最小化這兩種優(yōu)化方法來找到最優(yōu)的投資組合權重參數(shù),并計算出這兩種最優(yōu)投資組合的期望收益率、預期波動率和夏普比率;最后對投資組合的有效邊界進行可視化。
(一)樣本股票的選擇及數(shù)據(jù)獲取
首先新建一個Python3文件并將要使用的軟件包引入,代碼如下:
選取市場中20只來自不同行業(yè)的比較有代表性的股票,利用tushare庫中的get_hist_data函數(shù),獲取它們自2019年1月1日至2019年12月31日之間一共246個交易日的每日收盤價歷史數(shù)據(jù),分別用mean函數(shù)、cov函數(shù)和corr函數(shù)估計出每只股票的預期年化收益率、相互之間的協(xié)方差和相關系數(shù)。表1列出了20只股票的股票代碼和預期年化收益。
從以上20只股票中篩選出收益率較高且相互之間相關系數(shù)較小的5只股票,分別是:貴州茅臺(600519)、萬科A股(000002)、方正科技(600601)、中國船舶(600150)和晨光文具(603899)(本文后面投資組合的權重向量各股排序與此處相同)。
(二)5只股票的預期收益率、相互之間的協(xié)方差與相關系數(shù)
重新計算所選5只股票的預期年化收益率、各只股票相互之間的協(xié)方差與相關系數(shù),結果如表2所示:
根據(jù)表2可見,5只股票的預期收益率均大于0,各股票之間的協(xié)方差和相關系數(shù)均較小,適合構造投資組合。
(三)模擬大量隨機投資組合
為了尋找滿足條件的最優(yōu)投資組合以及有效邊界,首先通過一次蒙特卡羅模擬得到50000組隨機權重向量,并通過數(shù)組記錄各組合的期望收益、標準差和夏普比率,這里主要用到for循環(huán)語句、append函數(shù)和numpy庫中的random函數(shù)和array函數(shù),其中組合期望收益為5只股票預期收益的加權和,計算夏普比率時無風險利率設定為4%,另外由于中國的股市不允許賣空,還需將各股權重數(shù)值限定在0和1之間。在圖2中可以看到這些隨機組合的分布,它們構成了資產(chǎn)組合的可行集。
(四)找到夏普比率最大的最優(yōu)投資組合
首先定義一個stat函數(shù)記錄投資組合的預期收益、標準差和夏普比率,然后引入scipy庫中的optimze模塊,在權重和等于1的約束下,利用minimize函數(shù)最小化夏普比率的負值,起始參數(shù)列表采用均勻分布,即5只股票的權重均為0.2,最終求得夏普比率最大的投資組合的權重向量為[0.435,0.057,0.127,0.021,0.36],預期收益率、標準差、夏普比率構成的向量為[0.593,0.226,2.443]。
(五)找到方差最小的最優(yōu)投資組合
用minimize函數(shù)得到方差最小的最優(yōu)投資組合權重向量為[0.134,0.336,0.162,0.022,0.346],該組合預期收益率、標準差、夏普比率向量為:[0.471,0.200,2.155].
(六)最優(yōu)投資組合的比較和可視化
將以上得到的夏普比率最大的投資組合和方差最小的投資組合結果整理為表3,以便投資者更直觀地對它們進行比較,選擇適合自己的最優(yōu)投資組合。
從表3可以看出,投資組合的夏普比率最大可以達到2.443,對應的標準差為0.226,對那些希望每多承擔一單位風險所獲得的超額收益達到最大的投資者,應該選擇夏普比率最大的投資組合,即對貴州茅臺、萬科A股、方正科技、中國船舶和晨光文具的投資比重分別為43.5%、5.7%、12.7%、2.1%和36%,該組合的預期收益率是59.3%.對于追求投資風險最小的投資者,應選擇方差最小的最優(yōu)投資組合,即對貴州茅臺、萬科A股、方正科技、中國船舶和晨光文具的投資比重分別為13.4%、33.6%、16.2%、2.2%和34.6%.該組合的標準差為0.2,相應的預期收益率為47.1%。
利用matplotlib.pyplot中的相關函數(shù)對以上最優(yōu)投資組合在可行集中的位置進行可視化,得到圖2。
圖2中,五角星標記的是夏普比率最大的投資組合(即風險收益均衡點),正六邊形標記的是最小方差投資組合。與圖1類似,以最小方差投資組合為界,將可行集分為上下兩個部分,上半部分的邊緣即為有效邊界。
從圖2中可以看出,所有投資組合的夏普比率均為正值,有效邊界上的投資組合達到了相同收益水平下投資風險最小和同等風險水平下收益最高的效果。此外,有效邊界上的投資組合風險和收益一定是相對應的,投資者若想達到得較高的收益,相應的就必須承擔更高的風險。
三、結論
實驗結果表明,利用馬科維茨投資組合理論,能夠找到由多個資產(chǎn)組成的投資組合中風險最小或夏普比率最大的投資組合以及有效邊界。投資者可以根據(jù)自身實際能力以及風險偏好進行理性投資。Python在很大程度上方便了馬科維茨投資組合理論中預期收益率、投資組合方差的計算,并能快速找出最優(yōu)投資組合,對于馬科維茨投資組合理論在中國金融市場中的應用有重要價值。將傳統(tǒng)的金融理論和新興程序設計語言結合起來,更加快速、高效地解決金融問題,應該受到金融分析人員和新興技術人才的重視。
參考文獻:
[1]Markowitz H.M..Portfolio Selection[J].Journal of Finance.1952(7).
[2]朱順泉.投資學及其Python應用[M].北京:清華大學出版社,2019.
[3]張賀清.均值和方差變動的馬科維茨投資組合模型研究[D].哈爾濱:哈爾濱工業(yè)大學,2015.
[4]李洋,余麗霞.基于馬科維茨理論的最優(yōu)證券組合分析[J].財會月刊.2013(22).
[5]楊芷.投資組合理論發(fā)展演變與模型構建[J].經(jīng)濟研究導刊.2018(36).
[6]劉科弟.馬科維茨理論構造投資組合[J].現(xiàn)代商業(yè).2018(36).
[7]黎爽.基于Python科學計算包的金融應用實現(xiàn)[D].南昌:江西財經(jīng)大學,2017.
作者單位:蘇州科技大學