Оптимизация портфеля с использованием ROI - PullRequest
0 голосов
/ 26 сентября 2019

Я хотел бы использовать средство расчета ROI для оптимизации портфеля акций.Однако, когда я пытаюсь оптимизировать портфель, я получаю сообщение об ошибке, в котором говорится, что количество активов в начальных весах меньше доходности.Я оставил код и ошибку.

library(quantmod)
library(PortfolioAnalytics)
library(PerformanceAnalytics)
library(ROI)

#vector of stocks in my portfolio  of 
tickers <- c("GS", "AAPL", "AMZN", "GM", "CBRL", "NVDA", "AMAT", "NKE","CSCO","SBUX","TLT")
#bind porfolio prices 
portfolioPrices <- NULL
for(ticker in tickers) {
  portfolioPrices <- cbind(portfolioPrices,
                           getSymbols.yahoo(ticker,  periodicity = 'daily', auto.assign=FALSE)[,4])
}


#portfolio returns
portfolioReturns <- na.omit(ROC(portfolioPrices))
print(portfolioReturns)
portf <- portfolio.spec(colnames(portfolioReturns.2))
portf <- add.constraint(portf, type="weight_sum", min_sum=.99, max_sum=1.01)
portf <- add.constraint(portf, type="box", min=.02, max=.60) 
portf<-add.constraint(portf,type="transation_cost", ptc=.001)
portf <- add.objective(portfolio = portf, type="return", name="mean")
portf <- add.objective(portfolio = portf, type="risk", name="StdDev")
portf<-add.objective(portfolio = p, type="risk", name="ES", 
                     arguments=list(p=0.925, clean="boudt"))


#optimize portfolio using the "DEoptim solver"
optPort <- optimize.portfolio(portfolioReturns, portf, optimize_method = "ROI", trace=TRUE)
extractWeights(optPort)

Это ошибка, которую я получаю:

Предупреждающее сообщение: В Return.portfolio (portfolioReturns, weights = extractWeights (opt_rebal)): количество активов в begin_weights равноменьше, чем количество столбцов в возвращаемых значениях, поэтому поднаборы возвращаются.

...