Los mejores paquetes (librarias) de finanzas de Python

0
261
grafico scypy

La popularidad del lenguaje de programación Python se debe, al menos en parte, a la versatilidad que ofrece. Además del vasto número de casos de uso en el desarrollo web y de aplicaciones, Python proporciona las herramientas para construir e implementar cualquier tipo de modelo científico o financiero, independientemente del origen o tipo de datos. Esta versatilidad se habilita gracias a la extensa biblioteca estándar que ofrece una variedad de facilidades destinadas a mejorar la funcionalidad y portabilidad del lenguaje. Para aplicaciones más específicas, el Índice de Paquetes de Python (PyPI) proporciona paquetes adicionales que amplían las capacidades de Python para satisfacer las necesidades de cada usuario.

Por estas razones, Python ha demostrado ser una herramienta formidable en el desarrollo de tecnologías financieras innovadoras. Desde procesar los números brutos hasta crear Interfaces Gráficas de Usuario (GUIs) estéticamente agradables pero intuitivas, existen numerosos paquetes para ayudar a los usuarios a construir sus propios modelos financieros. En este artículo, hablaremos de las principales librerías de Python para finanzas y modelado financiero con algunos ejemplos básicos. 

Todos estos paquetes pueden encontrarse en PyPI.

Las Librerías de Python Más Útiles para Finanzas 

El campo de las tecnologías financieras es vasto, abarcando desde seguros, préstamos y comercio, hasta banca electrónica y otros servicios de pago. Este artículo se centra en aplicaciones específicas para finanzas cuantitativas, que requieren tareas de programación como la importación y transformación de datos, el análisis de series temporales y riesgos, el comercio y las pruebas retrospectivas, la integración con Excel y la visualización de datos. Presento algunos de los mejores paquetes para llevar a cabo cada tarea.

NumPy

En última instancia, todos los modelos financieros se basan en procesar números. Los primeros paquetes en esta lista proporcionan el marco para hacerlo. El primero es NumPy. NumPy es el paquete más esencial para la computación científica y matemática en Python. No solo introduce arrays y matrices n-dimensionales en Python, sino que también contiene algunas funciones matemáticas básicas para manipular estas estructuras de datos. La mayoría de los paquetes de Python de nivel superior para finanzas mencionados más adelante en esta lista dependen de NumPy.

Ejemplo básico de cómo usar NumPy para crear y manipular arrays:

import numpy as np

# Crear un array unidimensional
array_unidimensional = np.array([1, 2, 3, 4, 5])
print("Array unidimensional:")
print(array_unidimensional)

# Crear un array bidimensional
array_bidimensional = np.array([[1, 2, 3], [4, 5, 6]])
print("\nArray bidimensional:")
print(array_bidimensional)

# Operaciones básicas con arrays
print("\nOperaciones básicas con arrays:")
print("Suma:", array_unidimensional + 10) # Sumar 10 a cada elemento
print("Multiplicación:", array_unidimensional * 2) # Multiplicar por 2 cada elemento

# Funciones matemáticas
print("\nFunciones matemáticas:")
print("Seno:", np.sin(array_unidimensional))
print("Exponencial:", np.exp(array_unidimensional))

# Indexación y rebanado (slicing)
print("\nIndexación y rebanado:")
print("Primer elemento:", array_unidimensional[0])
print("Últimos dos elementos:", array_unidimensional[-2:])
print("Elementos del segundo al cuarto:", array_unidimensional[1:4])

# Operaciones con arrays bidimensionales
print("\nOperaciones con arrays bidimensionales:")
print("Suma por columnas:", np.sum(array_bidimensional, axis=0))
print("Media por filas:", np.mean(array_bidimensional, axis=1))

# Crear un array de números equiespaciados
array_equiespaciado = np.linspace(0, 1, 5) # Crea 5 números equiespaciados entre 0 y 1
print("\nArray equiespaciado:")
print(array_equiespaciado)

Este ejemplo muestra algunas operaciones básicas y funciones disponibles en NumPy.

SciPy

El paquete NumPy proporciona estructuras matemáticas básicas para manipular y almacenar datos. Pero para construir modelos sofisticados basados en estos datos, se necesita un conjunto de herramientas y operaciones estadísticas más avanzadas. Aquí entra en juego SciPy. Este paquete proporciona funciones y algoritmos fundamentales para los cálculos científicos avanzados necesarios para construir cualquier modelo estadístico. Estos incluyen algoritmos para interpolación, optimización, agrupamiento, transformación e integración de datos. Estas operaciones son esenciales al realizar cualquier tipo de análisis de datos o construir cualquier tipo de modelo predictivo.

