楼主: 竹莹灵
8045 3

[问答] R中怎样做全局最小方差组合投资分析? [推广有奖]

  • 0关注
  • 2粉丝

已卖:148份资源

本科生

66%

还不是VIP/贵宾

-

威望
0
论坛币
501 个
通用积分
0.0600
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
993 点
帖子
68
精华
0
在线时间
103 小时
注册时间
2014-1-1
最后登录
2019-5-31

楼主
竹莹灵 发表于 2014-10-22 15:00:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
想对组合投资进行GMV(global minimum variance)分析,在R中怎样才能实现?主要用到哪个包?谢谢大家解答。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:投资分析 组合投资 variance minimum varian 投资分析

沙发
DM小菜鸟 发表于 2014-12-16 15:16:25
我给你找了一个例子——



library(xts)
library(quadprog)
library(PerformanceAnalytics)
library(PortfolioAnalytics)
library(pso)


# General Parameters for sample code
data(edhec)
N <- 4
R <- edhec[,1:N]
funds <- names(R)
mu.port <- mean(colMeans(R))


gen.constr <- constraint(assets = funds, min=-2, max=2, min_sum=0.99, max_sum=1.01, risk_aversion=1)
gen.constr <- add.objective(constraints=gen.constr, type="return", name="mean", enabled=FALSE, target=mu.port)
gen.constr <- add.objective(constraints=gen.constr, type="risk", name="var", enabled=FALSE, risk_aversion=10)
gen.constr <- add.objective(constraints=gen.constr, type="risk", name="CVaR", enabled=FALSE)
gen.constr <- add.objective(constraints=gen.constr, type="risk", name="sd", enabled=FALSE)




# =====================
# Max return under box constraints, fully invested
print('Max return under box constraints, fully invested')
max.port <- gen.constr
max.port$min <- rep(0.01,N)
max.port$max <- rep(0.30,N)
max.port$objectives[[1]]$enabled <- TRUE
max.port$objectives[[1]]$target <- NULL
max.port$objectives[[1]]$multiplier  <- -1
max.solution <- optimize.portfolio(R=R, constraints=max.port, optimize_method="pso", trace=TRUE)

# =====================
# Mean-variance:  Fully invested, Global Minimum Variance Portfolio
print('Mean-variance:  Fully invested, Global Minimum Variance Portfolio')
gmv.port <- gen.constr
gmv.port$objectives[[4]]$enabled <- TRUE
gmv.solution <- optimize.portfolio(R=R, constraints=gmv.port, optimize_method="pso", trace=TRUE)

# ========================
# Minimize CVaR
#
print('Min-CVaR')
cvar.port <- gen.constr
cvar.port$min <- rep(0,N)
cvar.port$max <- rep(1,N)
cvar.port$objectives[[3]]$enabled <- TRUE
cvar.port$objectives[[3]]$arguments <- list(p=0.95, clean="boudt")
cvar.solution <- optimize.portfolio(R=R, constraints=cvar.port, optimize_method="pso", trace=TRUE)


要是想了解更详细的内容,这里有个pdf文档,说的就特别清楚了~
http://www.rinfinance.com/agenda/2013/talk/DougMartin.pdf

藤椅
竹莹灵 发表于 2014-12-26 19:45:58
非常感谢

板凳
爽爽胖胖 学生认证  发表于 2016-3-1 16:32:45
非常感谢

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-28 17:14