
La estrategia es un sistema de trading cuantitativo avanzado basado en MACD (Moving Average Convergence/Divergence Indicator) que mejora la precisión de las decisiones de trading mediante la visualización de un fondo dinámico y una variedad de combinaciones de parámetros predeterminados. El núcleo de la estrategia consiste en capturar los puntos de conversión de las tendencias del mercado a través de la señal cruzada del indicador MACD y mostrar el estado de vacío del mercado de manera visual.
La estrategia utiliza diez configuraciones de parámetros MACD diferentes, incluidas las configuraciones estándar ([12, 26, 9], [5, 35, 5], [19, 39, 9], etc., para adaptarse a diferentes entornos de mercado y estilos de negociación. Cuando la línea MACD se cruza con la línea de señal de oro, el sistema genera una señal de compra; cuando se cruza con la línea de señal de muerte, el sistema genera una señal de venta. La estrategia de señales mejora la detección visual mediante el cambio de color de fondo dinámico (verde para múltiple y rojo para blanco) para ayudar a los operadores a comprender mejor el movimiento del mercado.
Esta es una versión avanzada de la estrategia MACD, con una estructura completa y una lógica clara. La usabilidad y la operabilidad de la estrategia se han mejorado considerablemente a través de la configuración de múltiples parámetros y la retroalimentación visual dinámica. Aunque existen algunos riesgos inherentes, la estrategia tiene el potencial de convertirse en un sistema de negociación sólido después de mejorar la dirección de optimización que ofrece.
/*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)