3 votos

Cartera De Analytics Optimización

Tengo un gran conjunto de datos, de 10.000 inversiones estoy tratando de crear una optimización del portafolio. La cartera tiene 3 restricciones. Durante mucho tiempo Sólo, Sólo 50 de los activos pueden ser seleccionados y cada invertido activo tiene el mismo peso. Me gustaría encontrar el máximo de sharpe de la cartera y de la minSD de la cartera para un determinado retorno.

> funds = colnames(dfxts)
> returns = dfxts
> df.con = portfolio.spec(assets = funds)
> df.con = add.constraint(portfolio = df.con, type = "long_only")
> df.con = add.constraint(portfolio = df.con, type = "box", min = (1/n - .01/n), max = (1/n + .01/n))
> 
> df.con = add.constraint(portfolio = df.con, type = "position_limit", max_pos = n)
> 
> df.con = add.constraint(portfolio = df.con, type = "return", return_targe = r)
> 
> df.con = add.constraint(portfolio = df.con, type = "weight_sum_constraint", min_sum = .99, max_sum = 1.01)
> minSDdf <- add.objective(portfolio=df.con, 
+                                  type="risk", 
+                                  name="StdDev")

opt = optimize.portfolio(R = returns, portfolio = df.con, optimize_method = "DEoptim", trace = TRUE)

Esto está tomando más de 10 horas a optimizar. ¿Cómo puedo cambiar las restricciones o optimizador para hacer esto más rápido? Me gustaría ser menos de 10 minutos si es posible. Gracias,

No estoy seguro si esto está funcionando correctamente. He editado la función objetivo en la viñeta,

   > OF2 <- function(x, Data) {
    +  w <- 1/sum(x)
    +  -(sum(r*w))/(sum(w * w * Data$Sigma[x, x]))
    +  }

El objetivo de la función debe devolver un valor negativo, pero me sigue dando un valor positivo? ¿Por qué es esto happending

2voto

BigCanOfTuna Puntos 210

Un problema muy similar al tuyo se describe -- incluyendo el código R-en una viñeta de la NMOF paquete: http://cran.r-project.org/web/packages/NMOF/vignettes/LSselect.pdf Para el ratio de Sharpe, usted simplemente necesita para escribir una nueva función objetivo.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X