Esta estrategia construye señales comerciales basadas en el indicador MACD DEMA de Toff
Las reglas de negociación son: ir largo cuando el MACD de retraso cero cruza por encima de la línea 0, y ir corto cuando el MACD cruza por debajo de la línea 0.
La ventaja de esta estrategia de MACD de retraso cero es que puede capturar los cambios de tendencia de manera más sensible. El uso de DEMA en lugar de EMA también filtra fallas. Sin embargo, el propio MACD tiene una capacidad de juicio limitada sobre la acción de precios complejos, con cierto riesgo de señales falsas.
En resumen, la estrategia de ruptura de MACD DEMA de retraso cero funciona muy bien en movimientos de tendencia fuertes, capturando oportunidades rápidamente. Pero tiene un rendimiento inferior en períodos de rango, lo que requiere un uso cauteloso. Solo a través de la optimización continua y el estricto control de riesgos se puede aplicar con éxito esta estrategia a largo plazo.
/*backtest start: 2023-01-01 00:00:00 end: 2023-09-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // strategy(title="Patron04 MACD DEMA Strategy",default_qty_type = strategy.percent_of_equity,default_qty_value = 3500, overlay=true) testStartYear = input(2000, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2100, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(31, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) testPeriod() => time >= testPeriodStart and time <= testPeriodStop ? true : false sma = input(12,title='DEMA Courte') lma = input(26,title='DEMA Longue') tsp = input(9,title='Signal') dolignes = input(true,title="Lignes") MMEslowa = ema(close,lma) MMEslowb = ema(MMEslowa,lma) DEMAslow = ((2 * MMEslowa) - MMEslowb ) MMEfasta = ema(close,sma) MMEfastb = ema(MMEfasta,sma) DEMAfast = ((2 * MMEfasta) - MMEfastb) LigneMACDZeroLag = (DEMAfast - DEMAslow) MMEsignala = ema(LigneMACDZeroLag, tsp) MMEsignalb = ema(MMEsignala, tsp) Lignesignal = ((2 * MMEsignala) - MMEsignalb ) MACDZeroLag = (LigneMACDZeroLag - Lignesignal) long = LigneMACDZeroLag > 0 short = LigneMACDZeroLag < 0 if testPeriod() strategy.entry("Long", strategy.long,when=long) strategy.entry("Short", strategy.short,when=short)