
La estrategia integral de múltiples promedios móviles es una estrategia de análisis técnico muy completa y universal. Combina promedios móviles de múltiples períodos de tiempo para proporcionar una visión completa de las tendencias del mercado. La estrategia ayuda a identificar puntos de entrada y salida potenciales mediante la generación de señales de compra y venta claras.
El núcleo de esta estrategia es calcular y seguir las medias móviles de varios períodos de diferentes longitudes, en concreto, las medias móviles de 10, 20, 30 y hasta 100 días. Estas medias móviles se establecen como el precio de cierre del día en comparación con el precio de cierre de un período pasado (como 10 días, 20 días, etc.). Por ejemplo, la media móvil de 20 días es el promedio de los precios de cierre de los últimos 20 días.
Cuando el precio de cierre de hoy está por encima de todas estas medias móviles, se genera una señal de compra. Cuando el precio de cierre de hoy está por debajo de todas estas medias móviles, se genera una señal de venta. De esta manera, solo se genera una señal cuando las medias móviles de todos los períodos apuntan en la misma dirección, lo que filtra muchas oportunidades de negociación de ruido y hace que la señal sea más confiable.
Proporciona una visión a varias escalas temporales y se adapta a diferentes entornos del mercado
La señal es más fiable a través de múltiples confirmaciones, filtros de ruido
Reglas claras, fáciles de entender y de aplicar
Con una alta personalización, el usuario puede ajustar los parámetros para satisfacer necesidades personalizadas
Ofrecer directrices claras para la entrada, la parada y el cierre de pérdidas, lo que ayuda a la gestión de riesgos
Cuando el mercado está en un período de oscilación, varias medias móviles pueden cruzarse entre sí, lo que genera una señal inexacta. Se puede reducir la probabilidad de cruce ajustando el número y la longitud de los ciclos de las medias móviles.
La probabilidad de que el precio rompa varias medias móviles en el futuro es menor, y es posible que se pierdan algunas oportunidades de negociación. Se puede reducir adecuadamente el número de medias móviles para reducir la dificultad de la ruptura.
Las señales producen un retraso y no pueden capturar la tendencia antes del punto de cambio de precio. Combinado con otros indicadores previos como el MACD, puede mejorar el juicio sobre el cambio de tendencia.
La cantidad de transacciones puede ser pequeña y difícil de obtener un rendimiento estable. La longitud de la media móvil puede reducirse adecuadamente o usarse en combinación con otras estrategias / indicadores.
Ajuste de parámetros: ajuste el número y la duración de los ciclos de las medias móviles para buscar la combinación de parámetros óptima. Por ejemplo, combinaciones de medias móviles de 5, 10 y 20 días que se pueden probar.
Combinación con otros indicadores: Se usa en combinación con otros indicadores como el MACD, el RSI, etc., para mejorar la resistencia de la estrategia. Los diferentes indicadores pueden complementarse.
Combinación de estrategias: combinación con otras estrategias como sistemas de ruptura, sistemas de seguimiento de tendencias, para mejorar la estabilidad. Diferentes estrategias pueden dispersar el riesgo.
Búsqueda automática de optimización: se usan algoritmos para probar automáticamente diferentes parámetros y buscar la combinación de parámetros que se espera que maximice. Se reduce la intervención humana y se mejora la eficiencia.
La estrategia integral de múltiples medias móviles es una herramienta estratégica muy completa y poderosa. Ofrece una visión a varias escalas de tiempo, la señal es más confiable, fácil de entender y de usar, y tiene una alta personalización. También existe cierta limitación, pero se puede optimizar para adaptarse a situaciones de mercado más complejas mediante la adaptación de parámetros y combinaciones con otros modelos.
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Multiple Moving Average Strategy", overlay=true)
// Function to calculate moving average
get_ma(src, length) =>
ta.sma(src, length)
// Initialize moving average lengths
ma_length_10 = 10
ma_length_20 = 20
ma_length_30 = 30
ma_length_40 = 40
ma_length_50 = 50
ma_length_60 = 60
ma_length_70 = 70
ma_length_80 = 80
ma_length_90 = 90
ma_length_100 = 100
// Calculate 10-day, 20-day, 30-day, 40-day, 50-day, 60-day, 70-day, 80-day, 90-day, and 100-day moving averages
ma_10 = get_ma(close, ma_length_10)
ma_20 = get_ma(close, ma_length_20)
ma_30 = get_ma(close, ma_length_30)
ma_40 = get_ma(close, ma_length_40)
ma_50 = get_ma(close, ma_length_50)
ma_60 = get_ma(close, ma_length_60)
ma_70 = get_ma(close, ma_length_70)
ma_80 = get_ma(close, ma_length_80)
ma_90 = get_ma(close, ma_length_90)
ma_100 = get_ma(close, ma_length_100)
// Generate Buy/Sell signals for the 10 moving averages
buy_signal = close > ma_10
sell_signal = close < ma_10
// Add conditions for each additional moving average length
buy_signal := buy_signal and (close > get_ma(close, ma_length_20))
sell_signal := sell_signal and (close < get_ma(close, ma_length_20))
buy_signal := buy_signal and (close > get_ma(close, ma_length_30))
sell_signal := sell_signal and (close < get_ma(close, ma_length_30))
buy_signal := buy_signal and (close > get_ma(close, ma_length_40))
sell_signal := sell_signal and (close < get_ma(close, ma_length_40))
buy_signal := buy_signal and (close > get_ma(close, ma_length_50))
sell_signal := sell_signal and (close < get_ma(close, ma_length_50))
buy_signal := buy_signal and (close > get_ma(close, ma_length_60))
sell_signal := sell_signal and (close < get_ma(close, ma_length_60))
buy_signal := buy_signal and (close > get_ma(close, ma_length_70))
sell_signal := sell_signal and (close < get_ma(close, ma_length_70))
buy_signal := buy_signal and (close > get_ma(close, ma_length_80))
sell_signal := sell_signal and (close < get_ma(close, ma_length_80))
buy_signal := buy_signal and (close > get_ma(close, ma_length_90))
sell_signal := sell_signal and (close < get_ma(close, ma_length_90))
buy_signal := buy_signal and (close > get_ma(close, ma_length_100))
sell_signal := sell_signal and (close < get_ma(close, ma_length_100))
// Plot Buy/Sell signals on the chart
plotshape(buy_signal, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(sell_signal, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)
// Execute long buy order when all ten moving averages give a Buy signal
if (buy_signal)
strategy.entry("Buy", strategy.long)
// Execute sell order when all ten moving averages give a Sell signal
if (sell_signal)
strategy.close("Buy")
// Execute short sell order when all ten moving averages give a Sell signal
if (sell_signal)
strategy.entry("Sell", strategy.short)
// Execute buy order when all ten moving averages give a Buy signal
if (buy_signal)
strategy.close("Sell")
// Plot closing price and moving averages on the chart
plot(close, title="Close", color=color.blue)
plot(ma_10, title="MA 10", color=color.orange)
plot(ma_20, title="MA 20", color=color.purple)
plot(ma_30, title="MA 30", color=color.blue)
plot(ma_40, title="MA 40", color=color.red)
plot(ma_50, title="MA 50", color=color.green)
plot(ma_60, title="MA 60", color=color.yellow)
plot(ma_70, title="MA 70", color=color.fuchsia)
plot(ma_80, title="MA 80", color=color.gray)
plot(ma_90, title="MA 90", color=color.teal)
plot(ma_100, title="MA 100", color=color.maroon)