Para demostrar la interpolación, primero uso NumPy para crear algunos puntos de datos con una función arbitraria y luego comparo diferentes métodos de interpolación:

import numpy as np
import matplotlib.pyplot as plt
from scipy import interpolate

# Crear puntos de datos usando una función arbitraria

x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 1, 4, 3, 6])

# Crear una función para la interpolación

interpolation_methods = ['linear', 'quadratic', 'cubic']
x_new = np.linspace(1, 5, 1000)  # Nuevos puntos de datos para la interpolación suave
plt.figure(figsize=(10, 6))

# Interpolar y trazar los resultados para diferentes métodos

for method in interpolation_methods:
    f = interpolate.interp1d(x, y, kind=method)
    y_new = f(x_new)
    plt.plot(x_new, y_new, label=f'{method} interpolation')

# Trazar los puntos de datos originales

plt.scatter(x, y, color='red', label='Original Data Points')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Interpolación con Diferentes Métodos')
plt.legend()
plt.grid(True)
plt.show()

Este código crea puntos de datos usando la matriz x y y, y luego utiliza diferentes métodos de interpolación (lineal, cuadrática y cúbica) para interpolar los datos y trazar las curvas resultantes. 

Este código generará un gráfico que muestra los puntos de datos originales y las curvas de interpolación suavizadas utilizando diferentes métodos.

grafico scypy

Pandas

NumPy y SciPy establecen las bases matemáticas. Por otro lado, el paquete Pandas establece una estructura de datos intuitiva y fácil de usar, un DataFrame, diseñado específicamente para análisis y construcción de modelos. Está basado en los arrays que introduce NumPy y está optimizado para datos tabulares, multidimensionales y heterogéneos. Las manipulaciones más comunes, como groupby, unir, combinar o llenar, reemplazar y completar valores nulos, se pueden realizar en una sola línea. 

Además, el paquete proporciona funciones para importar datos desde una variedad de formatos estándar y otras para trazar rápidamente, recuperar estadísticas básicas o generar datos de salida.

import pandas as pd

# Crear el primer DataFrame

data1 = {'A': [1, 2, 3],
         'B': [4, 5, 6]}

df1 = pd.DataFrame(data1)

# Crear el segundo DataFrame

data2 = {'A': [7, 8, 9],
         'B': [10, 11, 12]}

df2 = pd.DataFrame(data2)

# Concatenar los dos DataFrames

result = pd.concat([df1, df2])

# Mostrar el DataFrame concatenado

print("DataFrame Concatenado:")
print(result)

# Función para extraer filas basadas en un valor en la columna 'A'

def extract_rows_by_value(df, column_name, value):
    extracted_rows = df[df[column_name] == value]
    return extracted_rows

# Ejemplo de uso de la función para extraer filas con el valor 2 en la columna 'A'

value_to_extract = 2
extracted_rows = extract_rows_by_value(result, 'A', value_to_extract)

# Mostrar las filas extraídas

print(f"\nFilas con el valor {value_to_extract} en la columna 'A':")
print(extracted_rows)

Este código primero crea dos DataFrames (df1 y df2), los concatena en el DataFrame result, luego muestra el DataFrame concatenado. A continuación, hay una función llamada extract_rows_by_value que puede ser utilizada para extraer filas basadas en un valor específico en una columna particular. En el ejemplo dado, se extraen las filas con el valor 2 en la columna ‘A’. Ten en cuenta que puedes cambiar el valor y la columna según tus necesidades.

Statsmodels

SciPy proporciona una biblioteca de herramientas estadísticas que permiten a los usuarios construir un modelo, y Pandas facilita su implementación. El paquete statsmodels se basa en estos paquetes al implementar pruebas más avanzadas de diferentes modelos estadísticos. Para cualquier modelo dado, está disponible una extensa lista de estadísticas de resultados y diagnósticos para cada estimador, con el objetivo de proporcionar al usuario una imagen completa del rendimiento del modelo. Los resultados se prueban frente a paquetes estadísticos existentes para garantizar su corrección.

