Tendencia del MACD siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2023-11-15 17:08:15
Las etiquetas:

img

Resumen general

Esta estrategia se llama la estrategia de seguimiento de tendencias MACD. Es una estrategia cuantitativa que utiliza el indicador MACD para determinar las tendencias de precios y sigue las tendencias al comercio. La estrategia tiene como objetivo capturar las tendencias a medio y largo plazo y ajustar las posiciones de manera oportuna cuando ocurren inversiones de tendencia.

Estrategia lógica

La estrategia utiliza el indicador MACD para determinar las tendencias de precios. El MACD es un indicador de ruptura formado por la línea EMA rápida (12 días) y la línea EMA lenta (26 días). La diferencia entre estas dos líneas forma el histograma MACD, y la EMA de 9 días del histograma es la línea de señal MACD. Cuando la línea MACD cruza por encima de la línea de señal, es una cruz de oro, lo que indica una tendencia al alza. Cuando la línea MACD cruza por debajo de la línea, es una cruz muerta, lo que indica una tendencia a la baja.

La estrategia primero calcula la línea MACD y la línea de señal, luego calcula la diferencia delta entre las dos líneas. Cuando el delta cruza por encima de 0, se genera una señal de compra. Cuando el delta cruza por debajo de 0, se genera una señal de venta. Sobre la base de estas dos señales, la estrategia ajusta las posiciones en consecuencia. Para filtrar el ruido, la estrategia también introduce una línea EMA: las señales comerciales válidas solo se generan cuando el precio rompe esta línea EMA.

Específicamente, la lógica de la estrategia es:

  1. Calcular la línea MACD, la línea de señal y la diferencia delta
  2. Determinar si el cruce del delta por encima o por debajo de 0 significa una inversión de tendencia
  3. Calcular una línea EMA para servir como filtro
  4. Cuando el delta cruza por encima de 0 y el precio está por encima de la EMA, generar una señal de compra
  5. Cuando el delta se cruza por debajo de 0 y el precio está por debajo de la EMA, generar una señal de venta

Con este diseño, la estrategia es capaz de seguir las tendencias a medio y largo plazo y ajustar rápidamente las posiciones cuando las tendencias se invierten.

Ventajas

La estrategia tiene las siguientes ventajas:

  1. Utilizar el MACD para detectar con precisión los puntos de inversión de tendencia para el momento de entrada y salida
  2. Adoptar un filtro EMA para evitar interferencias de los ruidos del mercado a corto plazo
  3. Sólo seguir las tendencias a medio y largo plazo, evitando los cambios en los mercados de variedad
  4. Lógica sencilla y clara, fácil de entender y modificar el código
  5. Flexibilidad en el control de la frecuencia de negociación mediante el ajuste de parámetros
  6. Alta utilización del capital para realizar un seguimiento completo de las tendencias a medio y largo plazo

Los riesgos

Hay algunos riesgos a tener en cuenta:

  1. El MACD como indicador de tendencia puede generar señales falsas en mercados inestables
  2. El filtro de la EMA puede filtrar algunas oportunidades comerciales válidas
  3. La configuración incorrecta de los parámetros puede dar lugar a una sobre- o una sub-negociación.
  4. Incapacidad para responder a los cambios de mercado a corto plazo debido a la naturaleza tardía
  5. Puede perder el momento óptimo en los puntos de inflexión de la tendencia debido al retraso

Soluciones:

  1. Optimizar los parámetros y ajustar el filtro EMA para reducir las señales falsas
  2. Incorporar otros indicadores de confirmación para descubrir más operaciones
  3. Implementar el stop loss para controlar las pérdidas en operaciones únicas
  4. Acortamiento del período de retención para mejorar la flexibilidad

Optimización

La estrategia se puede optimizar aún más de las siguientes maneras:

  1. Añadir otros indicadores para formar un sistema combinado para una mayor precisión
  2. Introducir mecanismos de obtención de beneficios y de detención de pérdidas para un mejor control del riesgo
  3. Incorporar indicadores de volumen para evitar falsas rupturas
  4. Adaptar dinámicamente los parámetros en función de las condiciones del mercado para mejorar la solidez
  5. Refinar la lógica de entrada y salida para mejorar el tiempo
  6. Escala en las posiciones para seguir mejor las tendencias y reducir el riesgo

Se puede lograr una mejora significativa mediante métodos como combinaciones de indicadores, parámetros adaptativos, stop loss/take profit, etc.

Conclusión

En resumen, la estrategia de seguimiento de tendencias del MACD utiliza el indicador MACD simple y efectivo para identificar tendencias a medio y largo plazo, e implementa una clara tendencia siguiendo la lógica. Tiene la capacidad de capturar tendencias, así como medidas razonables de control de riesgos. Con más optimizaciones, la estrategia puede convertirse en un sistema de comercio de cantidades muy práctico. Es adecuado para los inversores que buscan ganancias constantes a largo plazo sobre las ganancias a corto plazo.


/*backtest
start: 2022-11-14 00:00:00
end: 2023-10-27 05:20:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's MACD Strategy v1.0", shorttitle = "MACD str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
usefil = input(false, defval = false, title = "Use EMA filter")
lenfil = input(5, defval = 5, minval = 1, maxval = 50, title = "EMA filter period")

fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

//Signals
ema = ema(close, lenfil)
trend = crossover(delta, 0) == true ? 1 : crossunder(delta, 0) == true ? -1 : trend[1]
up = trend == 1 and (low < ema or usefil == false) ? 1 : 0
dn = trend == -1 and (high > ema or usefil == false) ? 1 : 0

plot(ema, color = black, transp = 0)

if (up == 1)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

if (dn == 1)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)


Más.