關於「現代投資組合理論」的說明,可參考這篇文章:應用「現代投資組合理論」進行「投資組合最佳化」。
本文說明如何以 R 及 plotly 進行「投資組合最佳化」。
基本原理是以 random number 建立 N 項資產各種比重的排列組合,找出什麼樣的資產配置能夠在給定的報酬率 (expected return) 之下,帶來最小的風險 (portfolio return variance)。
首先,安裝 R (R 是一套能夠方便進行統計運算及繪製統計圖表的軟體環境)。
在 R 下,執行下列指令安裝相關的 package。
install.packages("plotly")
install.packages("quantmod")
install.packages("ROI")
install.packages("ROI.plugin.glpk")
install.packages("ROI.plugin.quadprog")
install.packages("DEoptim")
install.packages("doParallel")
install.packages("PortfolioAnalytics")
下載資產歷史報酬率範例檔: data_3_assets.txt下載: portfolio_n_assets_v6_example.r
在 R 下,執行下列指令進行投資組合最佳化。
source("portfolio_n_assets_v6_example.r")
在 R 下,執行下列指令畫出各種資產比重配置下的平均報酬率 (Mean Returns) v.s. 風險 (Standard Deviation) 圖。
p
會輸出如下圖表,在這個範例,藍點是債券+股票的投資組合A,紅點是債券+股票+年金的投資組合B:在 R 下,執行下列指令畫出投資組合A之中債券、股票的各種比重。
p.weightA
在 R 下,執行下列指令畫出投資組合B之中債券、股票、年金的各種比重。
p.weightB
參考資料
Portfolio Optimization Using R and Plotly
Getting Started with Plotly for R
Plotly R Library
plotly for R
The R Project for Statistical Computing
The R Manuals
Introduction to PortfolioAnalytics
Complex Portfolio Optimization with PortfolioAnalytics
R Package ‘PortfolioAnalytics’
R Package ‘quantmod’