¿Alguien conoce una biblioteca/fuente en python que sea capaz de calcular la cartera tradicional de media-varianza? Para tentar mi suerte, cualquier recurso en el que la biblioteca/fuente también contenga funciones como funciones de covarianza alternativas (etc. contracción), optimización de la cartera de momento parcial inferior, etc...
He desarrollado, como todo el mundo, y aplicado una o dos variantes. ¿Soy yo o no hay mucho por ahí en términos de python para aplicaciones financieras/de cartera. Al menos no hay nada por ahí que iguale esfuerzos como Rmetrics para R.
0 votos
Hay
rpy
yrpy2
para que puedas aprovechar las soluciones de R también en Python...0 votos
He utilizado rpy y rpy2, me gusta mucho. Hay mucha gente que utiliza y está contenta con este flujo en su trabajo: python -> r -> ejecución del modelo -> python.
1 votos
Supongo que usar R y el servidor rstudio es bastante difícil de superar.
3 votos
¿por qué se necesita una biblioteca para esto? Simplemente calcúlalo, yo lo hice una vez y sólo fueron unas pocas líneas de python. Sólo un bucle sobre todas las posibilidades con 0,1% de densidad y no tomó mucho tiempo para calcular. Cuando tienes muchos activos, usa distribuciones listas (en lugar de muchos bucles for internos) para matar el $x^{n}$ -Cálculo de la complejidad temporal -Problema. Es fácil. Hazme saber cómo lo has conseguido. Creo que estás haciendo este problema de una manera demasiado difícil, empezar fácilmente.
0 votos
Nada en Python coincide con Rmetrics, etc. Dicho esto, podría haber un montón de razones para hacer esto en Python, y algunos de los otros comentarios/respuestas ya abordan esto. La respuesta a "biblioteca de python para la optimización de carteras" no es R.
0 votos
@hhh ¿Podría explicar con más detalle cómo utilizar las distribuciones listas para reducir la complejidad del tiempo? Muchas gracias.
0 votos
@Roy lee esto aquí y esto aquí -- casos sencillos, entonces usa alguna distribución lista para matar esta parte
"mySet= [x/density for x in range(int(density))] points="" for (x,y,z) in [(x,y,z) for x,y,z in itertools.product(mySet, repeat=3) if abs(x+y+z-1)<delta]:"
(delta arregla el error de punto flotante), la distribución normal -aproximación para las combinaciones dio resultados bastante buenos, ¿ya está claro?