R语言与马克维茨资产组合理论学习笔记(利用fportfolio包实现)

来源:互联网 发布:dnf强制交易软件 编辑:程序博客网 时间:2024/04/30 21:26
仍然以fportfolio包中的数据集LPP2005.RET为例。
library(fPortfolio)
#模型设定mvspec<-portfolioSpec()setRiskFreeRate(mvspec)<-0setSolver(mvspec)<-"solveRshortExact"print(mvspec)data<-100*LPP2005Data<-portfolioData(100*LPP2005.RET,mvspec)#100*LPP2005.RET一些股票的收益率print(Data)constrains<-"Short"portfolioConstraints(data,mvspec,constrains)
#方差最小组合求解globminportfolio<-minvariancePortfolio(Data,mvspec,constrains)print(globminportfolio)
#求解特定组合的均值方差m1vspec<-portfolioSpec()data1<-100*LPP2005.RETData1<-portfolioData(100*LPP2005.RET,m1vspec)n<-ncol(data1)setWeights(m1vspec)<-rep(1/n,n)m1vPortfolio<-feasiblePortfolio(Data1,m1vspec,constraints="LongOnly")print(m1vPortfolio)
#在上面同等收益下,优化组合mvspec1<-portfolioSpec()setRiskFreeRate(mvspec1)<-0.05targetReturn<-getTargetReturn(m1vPortfolio@portfolio)["mean"]setTargetReturn(mvspec1)<-targetReturnefficientportfolio<-efficientPortfolio(Data,spec=mvspec1)weightsPie(efficientportfolio)efficientportfolio
#做出有效前沿data2<-100*LPP2005.RETlppspec<-portfolioSpec()setRiskFreeRate(lppspec)<-0.005frontier<-portfolioFrontier(data2,lppspec)#plot(frontier)tailoredFrontierPlot(frontier)frontierPlot(frontier)cmlPoints(frontier,col=2)frontierweightsPlot(frontier)

原创粉丝点击