¿Cómo trazar puntos pivote en Python?

0
596
Gráfico de puntos pivotes diarios de Apple

En este artículo vamos a explicar cómo podemos calcular y mostrar los puntos pivote diarios de cualquier activo en un gráfico de precios con relativamente poco código.

Tal como hemos mostrado en otros tutoriales de Python usado para aplicaciones de trading, el código que vamos a explicar a continuación básicamente hace 3 cosas:

  1. Extrae datos históricos de precios de fuentes como Yahoo Finance.
  2. Calcula los valores de los niveles pivote (R3, R2, R1, PP, S1, S2, S3) con los datos de los mercados obtenidos anteriormente.
  3. Traza un gráfico de precios con los valores de los niveles pivote.

Antes de comenzar con el código de Python, vamos a hablar un poco de los puntos pivote y como se usan en el trading.

¿Qué son los puntos pivote?

Los puntos pivote se refieren a indicadores técnicos utilizados por los operadores diarios (day trader) para identificar posibles niveles de soporte y resistencia en un mercado. Se basan en los precios máximos, mínimos y de cierre del día anterior. Los traders utilizan los puntos pivote y los niveles de soporte y resistencia que proporcionan para determinar posibles precios de entrada, salida y stop-loss para las operaciones.

Originalmente, los puntos pivote fueron desarrollados por traders de piso (floor traders) que operaban en un entorno de alta velocidad en los mercados de acciones y materias primas. Al comienzo de cada día de negociación, utilizaban los precios máximos, mínimos y de cierre del día anterior para calcular el pivote para el día actual.

El punto pivote se utiliza entonces para identificar dos niveles de soporte y dos niveles de resistencia para el día. Los niveles de soporte y resistencia se determinan en función de la diferencia entre los precios máximos y mínimos del día anterior y el punto pivote.

Pueden obtener más información sobre los puntos pivote, su fórmula de cálculo y su utilización en: Los puntos pivote en el trading

¿Cómo se calculan los puntos pivote?

La técnica principal que la mayoría de los operadores utilizan para calcular los puntos pivote es el sistema de cinco puntos. El sistema utiliza los precios máximos, mínimos y de cierre del día anterior, así como los niveles de soporte y resistencia. El sistema de cinco puntos utiliza las siguientes fórmulas:

Punto pivote (P) = (Máximo anterior + Mínimo anterior + Cierre anterior) /3

S1= (P x 2) – Máximo anterior

S2 = P – (Máximo anterior – Mínimo anterior)

R1 = (P x 2) – Mínimo anterior

R2 = P + (Máximo anterior – Mínimo anterior)

Donde:

  • S1= Soporte 1
  • S2 = Soporte 2
  • R1 = Resistencia 1
  • R2 = Resistencia 2

Código de Python de Puntos Pivote

Después de haber explicado qué son los puntos pivote ahora vamos a explicar el código de Python que podemos usar para calcular y trazar este indicador en el gráfico para empezar, vamos a utilizar la biblioteca yfinance con el fin de obtener los datos de precios del activo en que vamos a operar. 

Primero es necesario instalar las bibliotecas necesarias para la ejecución del código del programa.

#Bibliotecas para el cálculo de los puntos pivote
import yfinance as yf
import matplotlib.pyplot as plt

yfinance es una biblioteca que permite obtener datos históricos de precios de cualquier activo listado en Yahoo Finance y matplotlib es una biblioteca que permite trazar gráficos similares a los que podemos ver en una plataforma de trading.

Código de obtención de datos históricos de precios

Lógicamente, el paso inicial es obtener los datos históricos de precios del mercado del activo en que queremos operar. Para esto se usa la biblioteca yfinance que permite recolectar los datos de precios como muestra el código a continuación:

#Obtención de datos históricos de un símbolo específico (por ejemplo, AAPL para Apple Inc.)
simbolo = 'AAPL'
datos = yf.download(simbolo, start='2023-01-01', end='2023-12-31')

Este código le indica al programa que obtenga los datos de precios de un activo (en este caso Apple) para el periodo desde el primero de diciembre del 2023 hasta el 31 de diciembre del 2023.

Estos son los datos brutos que se van a usar para calcular los niveles de los puntos pivote clásicos con base en las fórmulas mostradas anteriormente.

