Estrategia de negociación MACD DEMA

El autor:¿ Qué pasa?, Fecha: 2023-09-19 16:10:19
Las etiquetas:

Resumen general

Esta estrategia combina los indicadores MACD y DEMA para generar señales comerciales de cruces.

Principio de la estrategia

  1. Calcular la línea rápida DEMAfast como el valor DEMA del precio con la duración del período fastmacd.

  2. Calcular la línea lenta DEMAslow como el valor DEMA del precio con la duración del período slowmacd.

  3. La línea MACD es la diferencia entre las líneas rápidas y lentas: DEMAfast - DEMAAslow.

  4. La línea de señal es el valor DEMA de la línea MACD con la señal del período macd.

  5. Los cruces entre el MACD y las líneas de señal generan señales comerciales: largo en la cruz dorada, corto en la cruz de la muerte.

  6. Añadir filtros de fecha para generar señales solo dentro del rango de fechas especificado.

Análisis de ventajas

Las principales ventajas de esta estrategia son las siguientes:

  1. La combinación de MACD y DEMA complementa los indicadores.

  2. El diseño de dos rieles DEMA reduce el retraso y el ruido del indicador MACD.

  3. Las señales de cruce del MACD son fáciles de interpretar, limpias y simples.

  4. El ajuste flexible de los filtros de fecha satisface las diferentes necesidades estratégicas.

  5. Los parámetros del MACD pueden optimizarse para proporcionar flexibilidad en las condiciones del mercado.

Análisis de riesgos

Principales riesgos de esta estrategia:

  1. El MACD lucha como indicador de tendencia en mercados lateralmente agitados.

  2. Los cruces pueden generar señales falsas, necesita un filtrado efectivo.

  3. La estrategia de stop loss no es robusta, propensa a paradas de gran tamaño.

  4. La optimización de parámetros no es lo suficientemente completa, gran diferencia de rendimiento entre productos.

  5. Los filtros de fecha son demasiado rígidos, necesita ajuste dinámico.

Soluciones:

  1. Añadir un indicador de impulso para evitar el mercado lateral.

  2. Agregue condiciones de precio para filtrar falsos cruces.

  3. Establezca un stop loss inicial y posterior razonable.

  4. Parámetros de prueba en todos los productos, optimización dinámica.

  5. Ajuste las fechas de filtro basado en condiciones en tiempo real.

Direcciones de optimización

Algunas mejoras potenciales para la estrategia:

  1. Añadir un filtro de volumen para señales cruzadas.

  2. Optimizar las combinaciones de parámetros MACD en diferentes productos.

  3. Agregue estrategias de stop como fijación o trailing stop loss.

  4. Ajustar dinámicamente el stop loss en función de la volatilidad del mercado.

  5. Seguimiento de la fuerza de la tendencia para el dimensionamiento de la posición.

Resumen de las actividades

La estrategia MACD DEMA combina las fortalezas de ambos indicadores, utilizando cruces para capturar tendencias. Pero el MACD está inherentemente rezagado, tenga cuidado con las señales falsas. También optimice las paradas para evitar liquidaciones irrazonables. Para el comercio en vivo, se recomienda una entrada cautelosa basada en parámetros optimizados y mejoras continuas.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(" MACD DEMA STRATEGY ", overlay=true)

source=close
price=source



fastmacd = input(12,title='MACD Fast  Line Length')
slowmacd = input(26,title='MACD Slow Line Length')
signalmacd = input(9,title='Signal Line Length')

macdslowline1 = ema(close,slowmacd)
macdslowline2 = ema(macdslowline1,slowmacd)
DEMAslow = ((2 * macdslowline1) - macdslowline2 )

macdfastline1 = ema(close,fastmacd)
macdfastline2 = ema(macdfastline1,fastmacd)
DEMAfast = ((2 * macdfastline1) - macdfastline2)

MACDLine = (DEMAfast - DEMAslow)

SignalLine1 = ema(MACDLine, signalmacd)
SignalLine2 = ema(SignalLine1, signalmacd)
SignalLine = ((2 * SignalLine1) - SignalLine2 )


MACDSignal = SignalLine-MACDLine


colorbar= MACDSignal>0?green:red




yearfrom = input(2018)
yearuntil =input(2019)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)







if ( crossover(MACDLine,SignalLine) ) 
    strategy.entry("MMAL", strategy.long, stop=close, oca_name="TREND",  comment="AL")
    
else
    strategy.cancel(id="MMAL")


if (  crossunder(MACDLine,SignalLine) ) 

    strategy.entry("MMSAT", strategy.short,stop=close, oca_name="TREND",  comment="SAT")
else
    strategy.cancel(id="MMSAT")
    
    
    
    
    
    
    
    
    
    
    
    


Más.