Esta estrategia es un sistema de negociación cuantitativo avanzado basado en el indicador de Divergencia de Convergencia de la Media Móvil (MACD, por sus siglas en inglés), que mejora las decisiones comerciales a través de una pantalla de fondo dinámica y múltiples combinaciones de parámetros preestablecidos.
La estrategia emplea diez parámetros MACD diferentes preestablecidos, incluidos Standard (12,26,9), Short-term (5,35,5), Long-term (19,39,9), etc., para adaptarse a diferentes entornos de mercado y estilos de negociación. El sistema genera señales de compra cuando la línea MACD cruza por encima de la línea de señal (cruz dorada) y señales de venta cuando cruza por debajo (cruz de muerte).
Esta es una versión avanzada bien estructurada y lógicamente sólida de la estrategia MACD. A través de múltiples ajustes previos de parámetros y retroalimentación visual dinámica, mejora significativamente la practicidad y operabilidad de la estrategia. Aunque existen riesgos inherentes, la estrategia tiene el potencial de convertirse en un sistema de negociación robusto con las optimizaciones sugeridas. Se aconseja a los operadores que realicen pruebas de retroceso completas antes de la implementación en vivo y elijan la configuración de parámetros apropiada basada en condiciones específicas del mercado.
/*backtest start: 2024-10-12 00:00:00 end: 2024-11-11 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Hanzo - Top 10 MACD Strategy", overlay=false) // MACD in a separate pane // Define dropdown options for MACD settings macdOption = input.string(title="Select MACD Setting", defval="Standard (12, 26, 9)", options=["Standard (12, 26, 9)", "Short-Term (5, 35, 5)", "Long-Term (19, 39, 9)", "Scalping (3, 10, 16)", "Cryptocurrency (20, 50, 9)", "Forex (8, 17, 9)", "Conservative (24, 52, 18)", "Trend-Following (7, 28, 7)", "Swing Trading (5, 15, 5)", "Contrarian (15, 35, 5)"]) // MACD setting based on user selection var int fastLength = 12 var int slowLength = 26 var int signalLength = 9 switch macdOption "Standard (12, 26, 9)" => fastLength := 12 slowLength := 26 signalLength := 9 "Short-Term (5, 35, 5)" => fastLength := 5 slowLength := 35 signalLength := 5 "Long-Term (19, 39, 9)" => fastLength := 19 slowLength := 39 signalLength := 9 "Scalping (3, 10, 16)" => fastLength := 3 slowLength := 10 signalLength := 16 "Cryptocurrency (20, 50, 9)" => fastLength := 20 slowLength := 50 signalLength := 9 "Forex (8, 17, 9)" => fastLength := 8 slowLength := 17 signalLength := 9 "Conservative (24, 52, 18)" => fastLength := 24 slowLength := 52 signalLength := 18 "Trend-Following (7, 28, 7)" => fastLength := 7 slowLength := 28 signalLength := 7 "Swing Trading (5, 15, 5)" => fastLength := 5 slowLength := 15 signalLength := 5 "Contrarian (15, 35, 5)" => fastLength := 15 slowLength := 35 signalLength := 5 // MACD Calculation [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength) macdHist = macdLine - signalLine // Buy and Sell conditions based on MACD crossovers enterLong = ta.crossover(macdLine, signalLine) exitLong = ta.crossunder(macdLine, signalLine) // Execute buy and sell orders with price labels in the comments if (enterLong) strategy.entry("Buy", strategy.long, comment="Buy at " + str.tostring(close, "#.##")) if (exitLong) strategy.close("Buy", comment="Sell at " + str.tostring(close, "#.##")) // Plot the signal price using plotchar for buy/sell prices //plotchar(enterLong ? close : na, location=location.belowbar, color=color.green, size=size.small, title="Buy Price", offset=0) //plotchar(exitLong ? close : na, location=location.abovebar, color=color.red, size=size.small, title="Sell Price", offset=0) // Background highlighting based on bullish or bearish MACD isBullish = macdLine > signalLine isBearish = macdLine < signalLine // Change background to green for bullish periods and red for bearish periods bgcolor(isBullish ? color.new(color.green, 90) : na, title="Bullish Background") bgcolor(isBearish ? color.new(color.red, 90) : na, title="Bearish Background") // Plot the MACD and Signal line in a separate pane plot(macdLine, title="MACD Line", color=color.blue, linewidth=2) plot(signalLine, title="Signal Line", color=color.orange, linewidth=2) hline(0, "Zero Line", color=color.gray) plot(macdHist, title="MACD Histogram", style=plot.style_histogram, color=color.red)