PortfolioAnalytics Ошибка с функцией gmv_opt
У меня есть ниже скрипт, который создает ошибку. Кто-нибудь знает, как это решить. Я использую последнюю версию R & RStudio, и все пакеты обновлены.
library('quantmod')
library('PortfolioAnalytics')
library('PerformanceAnalytics')
ETF_Names <- c("IVV","IJH","IWM","EZU","EEM","SCZ","ILF","EPP")
ETF_All <- lapply(ETF_Names, function(x) getSymbols(x,from="2006-01-01",auto.assign = FALSE))
names(ETF_All) <- ETF_Names
ETF_MR <- do.call(merge,lapply(ETF_All,monthlyReturn))
colnames(ETF_MR) <- ETF_Names
ETF_spec <- portfolio.spec(assets = colnames(ETF_MR))
ETF_spec <- add.constraint(portfolio=ETF_spec, type="full_investment")
ETF_spec <- add.constraint(portfolio=ETF_spec, type="box", min=0, max=1)
ETF.ef <- create.EfficientFrontier(R=ETF_MR['2015'], portfolio=ETF_spec, type="mean-StdDev")
Ниже сообщения об ошибке:
Error in gmv_opt(R = R, constraints = constraints, moments = moments, :
No solution found: Error in UseMethod("as.constraint") :
no applicable method for 'as.constraint' applied to an object of class "c('matrix', 'list')"
Раньше проблем не было (я недавно обновил RStudio и соответствующие пакеты). И вот, когда ошибка появилась.
Надеюсь, кто-то может помочь
2 ответа
Я получил ту же ошибку.
Попробуйте добавить:
library(ROI)
require(ROI.plugin.glpk)
require(ROI.plugin.quadprog)
Работали на меня.
Я получил ту же ошибку.
Вы можете попробовать квадратичную оптимизацию (solve.QP
). Смотрите этот ответ
/questions/44564280/diagramma-analitiki-portfelya-refficientfrontier-function/44564319#44564319