Как установить фиксированную доходность для оптимизации портфеля среднего CVaR?

#r #optimization #portfolio

Вопрос:

Я использую временные ряды и пакет fportfolio в R, чтобы минимизировать CVaR с различными ограничениями для данного портфеля. Пока все идет хорошо. Однако мне не удается установить фиксированную среднюю доходность. Когда я использую setTargetReturn(cvar_spec) <- 0.04 , как в приведенном ниже коде, дальнейший код игнорирует его и вычисляет CVAR для меньшего среднего возврата. Последняя функция portfolioFrontier() также не возвращает требуемую пару значений. Кто — нибудь знает, как это исправить?

 library(timeSeries)
library(timeDate)
library(fPortfolio)

lppAssets3 <- 100 * LPP2005.RET[, 1:6]
colMeans(lppAssets3)

cvar_spec <- portfolioSpec()
setTargetReturn(cvar_spec) <- 0.04
setType(cvar_spec) <- "CVaR"
setSolver(cvar_spec) <- "solveRglpk.CVAR"
getOptimize(cvar_spec)
getSolver(cvar_spec)

box.1 <- "minW[1:6] = 0.0"
box.2 <- "maxW[1:6] = 0.5"

group.1 <- "minsumW[1:6] = 1.0"
group.2 <- "maxsumW[1:6] = 1.0"

constraints_cvar1 <- c(box.1, box.2, group.1, group.2)


minCVAR_Portfolio2 <- minriskPortfolio(lppAssets3,
                                       cvar_spec,
                                       constraints = constraints_cvar1
)
getWeights(minCVAR_Portfolio2)

CVAR_Portfolio2_frontier <- portfolioFrontier(lppAssets3,
                  cvar_spec,
                  constraints = constraints_cvar1
)