#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
)