Las finanzas, como término, pueden definirse simplemente como la disciplina que se encarga de la gestión de los recursos monetarios, pero, en el sentido práctico, va más allá del dinero, pues para el profesionista financiero sería imposible implementar un plan de ahorro, seleccionar una inversión o un financiamiento sin un ingrediente clave, datos.
Antes de ahondar en ello, con base en mi expertise como impartidor de cursos y talleres de tópicos financieros para diferentes instituciones académicas, he de puntualizar que la mayoría de los planes de estudio universitarios de finanzas vigentes carecen de una cátedra o módulo enfocado exclusivamente en programación, aptitud de gran valía para el financiero moderno.
Dicho lo cual y a fin de orientar a los estudiantes de este campo, mostraré algunos usos demostrativos básicos de Python.
¿Qué es Python? Es uno de los lenguajes de programación de código abierto más populares del mundo, destacando ampliamente en ciencia de datos, machine learning, automatización y desarrollo web. Su utilización en la industria financiera es muy vasta (Tabla 1):
I. Desde realización de backtesting con módulos propios (como Zipline y PyAlgoTrade) hasta la implementación de procesos comerciales (compra y venta) automatizados.
II. Creación y producción de modelos predictivos para detectar y mitigar diferentes tipos de riesgos financieros (con Scikit-Learn o TensorFlow).
III. Por naturaleza la valuación de derivados financieros es compleja, pero dada la característica de simplicidad del lenguaje es posible aplicar un modelo Black & Scholes o una simulación Monte Carlo de forma directa (con QuantLib y finmarketpy).
IV. Determinar las propiedades estadísticas de grandes conjuntos de paneles de datos bursátiles para una oportuna toma de decisión (usando Pandas y Numpy).
V. Realizar estimaciones de variables financieras o agregados combinando Inteligencia Artificial (AI, por sus siglas en inglés) y machine learning (con TensorFlow y PyTorch).
VI. La automatización de tareas de cumplimiento o bien, el monitoreo de las transacciones con el objeto de detectar actividad anómala o sospechosa, evitando así el perjuicio de la entidad bancaria y el cliente.
Como puede verse, más allá de «crear el hilo negro», permite pensar out the box, haciendo más eficientes los procesos de recolección, tratamiento y aplicación de la data.
Buscando que usted pueda sacarles el máximo provecho a los ejemplos, es idóneo que con su cuenta de Gmail ingrese a Google Colab para que, accediendo a un Notebook, pueda hacer uso de los códigos que se revisarán (Figura 1).
Antes de comenzar a trabajar en Python, es importante que se llame a los módulos que se utilizarán para manipular los datos, en este caso puntual serán 4: pandas, numpy, el submódulo pyplot de matplotlib e yfinance (Figura 2).
Los operadores son uno de los elementos más importantes de Python, siendo una de sus variantes los de tipo aritmético. En este caso, una vez definidos los identificadores (capital, tasa_interes y años), se están utilizando 3 para determinar el monto aplicando la fórmula de interés compuesto: la multiplicación de la potencia (años) de la suma de 1 y la tasa de interés (anualizada) con el capital. Desarrollada la fórmula, obtenemos una impresión que nos da el resultado con dos decimales (dato flotante), $16,288.95 (Figura 3).
Como se mencionó, en el primer bloque de código se realizó la importación de las bibliotecas que se utilizarían, entre ellas, yfinance. A través de ésta es posible acceder a información bursátil y financiera de empresas públicas (siempre que se encuentre disponible en las bases de Yahoo Finance) para su posterior descarga y/o conversión a algún formato particular en Python.
En este caso lo que se está haciendo es descargar la serie financiera del último año de AAPL en formato Excel, contemplando 6 columnas: Date, Close, High, Low, Open y Volume (Figura 4).
Para acceder al archivo generado, se clica el icono de carpeta que está en el extremo izquierdo, y una vez ahí se selecciona para su posterior descarga (Figura 5).
Otro de los módulos importados al inicio fue matplotlib, aunque muy puntualmente su submódulo pyplot. Éste es muy útil para la creación de gráficas y visualizaciones.
Ahora, teniendo la serie AAPL, se está generando una gráfica de líneas del precio de cierre con un ajuste estándar, estableciendo en el eje x la fecha y en el eje y el valor de la columna CLOSE (Figura 6).
Utilizando el método .describe() de la biblioteca Pandas es posible sacar las propiedades estadísticas más importantes, tales como la media, la desviación estándar o cuartiles (Figura 7).
Finalmente, se obtendrá una matriz de correlación que nos permita evaluar qué tanta linealidad ha mostrado AAPL con respecto al referencial bursátil americano, el S&P 500, durante el último quinquenio.
Para lograrlo, comenzamos definiendo una colección de datos, puntualmente, una lista bajo el nombre «tickers» que contiene los tickers de los valores AAPL y GSPC (SPX en Yahoo Finance). Posteriormente, con la biblioteca yfinance se ajustan los parámetros para considerar únicamente el rango de los 5 años, solicitando que nos devuelva la columna Close en el dataframe «data». Con la información generada, utilizando el método pct_change() de pandas se calculan los retornos diarios en ambas series, eliminando con .dropna() los espacios en blanco. Por último, con el método .corr() se generaría la matriz (Figura 8).
¿Usted, cómo está empleando Python en su labor financiera?