Como ejemplo, importamos un conjunto de datos integrado y lo sometemos a un ajuste a la distribución de Poisson:

import numpy as np
import statsmodels.api as sm
import matplotlib.pyplot as plt

# Generar datos aleatorios que sigan una distribución de Poisson

np.random.seed(0)
data = np.random.poisson(lam=5, size=100)  # 'lam' es el parámetro lambda de la distribución de Poisson

# Ajustar los datos a una distribución de Poisson utilizando statsmodels

poisson_model = sm.Poisson(data)
poisson_results = poisson_model.fit()

# Mostrar los resultados del ajuste

print(poisson_results.summary())

# Histograma de los datos

plt.hist(data, bins=np.arange(-0.5, 15.5, 1), alpha=0.7, label='Datos')
plt.xlabel('Valor')
plt.ylabel('Frecuencia')
plt.title('Histograma de Datos y Ajuste de Poisson')
plt.legend()
plt.grid(True)
plt.show()

El resultado debería ser algo similar a lo siguiente:

reporte statsmodels

Zipline

Zipline es una biblioteca de código abierto desarrollada por Quantopian Inc. que se utiliza para el desarrollo y la ejecución de algoritmos de trading algorítmico. Está escrita en Python y proporciona una infraestructura para backtesting (pruebas retrospectivas) y ejecución en tiempo real de estrategias de trading.

Zipline permite a los desarrolladores definir estrategias de trading utilizando datos históricos y evaluar cómo habrían funcionado esas estrategias en el pasado. También es capaz de manejar eventos como órdenes de compra/venta, ejecuciones y transacciones, lo que permite a los usuarios simular el comportamiento de un algoritmo en un entorno de mercado simulado.

A continuación se muestra un ejemplo del uso de Zipline:

from zipline.api import order, record, symbol

def initialize(context):
    pass

def handle_data(context, data):

    order(symbol('AAPL'), 10)  # Compra 10 acciones de Apple (AAPL)
    record(AAPL=data.current(symbol('AAPL'), 'price'))  # Registra el precio de las acciones de Apple

# Configuración para realizar el backtest

start_date = '2010-01-01'
end_date = '2023-01-01'

# Importar Zipline y ejecutar el backtest

from zipline import run_algorithm
from zipline.utils.calendars import get_calendar

if __name__ == '__main__':

    run_algorithm(
        start=start_date,
        end=end_date,
        initialize=initialize,
        handle_data=handle_data,
        capital_base=100000,  # Capital inicial para el backtest
        data_frequency='daily',
        bundle='quandl',  # Fuente de datos (requiere configuración adicional, consulta la documentación de Zipline)
        trading_calendar=get_calendar('NYSE'),
    )

Este ejemplo ejecutará un backtest desde el 1 de enero de 2010 hasta el 1 de enero de 2023. La estrategia de trading es muy simple: compra 10 acciones de Apple (AAPL) cada vez que se llame a la función handle_data. También registra el precio de las acciones de Apple en cada iteración.

Quandl

Hasta ahora, los paquetes que he mencionado son imparciales respecto al tipo de datos que se están considerando. Por supuesto, al considerar modelos financieros, necesitamos datos financieros. Aquí es donde Quandl entra en juego. 

Quandl es una plataforma en línea que proporciona acceso a una amplia gama de datos financieros, económicos y alternativos. Reúne información de diversas fuentes, incluyendo gobiernos, organizaciones internacionales y proveedores de datos privados. Quandl es conocida por ofrecer datos de alta calidad y confiables para su uso en análisis financiero, modelado cuantitativo, investigación académica y más.

La plataforma permite a los usuarios buscar, acceder y descargar datos en varios formatos, como archivos CSV y JSON. También proporciona una API para acceder a los datos de forma programática, lo que facilita su integración en aplicaciones y análisis automatizados.

El módulo de Quandl para Python brinda a los usuarios acceso a una vasta colección de datos económicos, financieros y de mercado recopilados de bancos centrales, gobiernos, organizaciones multinacionales y muchas otras fuentes. La mayoría de los conjuntos de datos en bruto son gratuitos para acceder después del registro (necesitas una clave de API), con conjuntos de datos más avanzados y detallados disponibles a un costo.

A continuación mostramos un script que hace uso de Quandl en Python:

import quandl

# Configurar tu clave de API de Quandl

