He utilizado el paquete R PortfolioAnalytics para la optimización de la cartera. En la parte de optimización de la cartera. Utilicé la función optimize.portfolio para configurar mi optimización. Sin embargo, aquí fue el error sólo mostró que
Error en optimizar.cartera(R = ponderaciones_iniciales, cartera = p, método_de_optimización = "aleatorio", : argumentos no utilizados (R = pesos_iniciales, cartera = p, método_de_optimización = "aleatorio", rp = rp, trace = TRUE)
He comprobado mi código y me he asegurado de que todo estaba bien además de este paso. Así que me pregunto si esta función no funciona. ¿Alguien sabe cómo arreglar esta situación o recomendar otro paquete para usar?
Muchas gracias.
Here is my code:
library(PortfolioAnalytics)
library(quantmod)
library(PerformanceAnalytics)
library(zoo)
library(plotly)
# Get data of the stock
getSymbols(c("SWX","SPY","ICUI","MSFT"), src = 'yahoo', from = '2016-01-01')
Adjusted_price <- merge.zoo(SWX[,6], SPY[,6], ICUI[,6], MSFT[,6])
#Get Returns of portfolio
returns.portfolio <- CalculateReturns(Adjusted_price)
returns.portfolio <- na.omit(returns.portfolio)
#Set names of each stocks
colnames(returns.portfolio) <- c("Southwest Gas Holdings","S&P 500","ICU Medical","Microsoft")
# Meanreturns
meanReturns <- colMeans(returns.portfolio)
covMat <- cov(returns.portfolio)
#Initial weights
portfolio.spec(assets = c("SWX","SPY","ICUI","MSFT") )
initial_weights <- c("SWX" = 0.25,"SPX" = 0.25,"ICUI"=0.25,"MSFT"=0.25)
port <- intial_weights
portfolio.spec(assets = initial_weights)
#Initialize Portfolio specification
p <- portfolio.spec(assets = initial_weights)
#Add constraint
p <- add.constraint(portfolio = p, type = "weight_sum", min_sum = 1, max_sum = 1)
#Add objective
p <- add.objective(portfolio = p, type = "risk", name = "StdDev")
p <- add.objective(portfolio = p, type = "return", name = "mean")
#optimization
opt_single <- optimize.portfolio(R = initial_weights, portfolio = p, optimize_method = "random", rp = rp, trace = TRUE)
Error in optimize.portfolio(R = initial_weights, portfolio = p, optimize_method = "random", :
unused arguments (R = initial_weights, portfolio = p, optimize_method = "random", rp = rp, trace = TRUE)