Librerías esenciales de Python para trading: pandas, NumPy, Matplotlib y TA-Lib

0
8
librerias backtesting python

Librerías de Python para Trading

Una de las grandes ventajas de Python para el trading es que no tienes que construirlo todo desde cero. Hay librerías gratuitas que resuelven la mayor parte del trabajo: manejar datos, hacer cálculos, dibujar gráficos y calcular indicadores técnicos.

En este artículo vamos a conocer las cuatro librerías que usarás en casi todos tus proyectos: pandas, NumPy, Matplotlib y TA-Lib. Veremos para qué sirve cada una, cómo se instalan y cómo se combinan en un ejemplo práctico.

Qué es una librería y cómo se instala

Una librería (o paquete) es un conjunto de código ya escrito que puedes importar en tus programas para no reinventar la rueda. Se instalan con pip, el gestor de paquetes de Python. Desde la terminal o desde una celda de Jupyter Notebook:

pip install pandas numpy matplotlib yfinance

TA-Lib la veremos aparte, porque su instalación merece un comentario. Si todavía no tienes tu entorno preparado, instala antes Python y un editor como Jupyter Notebook o VS Code.

1. pandas: la hoja de cálculo programable

Si tuvieras que quedarte con una sola librería, sería pandas. Su estructura principal, el DataFrame, es una tabla con filas y columnas, parecida a una hoja de Excel, pero capaz de manejar millones de filas con rapidez.

En trading, un DataFrame suele contener los datos de mercado: una fila por vela (día, hora o minuto) y columnas para la apertura, el máximo, el mínimo, el cierre y el volumen.

Qué puedes hacer con pandas:

  • Cargar datos desde archivos CSV, Excel o directamente desde internet.
  • Trabajar con series temporales: filtrar por fechas, cambiar de marco temporal (por ejemplo, de diario a semanal) o alinear varios activos.
  • Calcular columnas nuevas, como retornos o medias móviles, sin escribir bucles.
  • Limpiar datos: detectar huecos, duplicados o valores extraños.

Un ejemplo sencillo: la media móvil de 50 periodos es una sola línea.

datos["SMA50"] = datos["Close"].rolling(window=50).mean()

2. NumPy: la base del cálculo numérico

NumPy es la librería sobre la que se construye casi todo lo demás, incluida pandas. Su especialidad son los arrays: listas de números sobre las que puedes operar de golpe, sin recorrerlas una a una. Esto se llama cálculo vectorizado y es mucho más rápido que usar bucles.

En trading la usarás para:

  • Calcular retornos logarítmicos y estadísticas (media, desviación estándar, percentiles).
  • Generar señales de compra y venta con condiciones lógicas.
  • Hacer simulaciones, como las de Monte Carlo.
  • Operar con matrices, por ejemplo al analizar correlaciones entre activos.

Un ejemplo: calcular la volatilidad anualizada de un activo a partir de sus retornos diarios.

import numpy as np

volatilidad_anual = datos["Retorno"].std() * np.sqrt(252)

El número 252 es el promedio de sesiones bursátiles que hay en un año, y se usa para anualizar datos diarios.

3. Matplotlib: ver los datos antes de fiarte de ellos

Un número aislado dice poco; un gráfico, mucho. Matplotlib es la librería de visualización más extendida en Python. Con ella puedes dibujar la evolución del precio, superponer indicadores, comparar activos o mostrar la curva de capital de una estrategia.

Sirve para dos cosas importantes:

  • Detectar errores. Un gráfico te revela enseguida un dato absurdo, un hueco o un salto raro que en una tabla pasaría desapercibido.
  • Comunicar resultados. Un buen gráfico explica una estrategia mejor que diez párrafos.

También existen alternativas que conviene conocer: mplfinance, pensada para velas japonesas, y Plotly, que ofrece gráficos interactivos con zoom. Las veremos en otro artículo.

4. TA-Lib: los indicadores técnicos ya programados

TA-Lib (Technical Analysis Library) es una librería especializada que incluye más de 150 indicadores y reconocimiento de patrones de velas: RSI, MACD, bandas de Bollinger, estocástico, ATR, ADX y muchos más.

Calcularlos tú mismo es un buen ejercicio de aprendizaje, pero en el día a día es más cómodo y fiable usar una implementación probada.

Su uso es muy directo:

import talib

datos["RSI"] = talib.RSI(datos["Close"], timeperiod=14)