quandl.ApiConfig.api_key = 'TU_CLAVE_DE_API'

# Obtener datos históricos de precios de Apple (AAPL) desde Quandl

data = quandl.get('WIKI/AAPL', start_date='2022-01-01', end_date='2022-12-31')

# Mostrar los primeros registros del conjunto de datos

print(data.head())

En este ejemplo, ‘WIKI/AAPL’ representa el código de Quandl para los datos históricos de precios de las acciones de Apple. Puedes reemplazarlo con el código correspondiente a otros activos financieros que estés interesado en consultar.

Recuerda reemplazar ‘TU_CLAVE_DE_API’ con tu clave de API de Quandl para autenticarte y acceder a los datos. Además, ajusta las fechas de inicio (start_date) y fin (end_date) según el período de tiempo que desees consultar.

Este código recuperará los datos históricos de precios de las acciones de Apple para el año 2022 y mostrará los primeros registros del conjunto de datos.

Pyfolio

Pyfolio es una biblioteca de Python de código abierto diseñada para evaluar el rendimiento y el riesgo de carteras de inversión. Fue desarrollada por Quantopian, una plataforma de trading algoritmico, y está especialmente orientada hacia la evaluación y análisis de carteras creadas mediante algoritmos de trading algorítmico. Pyfolio proporciona herramientas para realizar un análisis detallado de carteras y estrategias de trading.

Algunas de las características clave de Pyfolio incluyen:

  • Evaluación del Rendimiento: Pyfolio permite evaluar el rendimiento de la cartera, incluyendo medidas como el rendimiento acumulado, el rendimiento diario y las tasas de rendimiento anualizadas.
  • Descomposición de Rendimientos: La biblioteca puede descomponer el rendimiento de una cartera en diferentes fuentes, como la contribución al rendimiento de cada activo individual.
  • Análisis del Riesgo: Pyfolio puede ayudar a analizar el riesgo de la cartera mediante medidas como la volatilidad y el análisis de las pérdidas.
  • Visualizaciones: Proporciona herramientas para crear visualizaciones gráficas que ayudan a entender el comportamiento de la cartera a lo largo del tiempo.

Es importante tener en cuenta que Pyfolio está diseñado para ser utilizado en el contexto de carteras de inversión, especialmente aquellas gestionadas algorítmicamente. Puede ser una herramienta valiosa para analizar y entender el rendimiento y el riesgo asociado con las estrategias de trading.

A continuación se muestra un ejemplo del uso de Pyfolio:

import yfinance as yf
import pandas as pd
import pyfolio as pf
import matplotlib.pyplot as plt

# Obtener datos históricos de Yahoo Finance para las acciones de Apple, Alphabet y Microsoft

tickers = ['AAPL', 'GOOGL', 'MSFT']
data = yf.download(tickers, start='2020-01-01', end='2022-01-01')['Adj Close']

# Calcular los retornos diarios de las acciones

returns = data.pct_change().dropna()

# Crear una cartera ponderada igualmente entre las tres acciones

weights = [1/3, 1/3, 1/3]
portfolio_returns = returns.dot(weights)

# Analizar la cartera utilizando Pyfolio

pf.create_returns_tear_sheet(portfolio_returns)

# Mostrar gráfico de Pyfolio

plt.show() 

Para utilizar Pyfolio para analizar una cartera compuesta por acciones de Apple (AAPL), Alphabet (GOOGL) y Microsoft (MSFT), primero necesitas tener datos históricos de estas acciones. En este ejemplo, usaremos la biblioteca yfinance para obtener los datos de Yahoo Finance. 

Este código descarga datos históricos de las acciones de Apple, Alphabet y Microsoft desde el 1 de enero de 2020 hasta el 1 de enero de 2022. Luego, calcula los retornos diarios y crea una cartera igualmente ponderada entre las tres acciones.

Después, utiliza Pyfolio para analizar la cartera y crea un tear sheet (hoja de análisis) que muestra diversas métricas de rendimiento y riesgo, junto con visualizaciones gráficas que ayudan a entender el comportamiento de la cartera.

Ten en cuenta que este es un ejemplo básico y que Pyfolio ofrece muchas más funcionalidades para un análisis de cartera más detallado y avanzado.

Los reportes que genera son los siguientes:

Análisis de rendimiento de Pyfolio

