28 votos

¿Cuál es la biblioteca python de referencia para la optimización de carteras?

¿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 y rpy2 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.

18voto

Jeremy Privett Puntos 2678

Siento no poder dar más de un hipervínculo, por favor, haga una búsqueda en la web de las páginas del proyecto.

La optimización de la cartera podría hacerse en python utilizando el cvxopt paquete que cubre la optimización convexa. Esto incluye la programación cuadrática como un caso especial para la optimización del riesgo-rendimiento. En este sentido, el siguiente ejemplo podría ser de alguna utilidad:

http://abel.ee.ucla.edu/cvxopt/examples/book/portfolio.html

La contracción de Ledoit-Wolf se trata, por ejemplo, en scikit .

0 votos

Aquí hay algunos enlaces a la función LW del paquete scikits.learn: [ejemplo] scikit-learn.sourceforge.net/dev/auto_examples/ [Clase LW] scikit-learn.sourceforge.net/dev/modules/generated/ [Función LW] scikit-learn.sourceforge.net/dev/modules/generated/

0 votos

Estoy de acuerdo. cvxopt es la mejor solución en este momento.

4voto

Brownie Puntos 151

Optimización convexa - CVXOpt y CVXPy. Libro de texto de Boyd & Vandenberghe

Además de CVXOPT (conocido por su programación de conos, véase http://cvxopt.org/ ) con amplia documentación de los autores, Boyd y Vandenberghe http://stanford.edu/~boyd/cvxbook/ , hay CVXPY que proporciona un frente más fácil. CVXPY fue diseñado e implementado por Steven Diamond, con la colaboración de Stephen Boyd y Eric Chu. http://www.cvxpy.org/en/latest/#

Tenga en cuenta que Boyd y Vandenberghe es el libro de texto de referencia (disponible gratuitamente en los enlaces que di anteriormente) por muchos en esta área y muchos en el campo de la optimización convexa consideran que es la mejor referencia actual. Por supuesto, hay muchas innovaciones y otros investigadores se diferencian de B&V, pero esta es una de las mejores referencias en el área según algunos de estos investigadores de vanguardia que conozco.

4voto

Mike Green Puntos 457

He reproducido el experimento de Ledoit y Wolf descrito en su artículo "Honey I Shrunk the Covariance Matrix" en Python, que incluye una implementación de su método para reducir la matriz de covarianza (se puede encontrar aquí ver el get_shrunk_covariance_matrix() en la línea 417).

Todo el código de la cosa está en Github aquí . También utilizo el módulo cvxopt en este proceso. Mis resultados no son exactamente consistentes con los de Ledoit y Wolf es probablemente porque estaba bajo una tremenda presión de tiempo para hacer esto y no utilicé completamente cvxopt. A pesar de esto, utilizo muchas de las funciones y técnicas que estás buscando (creo) además de muchos otros métodos que pueden resultar útiles para la gente de finanzas.

3voto

arfon Puntos 829

Sé que es una pregunta antigua, pero Wes McKinney, el desarrollador de pandas (mencionada en otra respuesta) está lanzando un nuevo paquete de Python llamado RapidQuant que creo que podría satisfacer las necesidades indicadas por el OP. Parece que incluye tanto las definiciones de riesgo no estándar como la optimización de la cartera. Sin embargo, no es de código abierto. Si bien el PO no mencionó específicamente que eso fuera un factor de ruptura, es una distinción importante. Además, Wes ha demostrado cvxopt + pandas en el pasado , por lo que es posible que RQ lo envuelva.

Tenga en cuenta que no tengo ninguna relación con Lambda Foundry (la empresa que fabrica este producto), sólo soy un fan del trabajo de Wes.

...y estoy completamente de acuerdo, 1,5 años después de que se publicara esta pregunta, en que la falta de una biblioteca financiera ampliamente adoptada es un punto delicado para Python. Aunque estoy seguro de que la mayoría de nosotros hemos escrito la nuestra (aunque hablando de una muestra sesgada...), y sí, cualquier paquete de optimización será suficiente, creo que definitivamente hay espacio para mejorar aquí.

0 votos

¿Ha utilizado RapidQuant?

0 votos

Me han hecho una demostración, pero no he obtenido la licencia.

0 votos

He querido hacer una demostración. He querido lanzar mi gran bola de cinta adhesiva, er. entorno de investigación, por un tiempo

2voto

Greg Puntos 7391

Podrías investigar pandas . Se trata de una biblioteca con diversas funciones de manipulación y análisis de datos estadísticos y financieros. El desarrollador dio un presentación en la conferencia de Pygotham en 2011, y un en 2010 específicamente sobre el uso de pandas con las finanzas cuantitativas.

0 votos

Hola banjanxed, he seguido los enlaces que has puesto y ninguno de los dos tiene nada que ver con el análisis de carteras ni con el MVO. Más bien parece que se trata de una biblioteca de propósito general para el manejo de series temporales y similares. A menos que puedas argumentar que estos enlaces tienen algo que ver con la pregunta, serán borrados como SPAM.

1 votos

@Tal Pandas es ampliamente utilizado en Finanzas, incluso para este problema, aunque sólo está tangencialmente relacionado. No consideraría esto SPAM, sólo desinformación.

2 votos

Pandas no contiene MVO. Mira cvxopt, como sugiere @philippe.

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