Creación de Bandas de Bollinger en Python con Pandas y Numpy

0
149
Bandas de Bollinger de MSFT (Microsoft) en Python

Las Bandas de Bollinger son un tipo de indicador técnico estadístico que caracteriza los precios y la volatilidad de un activo a lo largo del tiempo. En este artículo vamos a explicar cómo calcular y trazar bandas de Bollinger con Python usando bibliotecas como Pandas y Numpy.

El código que vamos a mostrar es bastante simple y utiliza la biblioteca yfinance para obtener los datos históricos de precios de distintos activos, las bibliotecas Pandas y Numpy para el manejo de datos y el cálculo de las líneas de las bandas de Bollinger y Matplotlib para el trazado del gráfico de precios con el indicador.

Antes de presentar y explicar el gráfico, vamos a explicar brevemente en qué consiste este indicador técnico.

¿Qué son las bandas de Bollinger?

Las bandas de Bollinger son una herramienta popular de análisis técnico utilizada por traders para identificar posibles rupturas en el precio y analizar la volatilidad del mismo. Está compuesta por tres líneas: una línea de media móvil, una banda superior y una banda inferior. Generalmente, las bandas superior e inferior se establecen a dos desviaciones estándar de la línea de promedio móvil. 

La línea de media móvil sirve como referencia para la acción del precio del activo, mientras que las bandas superior e inferior actúan como niveles de soporte y resistencia.

Los traders suelen utilizar las bandas de Bollinger para determinar si un activo está sobrecomprado o sobrevendido. Cuando los precios se acercan a la banda superior, sugiere que el activo puede estar sobrecomprado y listo para una corrección, mientras que los precios cerca de la banda inferior sugieren que el activo puede estar sobrevendido y listo para un rebote.

Algunos traders utilizan las líneas de este indicador para identificar puntos de entrada y salida para sus operaciones, con una posible operación larga señalada cuando el precio cae por debajo de la banda inferior y una posible operación corta cuando el precio sube por encima de la banda superior. En general, las bandas de Bollinger son una herramienta poderosa que se puede utilizar en combinación con otros indicadores para tomar decisiones de trading más informadas.

Como se puede observar en el gráfico a continuación, estos números son dinámicos; una mayor distancia entre el punto medio y las bandas indica una mayor volatilidad. Una banda más estrecha señalaría un mercado más tranquilo.

Las fórmulas para las bandas superior, media e inferior de este indicador son:

Banda Superior=MA+Kσ

Banda Media=MA

Banda Inferior=MAKσ

Donde:

MA es la media móvil.

K es el número de desviaciones estándar respecto a la media (generalmente establecido en 2).

σ es la desviación estándar.

Código en Python para el cálculo de las medias móviles

Primero que todo vamos a instalar las bibliotecas necesarias para la ejecución del código:

#Bibliotecas para el cálculo de bandas de Bollinger en Python
import pandas as pd
import yfinance as yf
import numpy as np
import matplotlib.pyplot as plt

Recolección de datos del mercado

Lo primero que debe hacer nuestro código es obtener los datos de precios del mercado del activo analizado. Para esto vamos a usar la biblioteca yfinance que permite recolectar los datos de precios necesarios desde Yahoo Finance, como se muestra a continuación:

 #Obtención de datos de precios del mercado desde Yahoo Finance
 simbolo = ticker
 fecha_inicio = '2022-01-01'
 fecha_final = '2022-12-31'
 data = yf.download(simbolo, start=fecha_inicio, end=fecha_final)

Cálculo de las bandas de Bollinger

Después de obtener datos de precios, ahora se deben calcular los valores contínuos de las líneas de las bandas de Bollinger usando pandas y numpy. El código es bastante sencillo y consta de unas cuantas líneas.

 #Cálculo de la media móvil (línea central) y la desviación estándar con respecto a este promedio
 window = periodo
 data['MA20'] = data['Close'].rolling(window=window).mean()
 data['std_dev'] = data['Close'].rolling(window=window).std()

 #Cálculo de las líneas de las bandas de Bollinger
 data['UpperBand'] = data['MA20'] + 2 * data['std_dev']
 data['MiddleBand'] = data['MA20']
 data['LowerBand'] = data['MA20'] - 2 * data['std_dev']

Se puede calcular un indicador como las bandas de Bollinger de forma directa sin el uso de bibliotecas como numpy, pero es más complicado y se requieren más líneas de cálculo, aunque tampoco es tan difícil. Mostraremos como hacer esto posteriormente.

Trazado de las bandas de Bollinger en el gráfico de precios

Una vez que hemos obtenido los datos de precios del activo y hemos calculado las líneas de las bandas de Bollinger vamos a trazar este indicador en un gráfico de precios usando la biblioteca Matplotlib. El uso de esta biblioteca no es demasiado complicado, pero si es necesario que el programador aprenda a usar su notación para el trazado de títulos, ejes y los datos graficados.

# Gráfico con los precios de cierre y las bandas de Bollinger
plt.figure(figsize=(10, 6))
plt.plot(data['Close'], label='Precio de cierre', linewidth=2)
plt.plot(data['UpperBand'], label='Banda de Bollinger Superior', linestyle='--', linewidth=2)
plt.plot(data['MiddleBand'], label='Banda de Bollinger Media', linestyle='--', linewidth=2)
plt.plot(data['LowerBand'], label='Banda de Bollinger Inferior', linestyle='--', linewidth=2)

plt.title(f'{simbolo} - Cálculo de Bandas de Bollinger')
plt.xlabel('Fecha')
plt.ylabel('Precio')
plt.legend()
plt.show()

Con esto ya tenemos el código completo que puede integrarse en una función que se puede llamar desde otro programa, por ejemplo.

Ejemplo

Si se ejecuta este código usando el ticker de Microsoft (MSFT) y un periodo de cálculo de 20 periodos para las bandas de Bollinger, obtenemos el siguiente gráfico:

Bandas de Bollinger de MSFT (Microsoft) en Python

Bandas de Bollinger de MSFT (Microsoft) en Python

La imagen anterior muestra un gráfico de precios de la acción de Microsoft con datos de precios de cierre tomados desde el primero de enero de 2022 y el 31 de diciembre del 2022. Estos datos de precios fueron tomados de Yahoo Finance mediante la biblioteca yfinance. Los valores de las 3 bandas de Bollinger se calculan mediante las bibliotecas pandas y numpy y la creación del gráfico se realiza mediante mathplotlib. Como hemos visto, el código es relativamente simple y puede integrarse con otros códigos que sirven para calcular otros indicadores como medias móviles o el RSI.

Con las capacidades de Python para implementar estrategias complejas o análisis mediante machine learning y redes neuronales, códigos de este tipo pueden usarse para codificar y optimizar estrategias de trading mucho más desarrolladas.

Pueden obtener información sobre las principales librerías de Python para finanzas en: Las mejores librerías para finanzas de Python


 

Raul Canessa

Leave a reply