Retornos acumulados simulados de cartera de inversión comparada con los retornos del SPY

Análisis de rendimiento con Pyfolio

Asignación de capital a lo largo del tiempo

Los dos siguientes paquetes son alternativas al uso de zipline y pyfolio. 

TA-Lib

TA-Lib es una popular biblioteca de análisis técnico financiero. Está escrita en C pero cuenta con una envoltura (wrapper) de Python y se utiliza ampliamente en el mundo del trading y las finanzas para realizar análisis técnico en datos financieros. TA-Lib proporciona una amplia gama de herramientas y funciones para analizar series temporales financieras y generar señales de trading basadas en patrones y tendencias del mercado.

Algunas de las características clave de TA-Lib incluyen:

  • Indicadores Técnicos: TA-Lib incluye una variedad de indicadores técnicos populares como medias móviles, Bandas de Bollinger, Estocásticos, RSI (Índice de Fuerza Relativa), MACD (Convergencia/Divergencia de Medias Móviles) y muchos otros.
  • Patrones de Velas: Puede identificar patrones de velas japonesas comunes, como dojis, envolventes y martillos.
  • Funciones de Transformación y Volatilidad: Ofrece funciones para calcular volatilidad, así como transformaciones de precio como la diferencia entre los precios de cierre.
  • Interfaz con Diversos Lenguajes de Programación: Aunque está escrita en C, TA-Lib tiene envoltorios (wrappers) para varios lenguajes, incluyendo Python, lo que facilita su uso en diferentes entornos de desarrollo.

La siguiente imagen muestra cómo puede usarse este paquete para calcular la media móvil simple y el RSI:

import yfinance as yf
import talib
import numpy as np

# Obtener datos históricos del par EUR/USD desde Yahoo Finance

eurusd = yf.download('EURUSD=X', start='2022-01-01', end='2022-12-31')

# Calcular la Media Móvil Simple (SMA) de 20 períodos

eurusd['SMA_20'] = talib.SMA(eurusd['Close'], timeperiod=20)

# Calcular el Índice de Fuerza Relativa (RSI) de 14 períodos

eurusd['RSI_14'] = talib.RSI(eurusd['Close'], timeperiod=14)

# Mostrar los últimos registros del DataFrame con SMA y RSI calculados

print(eurusd.tail())

# Puedes también visualizar los datos y las líneas de SMA y RSI usando bibliotecas como Matplotlib

QuantLib

La segunda alternativa a zipline y pyfolio es QuantLib. Similar a TA-Lib, QuantLib está escrita en C++ y luego se exporta a Python. El proyecto QuantLib tiene como objetivo crear una biblioteca gratuita y de código abierto para modelado, trading y gestión de riesgos. El paquete contiene herramientas para diseñar e implementar algoritmos avanzados que incluyen características como convenciones de mercado, modelos de curvas de rendimiento, solucionadores, ecuaciones en derivadas parciales (PDEs), Monte Carlo y otros.

Algunas características destacadas de QuantLib incluyen:

  • Valoración de Instrumentos Financieros: QuantLib permite valorar una amplia gama de instrumentos financieros, como opciones, bonos, swaps y otros derivados complejos.
  • Curvas de Rendimiento: Proporciona herramientas para construir y manipular curvas de rendimiento, que son fundamentales para valorar instrumentos financieros a lo largo del tiempo.
  • Modelos Estocásticos: Ofrece modelos estocásticos para simular el comportamiento futuro de los precios de los activos financieros, lo que es esencial para el cálculo del riesgo.
  • Solvers y Optimización: Incluye solucionadores numéricos para resolver ecuaciones y sistemas de ecuaciones, así como algoritmos de optimización.
  • Herramientas de Cálculo: Proporciona herramientas para calcular medidas de riesgo, como el Valor en Riesgo (VaR) y el Estrés de Escenarios, para evaluar la sensibilidad de las carteras financieras a diferentes situaciones del mercado.

Aquí tenemos un ejemplo básico de cómo usar QuantLib para calcular el precio de un bono:

import QuantLib as ql

# Definir parámetros del bono

