是" sigma.robust" momentFUN passthrough同时使用StdDev和ES风险模型

时间:2017-10-18 21:59:10

标签: r r-portfolioanalytics

我正在使用R。

中精彩的PortfolioAnalytics包

为了缩小协方差矩阵,我使用" sigma.robust"例。我使用EDHEC数据。

我创建了初始投资组合,并从中创建了我打算比较的4个投资组合。

我想看到的是:a)传递强大的covar工作 - 通过比较它与有和没有,和b)它适用于StdDev和预期不足的风险模型。

data(edhec)
# Use the first 4 columns in edhec for a returns object
R <- edhec[, 1:4]
colnames(R) <- c("CA", "CTAG", "DS", "EM")
head(R, 5)
funds <- colnames(R)

初始化pf并使用一些基本约束

init.portf <- portfolio.spec(assets=funds)
init.portf <- add.constraint(portfolio=init.portf, type="full_investment")
init.portf <- add.constraint(portfolio=init.portf, type="box",min = .05,max = .4)

以标准差为目标的投资组合

SD.portf <- add.objective(portfolio=init.portf, type="risk", name="StdDev")
SD.portf <- add.objective(portfolio=SD.portf, type="return", name="mean")

以预期短缺为目标的投资组合

ES.portf <- add.objective(portfolio=init.portf, type="risk", name="ES")
ES.portf <- add.objective(portfolio=ES.portf, type="return", name="mean")

强健covar

的功能
sigma.robust <- function(R){
  require(MASS)
  out <- list()
  set.seed(1234)
  out$sigma <- cov.rob(R, method="mcd")$cov
  return(out)
}

传递自定义函数

opt.sd_robust <- optimize.portfolio(R, SD.portf,optimize_method="ROI",momentFUN =  "sigma.robust",trace = TRUE)
opt.es_robust <- optimize.portfolio(R, ES.portf,optimize_method="ROI",momentFUN =  "sigma.robust",trace = TRUE)

创建正常的投资组合,我打算将效果与

进行对比
opt.sd <- optimize.portfolio(R, SD.portf,optimize_method="ROI",trace = TRUE)
opt.es <- optimize.portfolio(R, ES.portf,optimize_method="ROI",trace = TRUE)

将它们组合起来以便于查看

opt_comb = combine.optimizations(list(opt.sd_robust = opt.sd_robust,opt.es_robust = opt.es_robust,opt.sd = opt.sd,opt.es = opt.es))

绘制它们

chart.Weights(opt_comb,ylim(0,1))

检查他们

extractWeights(opt_comb)



                     CA      CTAG  DS   EM
opt.sd_robust 0.08507019 0.1149298 0.4 0.40
opt.es_robust 0.15000000 0.4000000 0.4 0.05
opt.sd        0.05000000 0.1500000 0.4 0.40
opt.es        0.15000000 0.4000000 0.4 0.05

结论

它确实适用于使用StdDev的风险模型。权重是不同的。传递有效。但它似乎并没有影响预期的短缺模型。重量是相同的。我发现就是这种情况,即使我放宽了框约束[我想知道我是否提出任何其他结果是不可行的,所以我尝试使用和不使用约束]。

所以我想我想知道我做错了什么。虽然我只是在查看从转换的协方差矩阵中有效推导出的分布的尾部。

因此缩小/正规化covar将与ES兼容。

所以我总结说我做错了什么。

有人可以帮忙吗?

0 个答案:

没有答案