Sobre la instalación. Históricamente, TA-Lib era la librería más incómoda de instalar, porque dependía de una biblioteca externa escrita en C. Las versiones recientes se instalan con un simple pip install TA-Lib en la mayoría de los sistemas, pero si te da error, consulta la documentación oficial o prueba con pandas-ta, una alternativa escrita íntegramente en Python que se instala sin complicaciones. Los métodos de instalación cambian con el tiempo, así que conviene revisar las instrucciones actuales antes de empezar.

Un ejemplo completo: las cuatro librerías juntas

Veamos cómo trabajan en equipo. Este código descarga dos años de datos de Apple, calcula retornos, una media móvil y el RSI, y dibuja el resultado.

import yfinance as yf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import talib

# 1. Descargar datos (pandas organiza el resultado en un DataFrame)
datos = yf.download("AAPL", period="2y", multi_level_index=False)

# 2. Calcular retornos con pandas y NumPy
datos["Retorno"] = datos["Close"].pct_change()
datos["Retorno_log"] = np.log(datos["Close"] / datos["Close"].shift(1))

# 3. Indicadores: media móvil con pandas y RSI con TA-Lib
datos["SMA50"] = datos["Close"].rolling(window=50).mean()
datos["RSI"] = talib.RSI(datos["Close"], timeperiod=14)

# 4. Visualizar con Matplotlib
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(12, 8), sharex=True,
                               gridspec_kw={"height_ratios": [3, 1]})

ax1.plot(datos.index, datos["Close"], label="Cierre")
ax1.plot(datos.index, datos["SMA50"], label="SMA 50")
ax1.set_title("Apple (AAPL): precio y media móvil")
ax1.legend()

ax2.plot(datos.index, datos["RSI"], color="purple")
ax2.axhline(70, color="red", linestyle="--")
ax2.axhline(30, color="green", linestyle="--")
ax2.set_title("RSI (14)")

plt.tight_layout()
plt.show()

El resultado es un gráfico con dos paneles: arriba, el precio con su media móvil; abajo, el RSI con las líneas de sobrecompra (70) y sobreventa (30). Cada librería hace su parte: pandas organiza los datos, NumPy hace los cálculos, TA-Lib genera el indicador y Matplotlib lo dibuja.

Nota: la descarga de datos con yfinance depende de un servicio gratuito de terceros y su funcionamiento puede variar con el tiempo. Si el parámetro multi_level_index te da error en tu versión, actualiza la librería con pip install –upgrade yfinance.

Otras librerías que conviene conocer

Estas cuatro son la base, pero a medida que avances en el uso de Python en trading te encontrarás con otras:

LibreríaPara qué sirve
yfinanceDescargar datos históricos de mercado de forma gratuita
mplfinanceGráficos de velas japonesas
PlotlyGráficos interactivos
pandas-taIndicadores técnicos, alternativa a TA-Lib
Backtrader / vectorbtBacktesting de estrategias
SciPy / statsmodelsEstadística avanzada y modelos
scikit-learnMachine learning
CCXTConexión con exchanges de criptomonedas

Errores comunes de principiantes

  • Instalar librerías en el entorno equivocado. Si import pandas da error aunque lo hayas instalado, probablemente lo hiciste en otra versión de Python. Usa un entorno virtual para evitar confusiones.
  • Olvidar los valores vacíos (NaN). Los indicadores necesitan un número mínimo de datos para calcularse, así que las primeras filas aparecerán vacías. Es normal, pero hay que tenerlo en cuenta en las estrategias.
  • Usar bucles para todo. Si te encuentras recorriendo un DataFrame fila a fila con un for, casi siempre hay una forma vectorizada más rápida con pandas o NumPy.
  • Fiarse de los datos sin revisarlos. Grafica siempre antes de analizar.

Conclusión

Con pandas, NumPy, Matplotlib y TA-Lib tienes la caja de herramientas básica para empezar a analizar mercados con Python. No necesitas dominarlas por completo: con unas pocas funciones ya puedes descargar datos, calcular indicadores y visualizar resultados. El resto lo irás aprendiendo sobre la marcha, con proyectos reales.

En el próximo artículo aprenderemos a descargar datos históricos de mercado con yfinance y a prepararlos para el análisis.

 

En otros artículos hemos hablado de otras librerías importantes de Python que pueden resultar útiles para el trader. Pueden acceder a estos artículos en:

Aviso: este contenido es meramente educativo y no constituye asesoramiento financiero. Operar en los mercados conlleva riesgo de pérdida de capital.


 

TagsPython

Leave a reply