face_value = 1000  # Valor nominal del bono
coupon_rate = 0.05  # Tasa de cupón del bono (5%)
maturity_date = ql.Date(15, 11, 2023)  # Fecha de vencimiento del bono (15 de noviembre de 2023)
issue_date = ql.Date(15, 11, 2020)  # Fecha de emisión del bono (15 de noviembre de 2020)
calendar = ql.UnitedStates()  # Calendario para calcular los días hábiles
day_count = ql.Thirty360()  # Método de cálculo de intereses (30/360)

# Crear objetos para el bono y la tasa de interés

bond = ql.FixedRateBond(2, ql.UnitedStates(), face_value, issue_date, maturity_date, ql.Period('1Y'), [coupon_rate], day_count)
interest_rate = ql.FixedRateCoupon(0, face_value, issue_date, maturity_date, ql.Period('1Y'), day_count)

# Calcular el precio del bono

engine = ql.DiscountingBondEngine(ql.YieldTermStructureHandle(ql.FlatForward(0, ql.NullCalendar(), ql.QuoteHandle(ql.SimpleQuote(0.05)), ql.Thirty360())))
bond.setPricingEngine(engine)
price = bond.cleanPrice()
accrued_interest = bond.accruedAmount()

# Calcular el precio total del bono (incluyendo intereses devengados)

total_price = price + accrued_interest

# Imprimir el precio total del bono

print("Precio total del bono: ${:.2f}".format(total_price))

En este ejemplo, se crea un bono con un valor nominal de $1000, una tasa de cupón del 5%, emitido el 15 de noviembre de 2020 y venciendo el 15 de noviembre de 2023. La biblioteca QuantLib se utiliza para calcular el precio del bono, incluyendo el interés devengado hasta la fecha actual.

Matplotlib

Los paquetes de Python mencionados anteriormente para finanzas establecen fuentes de datos financieros, estructuras de datos óptimas para datos financieros, así como modelos estadísticos y mecanismos de evaluación. Pero ninguno proporciona una de las herramientas más importantes de Python para modelado financiero: la visualización de datos (todas las visualizaciones en este artículo están impulsadas por matplotlib).

La visualización no solo es importante para entender las tendencias dentro de los datos financieros, sino también para transmitir percepciones a personas no técnicas. Existen diversos paquetes de visualización de datos en Python, cada uno con ventajas y desventajas, pero el más fácil de implementar para modelado financiero es matplotlib. Esto se debe principalmente al hecho de que muchos de los paquetes en esta lista ya dependen de matplotlib. Además, la documentación es abundante y la sintaxis es simple y directa.

Algunas de las características clave de Matplotlib incluyen:

  • Variedad de Gráficos: Matplotlib permite crear una amplia variedad de gráficos, incluyendo gráficos de líneas, gráficos de dispersión, histogramas, gráficos de barras, gráficos de torta, gráficos de contorno, gráficos 3D y más.
  • Personalización: Los usuarios pueden personalizar cada aspecto de un gráfico, desde el color y el estilo de línea hasta las etiquetas y leyendas. Esto proporciona un alto grado de flexibilidad en la presentación de datos.
  • Interactividad: Aunque Matplotlib es conocido por crear gráficos estáticos, puede integrarse con otras bibliotecas como mplcursors y mplleaflet para agregar interactividad a los gráficos, lo que permite a los usuarios explorar datos en tiempo real.
  • Amplia Integración: Matplotlib se integra bien con muchas otras bibliotecas y entornos de desarrollo en Python, lo que facilita su uso en combinación con otras herramientas para el análisis de datos y la visualización.
  • Soporte para Diversos Formatos de Salida: Los gráficos creados con Matplotlib pueden guardarse en varios formatos, incluyendo PNG, PDF, SVG, y muchos otros, lo que facilita su inclusión en documentos y presentaciones.

Conclusiones

En resumen, los paquetes de análisis financiero en Python ofrecen un conjunto robusto de herramientas para profesionales en finanzas y analistas de datos. Estos paquetes permiten el acceso a datos financieros, el modelado de algoritmos complejos, la implementación de análisis estadísticos avanzados y la creación de visualizaciones impactantes. 

Estos paquetes, junto con otros disponibles en el ecosistema de Python, hacen de Python una opción destacada para el análisis financiero. La combinación de su flexibilidad, versatilidad y una comunidad activa y en crecimiento, convierte a Python en un lenguaje esencial para los profesionales financieros y científicos de datos que buscan soluciones efectivas en el mundo de las finanzas y el análisis de inversiones.


 

Raul Canessa

Leave a reply