La estrategia MACD Valley Detector es una estrategia de trading basada en el indicador MACD. La estrategia genera señales de compra al detectar valles en el indicador MACD. Cuando el indicador MACD forma un valle, el valor MACD es menor o igual a -0.4, y la diferencia entre el MACD y su línea de señal es menor que 0, la estrategia emite una señal de compra y establece un precio de toma de ganancias.
El núcleo de la estrategia del detector de valle del MACD es utilizar el indicador MACD para capturar oportunidades de reversión potenciales. El indicador MACD se calcula por la diferencia entre dos promedios móviles exponenciales (EMA), que reflejan los cambios en el impulso del precio.
La estrategia utiliza las siguientes condiciones para determinar el valle MACD:
Cuando las condiciones anteriores se cumplen simultáneamente, la estrategia la considera como un valle MACD y emite una señal de compra. Al mismo tiempo, la estrategia establece un precio fijo de ganancia, que es el precio de compra más una diferencia de precio fija (takeProfitValue).
La estrategia del detector de valle MACD es una estrategia de trading basada en la detección de valles en el indicador MACD. Al capturar los valles del indicador MACD, la estrategia intenta encontrar oportunidades potenciales de reversión y realizar compras. La estrategia utiliza múltiples condiciones para confirmar las señales y establece un precio fijo de toma de ganancias. Aunque esta estrategia tiene ciertas ventajas, como la utilización del indicador MACD ampliamente utilizado y la confirmación de múltiples condiciones, también tiene algunos riesgos y limitaciones, como retraso, parámetros fijos, falta de stop-loss claro, etc. Para mejorar la estrategia, se puede considerar la introducción de stop-loss dinámico, optimización de parámetros, combinación con otros indicadores para filtrar y métodos dinámicos de toma de ganancias.
/*backtest start: 2024-03-12 00:00:00 end: 2024-04-11 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © freditansari //@version=5 //@version=5 strategy("MACD Valley Detector", overlay=true) fastLength = input(12) slowlength = input(26) MACDLength = input(9) MACD = ta.ema(close, fastLength) - ta.ema(close, slowlength) aMACD = ta.ema(MACD, MACDLength) delta = MACD - aMACD rsi = ta.rsi(close, 14) atr = ta.atr(14) qty=1 takeProfitValue =7 // stopLossValue = 1 // close[0] < close[1] and close[1] > close[2] is_valley= delta[0] > delta[1] and delta[1]<delta[2]? 1:0 // plot(is_valley , "valley?") if(is_valley==1 and MACD<=-0.4 and delta <0) takeProfit = close +takeProfitValue action = "buy" // strategy.entry("long", strategy.long, qty=qty) // // strategy.exit("exit", "long", stop=stopLoss, limit=takeProfit) // strategy.exit("exit", "long", limit=takeProfit) alert('{"TICKER":"'+syminfo.ticker+'","ACTION":"'+action+'","PRICE":"'+str.tostring(close)+'","TAKEPROFIT":"'+str.tostring(takeProfit)+'","QTY":"'+str.tostring(qty)+'"}') if (ta.crossover(delta, 0)) stopLoss = low -0.3 takeProfit = high +0.3 strategy.entry("MacdLE", strategy.long,qty=qty, comment="MacdLE") strategy.exit("exit long", "MacdLE", limit=takeProfit) // strategy.exit("exit long", "MacdLE", stop=stopLoss, limit=takeProfit) if (ta.crossunder(delta, 0)) stopLoss = high + 0.3 takeProfit = low - 0.3 strategy.entry("MacdSE", strategy.short,qty=qty, comment="MacdSE") strategy.exit("exit long", "MacdLE", limit=takeProfit) // strategy.exit("exit short", "MacdSE", stop=stopLoss, limit=takeProfit) //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)