创建有效边界时出现PortfolioAnalytics错误

问题描述 投票:1回答:1

我正在尝试解决投资组合优化问题,除我试图创建有效的边界外,所有事情都运行顺利。

我试图弄乱所有函数参数,已经安装了文档推荐的所有软件包和插件。但是,即使我尝试在程序包的GitHub存储库中的高效前沿演示中运行代码,我也会收到相同的错误消息。我怀疑它是缺少的插件或建议的软件包安装中的错误。有人至少可以给我提示发生了什么事吗?

我拥有的代码非常简单,但是我的主要结论是我没有任何问题,因为在运行位于https://github.com/R-Finance/PortfolioAnalytics/blob/master/demo/demo_efficient_frontier.R的代码时遇到相同的错误。

我的代码:

base_pf <- portfolio.spec(colnames(monthly_returns_with_rf[,-selic_col]))

base_pf <- add.constraint(portfolio = base_pf, type = 'full_investment')

base_pf <- add.constraint(portfolio = base_pf, type = 'long_only')

moments <- set.portfolio.moments(monthly_returns_with_rf[,-selic_col], portfolio = base_pf, method = 'boudt', k = 3)

base_pf <- add.constraint(portfolio = base_pf, type = 'box', min = 0, max = 0.4)

base_pf <- add.objective(portfolio = base_pf, type = 'return', name = 'mean')

base_pf <- add.objective(portfolio = base_pf, type = 'risk', name = 'var')

ef_fr <- create.EfficientFrontier(R=monthly_returns_with_rf[,-selic_col], portfolio=base_pf, type="mean-StdDev", match.col = 'StdDev')

opt_base <- optimize.portfolio(monthly_returns_with_rf[,- selic_col], portfolio = base_pf, optimize_method = 'ROI')
print(opt_base)

我收到的第一个错误消息是:

Error in maxret_opt(R = R, constraints = constraints, moments = moments, : paste0("package:", plugin) %in% search() || requireNamespace(plugin,  .... is not TRUE
Traceback:

1. create.EfficientFrontier(R = monthly_returns_with_rf[, -selic_col], 
 .     portfolio = base_pf, type = "mean-StdDev", match.col = "StdDev")
2. meanvar.efficient.frontier(portfolio = portfolio, R = R, n.portfolios = n.portfolios, 
 .     risk_aversion = risk_aversion, ... = ...)
3. optimize.portfolio(R = R, portfolio = portfolio, optimize_method = "ROI", 
 .     ... = ...)
4. maxret_opt(R = R, constraints = constraints, moments = moments, 
 .     target = target, solver = solver, control = control)
5. stopifnot(paste0("package:", plugin) %in% search() || 
requireNamespace(plugin, 
 .     quietly = TRUE))

任何帮助将不胜感激!谢谢!

我正在尝试解决投资组合优化问题,除我试图创建有效的边界外,所有事情都运行顺利。我试图弄乱所有的函数参数,我已经...

r optimization plugins portfolio r-portfolioanalytics
1个回答
0
投票

我们可以追溯该错误以查找引起该错误的原因。从错误消息中,导致此错误的函数是maxret_opt()函数。正如您从步骤中看到的那样,这是optimize.portfolio()调用的函数,同样optimize.portfolio()meanvar.efficient.frontier()调用,本身由create.EfficientFrontier()调用,该脚本来自脚本。

© www.soinside.com 2019 - 2024. All rights reserved.