使用CVXR优化PortfolioAnalytics的EQS目标时意外失败
PortfolioAnalytics 优化CVXR方法报错问题
我使用PortfolioAnalytics::optimize.portfolio()并指定optimize_method = "CVXR"已有六个月,此前运行正常,但最近同一命令突然报错,错误信息如下:
Error in PortfolioAnalytics::optimize.portfolio(plnt_returns, plnt_EQSratio, :
CVXR only solves mean, var/sd/StdDev and ETL/ES/CVaR/CSM/EQS type business objectives, choose a different optimize_method.
复现步骤
library(PortfolioAnalytics) library(CVXR) library(xts) set.seed(123) dates <- seq(as.Date("2023-01-01"), by = "days", length.out = 200) plnt_returns <- xts(matrix(rnorm(200 * 5), ncol = 5), order.by = dates) colnames(plnt_returns) <- paste0("Asset", 1:5) assets <- names(plnt_returns) plnt_EQSratio <- portfolio.spec(assets = assets) plnt_EQSratio <- add.constraint(plnt_EQSratio, type = "full_investment") plnt_EQSratio <- add.constraint(plnt_EQSratio, type = "long_only") plnt_EQSratio <- add.constraint( plnt_EQSratio, type = "box", min = rep(0, length(assets)), max = rep(0.5, 5) ) plnt_EQSratio <- add.objective(plnt_EQSratio, type = "return", name = "mean") plnt_EQSratio <- add.objective(plnt_EQSratio, type = "risk", name = "EQS", arguments = list(p = 0.05)) opt_EQSratio <- PortfolioAnalytics::optimize.portfolio(plnt_returns, plnt_EQSratio, optimize_method = "CVXR", ESratio = TRUE)
环境版本
- R版本:4.4.3 (2025-02-28)
- 平台:x86_64-pc-linux-gnu
- 运行系统:Ubuntu 22.04.5 LTS
已加载的包:
- tidyverse_2.0.0
- CVXR_1.0-15
- PortfolioAnalytics_2.1.0
- xts_0.14.0
内容的提问来源于stack exchange,提问作者Shahab Einabadi
相关产品推荐
相关产品推荐

