Implementación de MACD en Python

El autor:La bondad, Creado: 2019-04-08 10:56:11, Actualizado:

El MACD es un indicador técnico popularmente utilizado en el comercio de acciones, monedas, criptomonedas, etc.

Fundamentos del MACD

El MACD se utiliza y discute en muchos círculos comerciales diferentes. La divergencia de convergencia promedio móvil (MACD) es un indicador de tendencia. El MACD se puede calcular muy simplemente restando la EMA de 26 períodos de la EMA de 12 períodos.

Estrategias útiles

El gráfico MACD se utiliza comúnmente para analizar cruces, divergencias y períodos de pendiente pronunciada (positiva o negativa). Junto con la línea MACD (sustrayendo la EMA de 12 períodos de la EMA de 16 períodos), el gráfico incluirá comúnmente una línea de señal trazada en la parte superior del MACD.

En un cruce alcista, al igual que en los promedios móviles, se produce una señal de compra cuando el MACD cruza por encima de la línea de señal. Una señal bajista se produce cuando el MACD cruza por debajo de la línea de señal. Si se produce un cruce con un MACD de alta pendiente, esto puede ser una señal de una condición de sobrecompra o sobreventa, dependiendo de si el cruce es alcista o bajista respectivamente.

Las divergencias también son fáciles de entender. Cuando el MACD establece un alto o bajo que difiere de los máximos o bajos en el precio, establece una divergencia. Una divergencia alcista se produce cuando el MACD tiene dos mínimos ascendentes en el MACD con dos mínimos descendentes en el precio del activo. Las divergencias se pueden usar para encontrar una tendencia cambiante. Los comerciantes siempre están buscando la ventaja competitiva y predecir un cambio de tendencia puede ser muy rentable. Por supuesto, las divergencias no son completamente confiables y solo deben usarse como una información adicional, no como una única indicación de la dirección del precio.

En tal situación, es probable que la tendencia de las acciones pierda rápidamente impulso y vea una corrección o reversión respecto a la dirección actual.

Implementación de Python

Empezamos como siempre, seleccionando una acción y recopilando los datos. Como de costumbre, haremos nuestro análisis en AMD y usaremos la API IEX para obtener los datos.

import pandas as pd
import numpy as np
from datetime import datetime
import matplotlib.pyplot as plt
import pyEX as p
ticker = 'AMD'
timeframe = '6m'
df = p.chartDF(ticker, timeframe)
df = df[['close']]
df.reset_index(level=0, inplace=True)
df.columns=['ds','y']
plt.plot(df.ds, df.y, label='AMD')
plt.show()

imgAMD desde finales de 2018 hasta la fecha actual (principios de 2019).

exp1 = df.y.ewm(span=12, adjust=False).mean()
exp2 = df.y.ewm(span=26, adjust=False).mean()
macd = exp1-exp2
exp3 = macd.ewm(span=9, adjust=False).mean()
plt.plot(df.ds, macd, label='AMD MACD', color = '#EBD2BE')
plt.plot(df.ds, exp3, label='Signal Line', color='#E5A4CB')
plt.legend(loc='upper left')
plt.show()

Esto nos permite trazar el MACD frente a la línea de señal. ¡Ver si puedes detectar los cruces alcistas y bajistas!

imgEl MACD frente a la línea de señal Recuerde, un cruce alcista ocurre cuando el MACD cruza por encima de la línea de señal y un cruce bajista ocurre cuando el MACD cruza por debajo de la línea de señal.

imgCruce alcista representado en verde, cruce bajista representado en rojo. El ejemplo anterior fue una forma sencilla de utilizar el MACD para estudiar los cruces.

Empezamos por la implementación de los promedios móviles exponenciales y MACD.

exp1 = df.y.ewm(span=12, adjust=False).mean()
exp2 = df.y.ewm(span=26, adjust=False).mean()
exp3 = df.y.ewm(span=9, adjust=False).mean()
macd = exp1-exp2
plt.plot(df.ds, df.y, label='AMD')
plt.plot(df.ds, macd, label='AMD MACD', color='orange')
plt.plot(df.ds, exp3, label='Signal Line', color='Magenta')
plt.legend(loc='upper left')
plt.show()

imgLa línea azul representa el precio de las acciones de AMD, la línea naranja representa el MACD Podemos exagerar un poco esta línea MACD trazando separadamente del precio de las acciones y ver las pendientes más claras.

imgMACD desde finales de 2018 hasta la fecha actual (principios de 2019). Recordemos nuestra discusión de sobrecompra y sobreventa de antes. Podemos ver que el MACD se mantiene bastante plano con el tiempo. Pero hay ciertos momentos en que la curva del MACD es más pronunciada que otras. Estos son casos de condiciones de sobrecompra o sobreventa. Representamos nuestras condiciones de sobreventa con círculos verdes y sobrecompra con círculos rojos. Puede ver que poco después de que el MACD muestra una condición de sobrecompra o sobreventa, el impulso se desaceleró y el precio de la acción reaccionó en consecuencia.

imgLos círculos verdes corresponden a la divergencia alcista, el rojo corresponde a la divergencia bajista. Hemos discutido brevemente el MACD y lo implementamos en Python para examinar su uso en condiciones de crossovers y sobrecompra / sobreventa.


Más.