Портфельная аналитика с предопределенной доходностью и ков-матрицей - PullRequest
0 голосов
/ 22 марта 2020

Я использую PortfolioAnalytics в r и пытаюсь использовать предопределенную ковариацию и возвращает матрицу.

Например, примерная прибыль от моих активов равна

returns <- matrix(c(0.316, 0.322, 0.288), ncol = 3)

. Возможная ковариационная матрица оценивается следующим образом:

cov_matrix <- matrix(c(0.240, 0, 0,
                   0, 0.217, 0,
                   0, 0, 0.202), ncol = 3, nrow = 3)

Я пробовал следующие несколько примеров, таких как Создание эффективной границы в PortfolioAnalytics без объекта xts и Пользовательские ожидаемые возвраты в пакете Portfolio Analytics , но в обоих случаях кажется, что временные ряды возвращений все еще предоставляется, и моменты все еще оцениваются, в то время как ожидаемая доходность моего портфеля и матрица ковариации уже даны.

Следуя примерам, я попытался привести свои данные к xts (при условии, что это то, что мне нужно сделать) следующим образом:

date <- "2020/03/20"
date <- as.Date(date, "%Y/%m/%d")
date
rownames(returns) <- date

returns <- xts(returns, order.by = date)

pf <- portfolio.spec(assets = colnames(returns))
pf <- add.constraint(portfolio = pf, type = "full_investment")
pf <- add.constraint(portfolio = pf, type = "long_only")
pf <- add.objective(portfolio = pf, type = "return", name = "mean")
pf
num_assets <- ncol(returns)
momentargs <- list()
momentargs$mu <- returns
momentargs$sigma <- cov_matrix
momentargs$m3 <- matrix(0, nrow = num_assets, ncol = num_assets ^ 2)
momentargs$m4 <- matrix(0, nrow = num_assets, ncol = num_assets ^ 3)

o <- optimize.portfolio(R = returns, portfolio = pf, momentargs = momentargs)

Я продолжаю получать

 Leverage constraint min_sum and max_sum are restrictive, 
              consider relaxing. e.g. 'full_investment' constraint should be min_sum=0.99 and max_sum=1.01
Error in `colnames<-`(`*tmp*`, value = colnames(seed)) : 
  attempt to set 'colnames' on an object with less than two dimensions

Я думаю, что я уверен, что что-то упустил.

...