Cálculo de los niveles de los puntos pivote

Una vez que obtenemos los datos de precios mediante yfinance, el siguiente paso es calcular los niveles de los puntos pivote usando los datos de precios del día anterior. El código es bastante sencillo y consta de unas cuantas líneas.

#Cálculo del punto pivote y los niveles de soporte y resistencia
maximo_previo = dato['High'].shift(1)
minimo_previo = dato['Low'].shift(1)
cierre_previo = dato['Close'].shift(1)

punto_pivote = (maximo_previo + minimo_previo + cierre_previo) / 3
soporte1 = (punto_pivote * 2) - maximo_previo
soporte2 = punto_pivote - (maximo_previo - minimo_previo)
soporte3 = soporte2 - (maximo_previo - minimo_previo)
resistencia1 = (punto_pivote * 2) - minimo_previo
resistencia2 = punto_pivote + (maximo_previo - minimo_previo)
resistencia3 = resistencia2 + (maximo_previo - minimo_previo)

Debido a que las fórmulas de cálculo de los niveles pivote son bastante simples, no se requiere ninguna biblioteca extra para calcular estos niveles de precios. Solamente se necesitan los datos de precios del día anterior obtenidos con yfinance y usarlos para cálculo del punto pivote y los soportes y resistencias.

Con estos valores, lo único que resta es crear el gráfico correspondiente con los datos de precios y los niveles pivote.

Trazado de las líneas de los puntos pivote en el gráfico de precios

Una vez que se obtienen los datos de precios del mercado y se calculan los valores de las líneas de los niveles pivote, ahora vamos a trazar estas líneas en un gráfico de precios usando la biblioteca Matplotlib. Esta biblioteca es relativamente fácil de usar, 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 de los niveles de pivote
plt.figure(figsize=(12, 6))
plt.plot(datos["Close"], label="Precio de cierre", color="black")
plt.plot(punto_pivote, label='Punto Pivote', color='blue')
plt.plot(soporte1, label='Soporte 1', color='green', linestyle='--')
plt.plot(soporte2, label='Soporte 2', color='green', linestyle='--')
plt.plot(soporte3, label='Soporte 3', color='green', linestyle='--')
plt.plot(resistance1, label='Resistencia 1', color='red', linestyle='--')
plt.plot(resistance2, label='Resistencia 2', color='red', linestyle='--')
plt.plot(resistance3, label='Resistencia 3', color='red', linestyle='--')

plt.title(f'Niveles pivote diarios para {symbol}')
plt.ylabel('Price')
plt.xlabel('Fecha')
plt.legend()
plt.grid(True)
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

Con esto ya tenemos el código completo que puede usarse para trazar puntos pivote por sí mismo o integrarse en una función que se puede llamar desde otro programa (como un robot de trading), por ejemplo.

A continuación, se muestra el código completo en su totalidad:

Ejemplo de puntos pivote de APPL

Si ejecutamos este código usando el ticker de Apple (APPL) obtenemos el siguiente gráfico:

Gráfico de puntos pivotes diarios de Apple

Gráfico de puntos pivotes diarios de Apple calculados con Python

En la imagen anterior podemos ver un gráfico de precios de la acción de Apple con precios obtenidos para un periodo de un mes (enero de 2023). Los datos del mercado fueron tomados de Yahoo Finance por medio de la librería yfinance. En el mismo gráfico también se trazan las líneas de los niveles pivote calculados con base en estos datos de precios.

Como hemos visto, el código es bastante simple y puede integrarse con otros códigos que sirven para la automatización de sistemas de trading, por ejemplo.

Con las capacidades de Python para crear e implementar estrategias complejas o análisis mediante machine learning y redes neuronales, códigos de este tipo pueden emplearse para codificar y optimizar sistemas de trading más desarrollados y complejos o bots de trading.

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

Conclusión

Este código descarga datos históricos de Yahoo Finance para el símbolo AAPL (Apple Inc.) en el mes de enero de 2023, calcula los puntos pivote y los niveles de soporte y resistencia, y luego traza un gráfico de estos niveles a lo largo del periodo. Puedes cambiar el símbolo y las fechas según tus preferencias. Asegúrate de tener instalada la biblioteca yfinance para ejecutar este código.


 

TagsPython
Raul Canessa

Leave a reply