La estrategia combina los indicadores MACD y DEMA de doble vía para formar una señal de negociación a través de un forko muerto de metal de línea múltiple. La estrategia captura el momento de la vuelta del indicador MACD y utiliza el filtro DEMA para obtener una entrada óptima.
Calcula el DEMAfast de la línea rápida, toma el valor DEMA del precio, la longitud del ciclo es fastmacd。
Calcula la línea lenta DEMAslow, toma el valor DEMA de prices, la longitud del ciclo es slowmacd。
La línea MACD es la diferencia entre la línea rápida y la línea lenta: DEMAfast - DEMAslow。
La línea de señal es el valor de DEMA de la línea MACD, y la longitud de ciclo es signalmacd。
El cruce de líneas múltiples como señal de comercio: el tenedor de oro hace más, el tenedor muerto hace vacío.
Añade un filtro de año y mes para emitir señales solo en el rango de fechas especificado.
La estrategia tiene las siguientes ventajas:
En combinación con MACD y DEMA, los indicadores se complementan. La captura de MACD es el cambio, la filtración de DEMA mejora la calidad de la señal.
El diseño de doble vía de DEMA reduce el retraso y el ruido de los indicadores MACD.
La intersección de líneas múltiples es fácil de juzgar, la generación de señales es simple y clara.
Se puede configurar un rango de fechas de negociación flexible para adaptarse a las necesidades de diferentes estrategias.
Los parámetros del MACD se pueden optimizar para una combinación flexible y adaptarse a diferentes situaciones.
Los principales riesgos de esta estrategia son los siguientes:
El MACD es un indicador de seguimiento de tendencias que no es adecuado para un mercado horizontal convulso.
La intersección de varios espacios puede generar falsas señales, por lo que se requiere un filtro eficaz.
Las estrategias de detención de pérdidas son imperfectas y pueden ser excesivas.
La optimización de los parámetros no es exhaustiva, y el efecto de las diferentes variedades varía considerablemente.
El filtro de fecha de transacción es demasiado rígido y debe ajustarse dinámicamente.
Resolución de las mismas:
Combinado con el indicador de movimiento, evita el lateral.
Aumentar las condiciones de precios, filtrar las señales de cruce falsas.
Establezca un stop loss inicial razonable y un stop loss de seguimiento.
Prueba de la eficacia de varios parámetros de variedad, optimización dinámica.
La fecha de filtración se ajusta a la situación en tiempo real.
La estrategia puede considerarse para las siguientes optimizaciones:
El aumento de los indicadores de tráfico para filtrar las señales.
Optimización de la combinación de parámetros MACD para probar datos de diferentes variedades.
Establecer estrategias de stop loss, como paradas fijas, seguimiento de stop loss, etc.
Ajuste dinámico de las posiciones de stop loss en función de la volatilidad del mercado.
El seguimiento de la tendencia es fuerte y débil, ajuste el tamaño de la posición.
La estrategia MACD DEMA combina la ventaja de los dos indicadores, aprovechando la tendencia de captura de señales cruzadas. Pero la naturaleza de MACD es retardada, hay que tener en cuenta la filtración de señales falsas. Además, la estrategia de parada de pérdidas debe optimizarse para reducir las pérdidas irracionales.
/*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")