guadabarriviera
¿Por qué "Python" es una palabra de moda en el mercado?
Actualizado: 13 feb 2020

Hay una palabra que parece estar de moda en el mercado local: “Python”. El término hace referencia al lenguaje de programación más utilizado por los robots o “bots” de trading algorítmico.
En estas últimas semanas, los creadores de ArQuants, una plataforma de trading automatizado, publicaron un aviso de búsqueda de desarrolladores Python para ayudarlos a “transformar los mercados de capitales”. En Prack Asset Management organizaron el primer taller gratuito de Python para mujeres. Y los posgrados de finanzas ya incorporan nociones básicas de programación en sus planes de estudio y especializaciones. Así, aproximan a sus alumnos al “coding” en finanzas a través de Python, un lenguaje que, por su sencillez, es cada vez más popular.
En efecto, según el sitio web Stack Overflow –lugar de referencia para los programadores a nivel mundial-, desde el año 2012 es el único lenguaje de programación que crece de forma sostenida. Comparado con otros lenguajes, como Java, Javascript, C o PHP, el crecimiento de Python ha sido realmente exponencial en los últimos años:

Aprender a programar
“Programar es como hablar un idioma, es como una forma de pensar”, apunta Matías Rivera, ingeniero en informática por la UCA (Universidad Católica Argentina) y desarrollador de bots como hobbie, después que un MBA (Maestría en Administración de Empresas) lo acercara al mundo de las finanzas. “Se trata de lograr abstraer la secuencia de pasos que lleva hacer una tarea (algoritmo), y codearla. Una vez finalizada, esa secuencia termina siendo una obra de arte”, se entusiasma.
"La programación tiene mucho de su creador -desglosa Rivera-: dos algoritmos que produzcan el mismo resultado serán siempre escritos de forma distinta por dos programadores diferentes. En ese sentido, a veces se llama a los programadores "software craftsmen": algo así como artesanos de software. Incluso, un mismo programador va a generar un código distinto según el momento de su carrera".
Ahora bien, el atractivo de Python es su sencillez frente a otros lenguajes de programación. “En criollo, Python es el lenguaje popular o masivo, el que se enseña para que más gente se ponga a codear bots”, apunta Juan Pablo Pisano, ingeniero industrial por la UTN (Universidad Tecnológica Nacional) y programador autodidacta especializado en bots de trading.
“Cuando se creó Python, el principal objetivo fue hacer un lenguaje sencillo y muy fácil de entender a la lectura humana. De hecho, quien esté frente a un código en ese lenguaje verá que se entiende solo: no agrega caracteres innecesarios y poco amigables a la lectura humana, como llaves y punto y coma, por ejemplo”, agrega.
La realidad es que en el mercado de Estados Unidos, cada vez tienen más peso los bots de trading de alta frecuencia (o HFT, por high frequency trading) y usan el lenguaje de programación “C”, que es mucho más complejo. Estos bots se basan en programas algorítmicos que escupen miles de órdenes de compra y venta en microsegundos.
“Para el trading de alta frecuencia, Python no va ni ahí –argumenta en un lenguaje bien sencillo Pisano-, sobre todo porque es lentísimo a ese nivel de microsegundos, que son millonésimas de segundos”. Sin embargo, para el tamaño de mercado y el estado de desarrollo de Argentina, “basta y sobra con Python”, asegura Matías Rivera.
Para HFT se usa C, que es un lenguaje de "bajo o medio nivel". Esto quiere decir que es un lenguaje casi sin intermediarios entre el código y el hardware. En cambio, Python es un lenguaje de "alto nivel" y, por ende, es más lento. Sin embargo, la ventaja de los lenguajes de "alto nivel" es que su código es limpio: lo que se ve es algo legible y muy sencillo de codear.
“Java es muy potente pero muy complejo para programar a nivel sintaxis”, ejemplifica Matías Rivera, haciendo comparaciones entre distintos lenguajes. Y cuenta que de Python existen miles de librerías financieras que los usuarios pueden utilizar sin necesidad de programar. “Para un programador avanzado no es necesario saber "todo". Casi que programar se transforma en saber buscar en Google”, ironiza.
Aprender un nuevo idioma
“Yo me puse a aprender Python porque la mayoría de los mercados con los que interactúo lo usan y porque es uno de los lenguajes más adoptados en el mundo”, explica Francisco Prack, economista de la UBA, con un Máster en Economía de la Universidad del CEMA y especializado en finanzas cuantitativas.
El análisis cuantitativo se construye sobre la utilización de matemáticas financieras, con frecuencia derivadas de la física y de la estadística, para llevar a cabo análisis financiero. En la industria de la inversión, los que hacen análisis cuantitativo se llaman “quants”.
“Si bien mi carrera profesional siempre estuvo ligada a modelos y programación, tuve que pagar el costo de aprender Python porque es un lenguaje muy relevante”, añade Prack, dueño de Prack Asset Management, un hedge fund (fondo de cobertura) quant que produce retornos superiores a través del trading algorítmico.
“La relevancia de Python señala que es indiscutible seguir su camino”, indica. “No es muy difícil de aprender: siempre depende de a dónde quiera uno llegar”, completa. Prack también menciona la “potencia analítica” de las librerías “super diversas” que existen sobre este lenguaje de programación en la web.
Hoy, el principal uso de Python es en data science, inteligencia artificial, big data, machine learning y deep learning. “Todas cosas que dependan de amasar mucha cantidad de datos de input para generar un output", explica otra vez bien en criollo Juan Pablo Pisano.
“La mayor aplicación es emular comportamientos humanos que parecen sencillos, pero en el fondo son terriblemente complejos y procesan millonadas de datos”, agrega. Pero, “claramente, otro uso es tomar decisiones de inversión, que básicamente usan las mismas herramientas (data science, inteligencia artificial, machine learning) pero en otro contexto: tomando toda la información posible en tiempo real y decidiendo en milisegundos cual es la mejor decisión en cada momento”, concluye.