Estrategia de seguimiento de tendencias MACD


Fecha de creación: 2023-12-11 14:57:00 Última modificación: 2023-12-11 14:57:00
Copiar: 0 Número de Visitas: 649
1
Seguir
1621
Seguidores

Estrategia de seguimiento de tendencias MACD

Descripción general

La estrategia de seguimiento de la tendencia del MACD es una estrategia de negociación cuantitativa basada en el indicador MACD. La estrategia determina la tendencia del mercado mediante la identificación de las señales de la horquilla dorada y la horquilla muerta del indicador MACD, lo que permite seguir la tendencia del precio de las acciones.

Principio de estrategia

La lógica central de la estrategia de seguimiento de tendencias del MACD es:

  1. Calcular las líneas MACD y las líneas de señal.
  2. Cuando la línea MACD de abajo hacia arriba rompe el 0, registra el punto más alto en ese momento y espera la señal de la horca muerta.
  3. Cuando la línea MACD desciende de arriba a abajo y cae por debajo de 0, se registra el punto más bajo en ese momento y se espera la señal de la horquilla.
  4. Cuando ocurre un tenedor de oro, se registra el precio de cierre actual como punto de entrada, se establece un punto de parada y se abre una posición.
  5. Cuando se produce un dead fork, se registra el precio de cierre actual como punto de entrada para hacer un shorting, se establece un punto de parada y se abre un shorting.
  6. Cuando se mantiene una posición de más de una vez, se obtiene una ganancia si la rentabilidad alcanza el objetivo predeterminado o si el retiro alcanza el punto de parada.
  7. Cuando se mantiene una posición de corto plazo, se obtiene una ganancia si la rentabilidad alcanza el objetivo predeterminado o si el retiro alcanza el punto de parada.

Con este mecanismo de seguimiento de tendencias, la estrategia puede capturar el cambio de tendencia en el mercado a tiempo y generar ganancias.

Análisis de las ventajas

La estrategia de seguimiento de tendencias en el MACD tiene las siguientes ventajas:

  1. La fuente de la señal de la estrategia es la única clara, generada directamente por el indicador MACD, evitando la interferencia de la señal.
  2. Utiliza la característica de la línea rápida y lenta de la bifurcación de la bifurcación de la MACD para determinar la dirección de la tendencia del mercado y determinar la precisión.
  3. La tendencia de las inversiones en el tiempo es muy rentable.
  4. El riesgo está controlado y hay un mecanismo de suspensión de pérdidas

Análisis de riesgos

Los riesgos de seguir una tendencia en el MACD son:

  1. Los indicadores MACD son propensos a generar señales falsas que pueden conducir a pérdidas en operaciones de línea demasiado corta.
  2. La configuración incorrecta de los puntos de parada puede aumentar la pérdida individual.
  3. El seguimiento de la proporción de ganancias y los puntos de parada son difíciles de equilibrar, y existe el riesgo de que el seguimiento excesivo cause pérdidas.

En relación con los riesgos mencionados, se pueden tomar las siguientes medidas de optimización:

  1. En combinación con otros indicadores, filtra las señales falsas.
  2. El punto de parada de ajuste dinámico.
  3. Optimización de los parámetros para el seguimiento de las tasas de ganancias y los puntos de parada.

Dirección de optimización

Las estrategias de seguimiento de tendencias del MACD se pueden optimizar en los siguientes aspectos:

  1. Optimización de los parámetros del indicador MACD, reduciendo la tasa de falsedad de señales. Se puede probar MACD con diferentes parámetros de ciclo.

  2. Para aumentar el volumen de transacciones, se puede configurar la condición de volumen de transacciones mínimo.

  3. Configuración de un mecanismo de seguimiento de pérdidas dinámicas. El punto de parada se puede ajustar en tiempo real según la fluctuación.

  4. Optimización de la lógica de determinación de señales para abrir posiciones. Se pueden establecer condiciones de activación de señales más estrictas.

  5. En combinación con un modelo de aprendizaje automático para filtrar señales. Se puede entrenar a los modelos para juzgar la fiabilidad de las señales.

Resumir

La estrategia de seguimiento de tendencias del MACD es una estrategia cuantitativa más madura en general. La estrategia utiliza el indicador MACD para determinar la dirección de la tendencia del mercado, junto con el riesgo de control del mecanismo de pérdida, para poder seguir eficazmente la tendencia de los precios de las acciones. Pero el indicador MACD en sí mismo también tiene ciertos defectos y es propenso a generar señales falsas.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-10 00:00:00
end: 2023-12-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MACD Cross Strategy", overlay=true)

// Get MACD values
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
var float entryLongPrice = na
var float entryShortPrice = na

var float highestLongProfit = 0
var float highestShortProfit = 0

var float highestMACD = 0
var float lowestMACD = 0
var bool haveOpenedLong = false
var bool haveOpenedShort = false

var float stoploss = 0.04 // To be adjust for different investment
var float minProfit = 0.05 // To be adjust for different investment

if macdLine > 0
    lowestMACD := 0
    highestMACD := math.max(highestMACD, macdLine)
    haveOpenedShort := false
else
    highestMACD := 0
    lowestMACD := math.min(lowestMACD, macdLine)
    haveOpenedLong := false

// Enter long position when MACD line crosses above the signal line
if ta.crossover(macdLine, signalLine) and macdLine < highestMACD and macdLine > 0 and haveOpenedLong == false
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", from_entry = "Long", stop=close*(1 - stoploss))
    entryLongPrice := close
    haveOpenedLong := true

if ta.crossunder(macdLine, signalLine) and macdLine > lowestMACD and macdLine < 0 and haveOpenedShort == false
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", from_entry = "Short", stop=close*(1 + stoploss))
    entryShortPrice := close
    haveOpenedShort := true

// log.info("entryLongPrice:{0}", entryLongPrice)
if strategy.position_size > 0
    profit = close - entryLongPrice
    log.info("profit:{0}", profit)
    if profit > 0
        highestLongProfit := math.max(highestLongProfit, profit)
        if profit / entryLongPrice > minProfit and highestLongProfit * 0.8 > profit
            strategy.close("Long")
            highestLongProfit := 0

if strategy.position_size < 0
    profit = entryShortPrice - close
    if profit > 0
        highestShortProfit := math.max(highestShortProfit, profit)
        log.info("highestShortProfit={0}, profit={1}", highestShortProfit, profit)
        if profit / entryShortPrice > minProfit and highestShortProfit * 0.8 > profit
            strategy.close("Short")
            highestShortProfit := 0