Я пытаюсь решить задачи оптимизации портфеля, все идет гладко, кроме случаев, когда я пытаюсь создать эффективную границу.
Я пытался возиться со всеми параметрами функции, я установил все пакеты и плагины, рекомендованные в документации.Но даже когда я пытаюсь запустить код в эффективной демоверсии в репозитории 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))
Любая помощь будет принята с благодарностью!Спасибо!