16 votos

¿Qué hace que Python sea más adecuado para finanzas cuantitativas que Matlab / Octave, Julia, R y otros?

Algunos antecedentes, yo no soy un desarrollador en absoluto y hasta ahora todos mis scripts están en Octave (versión de código abierto de Matlab). Sin embargo, parece que Python es el camino a seguir.

Dado que no soy un desarrollador y no me gusta el cambio por el cambio si el resultado final es el mismo, me gustaría sinceramente saber por qué ahora parece que todo está escrito en Python? ¿Qué hace que Python sea "mejor" que Octave, Julia, etc.?

¿Es la escalabilidad, la disponibilidad de más paquetes, o es (idea impopular) una "profecía autocumplida" que por lo tanto ha adquirido un impulso propio? ¿Otras razones?

21voto

xrost Puntos 129

Perspectiva corporativa:

Aunque no soy experto en las diferencias técnicas entre Python, Julia, R y Matlab, puedo brindar algunas "observaciones" corporativas.

En mi empresa, casi todos los desarrolladores de back-end poseen conocimientos de Python y pueden entender fácilmente su sintaxis, mientras que pocos están familiarizados con Matlab o Julia (aunque algunos tienen experiencia con R). Esto hace que sea mucho más eficiente para todo el negocio cuando los algoritmos de front-office se escriben en Python, ya que los desarrolladores de back-end pueden traducirlos sin problemas a un código optimizado de C++ o C# para el pipeline de producción.

Nuestros desarrolladores de back-end trabajan en iteraciones como parte de la metodología SCRUM, asignando a cada tarea un número específico de días basado en su complejidad. Si un algoritmo está escrito en Julia o R, se requiere tiempo y esfuerzo adicionales para que los desarrolladores de back-end comprendan el código, lo que puede provocar retrasos y frustración. Esto también podría resultar en más reuniones con el trader de front-office que desarrolló el algoritmo, lo que finalmente le costaría dinero a la empresa debido a la ineficiencia.

Respecto a la discusión sobre el uso de Julia (o Matlab) en lugar de Python por temas de rendimiento: para cualquier algoritmo donde el rendimiento es importante, contamos con un equipo de desarrolladores experimentados en C++. Dado que C++ es conocido por su velocidad y ha sido una opción popular para aplicaciones de alto rendimiento durante mucho tiempo, también resulta en un mercado laboral más grande de desarrolladores calificados en C++.


Para resumir:

  1. Popularidad y Sintaxis Simple: La popularidad y la sintaxis simple de Python hacen que sea accesible para casi todos los programadores dentro del negocio. Además, facilita una integración más fluida en un sistema basado en producción. Además, debido a la sintaxis simple, también es excelente como lenguaje de script.

  2. Mayor Mercado Laboral de Desarrolladores Calificados: Existe un grupo significativamente más grande de desarrolladores con un sólido entendimiento de Python en comparación con Julia, R o Matlab. Esto hace que la contratación y sustitución sea más fácil y eficiente.

  3. Reducción de Costos Corporativos: Los factores anteriores contribuyen a reducir los costos corporativos. La popularidad y simplicidad de Python mejoran la eficiencia, mientras que el mayor mercado laboral asegura que encontrar o reemplazar desarrolladores sea más sencillo y rentable. Lo mismo puede decirse de los desarrolladores de C++ frente a cualquier otro lenguaje de alto rendimiento.

En resumen, a menos que surja un nuevo lenguaje de programación que iguale la popularidad de Python y ofrezca beneficios adicionales, es probable que Python siga siendo la elección preferida a largo plazo.

9voto

John Sansom Puntos 20087

De Trading cuantitativo: cómo construir tu propio negocio de trading algorítmico, Ernst Chan, pp 34-39:

MATLAB solía ser una de las plataformas de backtesting más comunes utilizadas por analistas cuantitativos y traders en grandes instituciones. Ha sido reemplazado por Python (como describiré a continuación), pero aún lo considero el lenguaje más productivo para quantos (en lugar de desarrolladores de software profesionales). Es más fácil de usar que Python, más rápido, y cuenta con soporte personalizado por parte del proveedor. Es ideal para probar estrategias que implican una amplia cartera de acciones. Tiene numerosos módulos estadísticos y matemáticos avanzados integrados, por lo que los traders no tienen que reinventar la rueda si sus algoritmos comerciales involucran algunos conceptos matemáticos sofisticados pero comunes. También hay una gran cantidad de programas de software gratuitos de terceros disponibles para su descarga en internet, muchos de ellos muy útiles para fines de trading cuantitativo. Por último, MATLAB es muy útil para obtener información financiera de diversos sitios web.

PYTHON Python ha tomado el relevo de MATLAB para convertirse en el lenguaje de backtesting por defecto, especialmente después de que estuvieran disponibles los paquetes numpy y pandas. Con estos paquetes, puedes manipular matrices y datos de series temporales como lo haces en MATLAB. Python se beneficia de una gran cantidad de paquetes de terceros para aplicaciones específicas. Existe Scikit-learn para aprendizaje automático, plotly para visualización de datos interactiva, y seaborn para trazado, por nombrar solo algunos de los más comúnmente utilizados. Si bien Python tiene casi todos los paquetes que necesitas para finanzas y trading, no está exento de fallas.

R He utilizado R como lenguaje para enseñar mi curso de Análisis de Riesgo Financiero en el programa de Maestría en Ciencia de Datos de la Universidad Northwestern, que abarcó desde el análisis de series temporales hasta las cópulas. Es un gran lenguaje si deseas utilizar análisis estadísticos y econométricos clásicos para tu trading (¡y no hay nada de malo en eso!). Esto se debe a que muchos estadísticos académicos y econométricos han implementado sus algoritmos en R. No hay tantas implementaciones de algoritmos de aprendizaje automático como Python o MATLAB. Sin embargo, te recomiendo que no uses aprendizaje automático si estás creando una nueva estrategia de trading, y utilices ML solo para mejorar tu estrategia (por razones explicadas en el Capítulo 2 y con más detalle en predictnow.ai/finml). Por lo tanto, R es un buen lenguaje para este paso inicial de exploración de estrategias, aunque no tan bueno como MATLAB ya que su IDE (RStudio) también es gratuita, y, me atrevo a decir, primitiva. Naturalmente, al igual que Python, tampoco cuenta con soporte.

5voto

Karoly Horvath Puntos 224

La gente escribe software en Python porque ya hay muchas bibliotecas que les ayudarán. Más tarde pueden convertir su software en una biblioteca, por lo que ahora hay al menos una biblioteca más por ahí. En mi opinión, Python es un lenguaje aceptable que ha acumulado masa crítica.

Si estás haciendo finanzas cuantitativas, espero que quieras hacer aprendizaje automático. Hay varias grandes bibliotecas de Python, incluidas PyTorch y TensorFlow, que puedes usar desde Python, y que te permiten acelerar el procesamiento ejecutando código en la GPU, sin necesidad de aprender a escribir código de GPU tú mismo. Incluso si no estoy usando PyTorch, estaría perdido sin numpy y Matplotlib.

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