陳輝民 余 博 周 澳
(湖南工程學(xué)院 經(jīng)濟(jì)學(xué)院,湖南 湘潭 411104)
現(xiàn)代資產(chǎn)組合理論也稱(chēng)證券投資組合理論、投資分散理論,是馬科維茨(Harry Markowitz)1952年在其論文《證券組合選擇》(Portfolio Selection)首創(chuàng)[1],是現(xiàn)代金融學(xué)的基礎(chǔ)。該理論的主要觀點(diǎn)為:(1)投資者的投資效用函數(shù)(U)取決于投資者擁有的資產(chǎn)組合的均值和方差(μσ2);(3)使用方差—協(xié)方差衡量證券組合的風(fēng)險(xiǎn),以最小方差為決策依據(jù)確定證券的最優(yōu)組合。
此理論首次引入數(shù)理統(tǒng)計(jì)的均值-方差思想,而成為現(xiàn)代金融學(xué)的基礎(chǔ),金融類(lèi)專(zhuān)業(yè)課程多次出現(xiàn)現(xiàn)代資產(chǎn)組合理論知識(shí)點(diǎn)。如投資學(xué)課程—滋維·博迪著的《投資學(xué)》第7章最優(yōu)風(fēng)險(xiǎn)資產(chǎn)組合介紹了組合投資理論[2];弗蘭克 J.法博齊等著的《金融經(jīng)濟(jì)學(xué)》—第13章 均值方差組合選擇介紹了資產(chǎn)組合理論[3];證券投資學(xué)課程—李英著的《證券投資學(xué)》—第13章證券投資的收益和風(fēng)險(xiǎn)與第14章 投資組合的選擇介紹了證券組合理論[4];數(shù)理金融課程—張?jiān)贾骶幍摹稊?shù)理金融基礎(chǔ)》第四章—投資組合理論與資產(chǎn)定價(jià)模型有兩節(jié)內(nèi)容進(jìn)行介紹[5]。多門(mén)課程重復(fù)出現(xiàn)資產(chǎn)組合理論就表明該理論在整個(gè)本科金融類(lèi)專(zhuān)業(yè)教學(xué)是非常重要的。
傳統(tǒng)教學(xué)投資組合理論存在兩個(gè)不足:(1)側(cè)重理論介紹,忽視數(shù)理推導(dǎo)和過(guò)程重現(xiàn);(2)使用EXCEL的VBA技術(shù)處理高度理想化數(shù)據(jù)呈現(xiàn)證券組合投資的結(jié)論[6]。傳統(tǒng)教學(xué)受制商業(yè)軟件的授權(quán)及學(xué)生主觀能動(dòng)性,鑒于證券組合理論的重要性及R軟件開(kāi)源及擴(kuò)展包豐富性,進(jìn)行實(shí)驗(yàn)設(shè)計(jì),引入量化金融思想來(lái)提升學(xué)生創(chuàng)新性能力和學(xué)習(xí)的積極性。
R軟件開(kāi)源,是用來(lái)進(jìn)行統(tǒng)計(jì)計(jì)算和圖形展示的自由軟件環(huán)境,可以在UNIX平臺(tái)、Windows和MacOS上編譯和運(yùn)行。R軟件最初是由奧克蘭大學(xué)統(tǒng)計(jì)系的Robert Gentleman和Ross ihaka(“R & R”)編寫(xiě)的,由全球R愛(ài)好者協(xié)作維護(hù)。R提供了廣泛的統(tǒng)計(jì)方法和圖形技術(shù),輕松編寫(xiě)數(shù)學(xué)符號(hào)和公式,且高度可擴(kuò)展的。
R軟件包含一個(gè)“Finance”模塊,具體包括標(biāo)準(zhǔn)回歸模型(Standard regression models)、時(shí)間序列分析(Time series)、金融(Finance)、風(fēng)險(xiǎn)管理(Risk management)、金融書(shū)籍命令(Books:NMOF,FRAPO)、數(shù)據(jù)及日期管理(Data and date management)6個(gè)模塊154個(gè)核心包,用來(lái)處理資產(chǎn)組合的核心擴(kuò)展包包括:PerformanceAnalytics、portfolio、fPortfolio、quantmod、TTR等[7]。
1.實(shí)驗(yàn)用R包簡(jiǎn)單介紹
(1)時(shí)間序列分析基礎(chǔ)擴(kuò)展基礎(chǔ)包
“zoo” 是個(gè)S3類(lèi)的包,主要用來(lái)處理:(1)不規(guī)則的時(shí)間序列數(shù)值向量、矩陣和因子;(2)保持一個(gè)特定的索引/日期/時(shí)間類(lèi)的獨(dú)立性;(3)擴(kuò)展時(shí)間序列和基本R保持一致標(biāo)準(zhǔn)類(lèi)[8];“TTR”(技術(shù)交易規(guī)則)提供包括CCI, ADX, TDI, VHF, GMMA等44個(gè)函數(shù)[9];“xts”是用來(lái)擴(kuò)展“zoo”,最大限度保持原始格式信息,用戶定制與擴(kuò)展,簡(jiǎn)化跨類(lèi)互操作的包,對(duì)R的不同時(shí)間序列數(shù)據(jù)類(lèi)進(jìn)行統(tǒng)一處理[10];“fBasics”是金融數(shù)據(jù)處理與管理的包,主要用來(lái)處理財(cái)務(wù)回報(bào)率及相關(guān)數(shù)量指標(biāo)、對(duì)數(shù)據(jù)進(jìn)行探索性分析和推斷[11];“fAssets”是一個(gè)“計(jì)算金融和金融工程”教學(xué)R包,主要用來(lái)對(duì)金融資產(chǎn)數(shù)據(jù)進(jìn)行探索性分析、可視化、資產(chǎn)選擇、方差-協(xié)方差估計(jì)等[12]。
(2)證券組合分析專(zhuān)業(yè)擴(kuò)展包
“quantmod”專(zhuān)注處理量化金融建模與交易的R擴(kuò)展包,需要“xts”和“TTR”包支撐,包含ETL類(lèi)、分析類(lèi)、展現(xiàn)類(lèi)三大函數(shù),可以用來(lái)獲取數(shù)據(jù)和指導(dǎo)量化投資、算法交易、統(tǒng)計(jì)套利和高頻交易等投資行為[13];“l(fā)pSolve”是用來(lái)處理線性規(guī)劃、積分、混合整數(shù)規(guī)劃問(wèn)題的擴(kuò)展包[14];“fPortfolio”用來(lái)處理證券組合優(yōu)化,有效前沿的擴(kuò)展包[15]。
2.安裝所需的R擴(kuò)展包及載入內(nèi)存
編制一段R代碼,可以一次性安裝和載入所需的時(shí)間序列分析基礎(chǔ)擴(kuò)展基礎(chǔ)包和證券組合分析專(zhuān)業(yè)擴(kuò)展包;也可以利用install.packages()和library()兩個(gè)命令逐次單個(gè)安裝和載入,具體的R教學(xué)代碼如下。
依據(jù)金融工程專(zhuān)業(yè)教學(xué)需要,選擇深圳證券交易所(http://www.szse.cn/)的J金融業(yè)6支包含“銀行”關(guān)鍵詞的A股股票作為研究對(duì)象進(jìn)行教學(xué)設(shè)計(jì),即平安銀行(000001)、寧波銀行(002142)、江陰銀行(002807)、鄭州銀行(002936)、青島銀行(002948)、蘇州銀行(002966)。也可以在上海證券交易所(http://www.sse.com.cn/)選擇所需上市公司股票進(jìn)行教學(xué)設(shè)計(jì)。考慮整理數(shù)據(jù)的簡(jiǎn)便性,這里使用“quantmod”包下載深圳證券交易所6支金融類(lèi)銀行股票實(shí)時(shí)價(jià)格時(shí)間序列,同時(shí)計(jì)算其每月收益率,并轉(zhuǎn)化為時(shí)間序列對(duì)象,相應(yīng)的教學(xué)R代碼如下。
1.計(jì)算均值—方差
馬科維茨投資組合理論((Harry M. Markowitz,1952)把證券的收益和風(fēng)險(xiǎn)用數(shù)理統(tǒng)計(jì)的方法定義為均值與方差,可以運(yùn)用“fPortfolio::covEstimator”命令計(jì)算6支金融類(lèi)A股股票的日均值和協(xié)方差矩陣,結(jié)果見(jiàn)表1、表2,具體的教學(xué)代碼如下。
表1 6支A股股票收益率均值
表2 6支A股股票方差—協(xié)方差數(shù)據(jù)
2.計(jì)算證券組合均值—方差組合的有效邊界及最小方差
設(shè)置好組合的類(lèi)型(portfolioSpec)、求解方法(setSolver)及約束條件(constraints),使用“fPortfolio::portfolioFrontier”命令測(cè)算數(shù)據(jù)后,利用“frontierPlot”“monteCarloPoints”命令畫(huà)出有效邊界圖及模擬的均值—方差數(shù)據(jù)點(diǎn);最后是“minvariancePoints”命令標(biāo)識(shí)最小方差點(diǎn),見(jiàn)圖1,具體的R教學(xué)代碼如下。
圖1 6支A股(銀行類(lèi))的有效邊界圖
3. 證券組合投資比重分析
使用slot函數(shù)提取“minvariancePortfolio”命令測(cè)算的最小方差條件下的各證券投資比例,見(jiàn)表3。使用barplot繪制投資比例條形圖,見(jiàn)圖2,具體的R教學(xué)代碼如下。
表3 最小方差條件下各證券的投資
(1)提取投資比例并輸出
minVarC <- minvariancePortfolio(ts.df.StockReturnDaily) ##最小方差
圖2 最小方差條件下證券組合中證券的投資比例
4.有效邊界上的證券組合的投資比例及風(fēng)險(xiǎn)驗(yàn)證
有效邊界上,證券組合的預(yù)期收入mu=0.005時(shí),使用“efficientPortfolio”進(jìn)行估測(cè),并使用slot函數(shù)提取S4類(lèi)的投資比例、均值與風(fēng)險(xiǎn)數(shù)據(jù),得到投資比例表4和收益與風(fēng)險(xiǎn)數(shù)據(jù)表5。具體的R教學(xué)代碼如下:
表4 證券組合各證券的投資比例
表5 證券組合的收益與風(fēng)險(xiǎn)
在有效邊界已經(jīng)確定的情況下,引入無(wú)風(fēng)險(xiǎn)資產(chǎn),構(gòu)建風(fēng)險(xiǎn)資產(chǎn)與無(wú)風(fēng)險(xiǎn)資產(chǎn)的資產(chǎn)組合,通過(guò)資本市場(chǎng)線理論和基金分離定理,確定最優(yōu)的風(fēng)險(xiǎn)組合,即資本市場(chǎng)線與有效邊界的切點(diǎn)。如果無(wú)風(fēng)險(xiǎn)資產(chǎn)的收益率為0.0005(教學(xué)示意用),使用“fPortfolio::tangencyPortfolio”命令測(cè)算得到最優(yōu)市場(chǎng)組合MarketC,并使用“fPortfolio::tangencyLInes”命令做出資本市場(chǎng)線示意圖3,具體的R教學(xué)代碼如下。
圖3 資本市場(chǎng)線示意
《金融工程學(xué)》《金融經(jīng)濟(jì)學(xué)》《數(shù)理金融》和《投資學(xué)》等課程都涉及資產(chǎn)組合理論,是教學(xué)的重點(diǎn),因?yàn)槠鋽?shù)學(xué)推導(dǎo)比較抽象,故也是教學(xué)的難點(diǎn)。使用少量證券資產(chǎn)確定有效的組合對(duì)于本科生來(lái)說(shuō)還具有一定的難度,如何幫助學(xué)生克服學(xué)習(xí)困難,掌握該理論并進(jìn)行運(yùn)用,需要教師根據(jù)學(xué)生特點(diǎn)和大數(shù)據(jù)時(shí)代統(tǒng)計(jì)工具的開(kāi)源性設(shè)計(jì)實(shí)驗(yàn),促使學(xué)生通過(guò)使用計(jì)算機(jī)仿真和重現(xiàn)資產(chǎn)組合理論,引導(dǎo)學(xué)生進(jìn)行創(chuàng)新性思考。把程序設(shè)計(jì)思維和金融理論結(jié)合可以較好地提升學(xué)生的學(xué)習(xí)積極性和創(chuàng)新性,更好地引導(dǎo)學(xué)生進(jìn)行探索性學(xué)習(xí)。