Estrategia global de media móvil múltiple

El autor:¿ Qué pasa?, Fecha: 2023-12-22 11:56:42
Las etiquetas:

img

Resumen general

La estrategia de media móvil múltiple es una estrategia de análisis técnico muy versátil y poderosa. Combina múltiples medias móviles en diferentes marcos de tiempo para proporcionar una visión completa de las tendencias del mercado. La estrategia genera señales de compra y venta claras para identificar posibles puntos de entrada y salida. También ofrece una gran personalización para permitir a los usuarios ajustar las longitudes de media móvil en función de sus preferencias y objetivos comerciales.

Principios

El núcleo de esta estrategia es calcular y rastrear múltiples promedios móviles en diferentes períodos, específicamente los promedios móviles de 10 días, 20 días, 30 días hasta 100 días. Estos promedios móviles se establecen como el precio de cierre promedio durante los últimos 10, 20, 30 días, etc. Por ejemplo, el promedio móvil de 20 días es el precio de cierre promedio durante los últimos 20 días.

Cuando el precio de cierre de hoy está por encima de todos estos promedios móviles, se genera una señal de compra. Cuando el precio de cierre de hoy está por debajo de todos estos promedios móviles, se genera una señal de venta. Por lo tanto, las señales solo se activan cuando todos los promedios móviles en diferentes marcos de tiempo apuntan en la misma dirección. Esto filtra mucho ruido y hace que las señales sean más confiables.

Ventajas

  1. Proporciona información a través de múltiples escalas de tiempo, adaptable a diferentes entornos de mercado

  2. Filtra el ruido a través de múltiples confirmaciones, haciendo las señales más confiables

  3. Reglas comerciales claras, fáciles de entender y aplicar

  4. Muy personalizable para satisfacer los requisitos personalizados

  5. Proporciona orientación para las entradas, las pérdidas de detención y las ganancias, facilitando la gestión del riesgo

Riesgos y soluciones

  1. Múltiples medias móviles pueden cruzarse durante los mercados variados, lo que conduce a señales poco claras.

  2. La probabilidad de que los precios futuros rompan varias medias móviles es baja, potencialmente faltando algunas operaciones.

  3. Las señales están rezagadas, incapaces de captar las inversiones de tendencia temprano.

  4. El número de operaciones generadas puede ser bajo para obtener un ingreso constante.

Direcciones de optimización

  1. Ajuste de parámetros: ajustar el número y la longitud de las medias móviles para encontrar la combinación óptima de parámetros.

  2. Combinar otros indicadores: la adición de indicadores como el MACD y el RSI puede mejorar la resiliencia de la estrategia.

  3. Estrategia conjunta: Junto con otras estrategias como los sistemas de ruptura y el seguimiento de tendencias puede mejorar la robustez.

  4. Optimización automática: prueba algorítmica de diferentes conjuntos de parámetros para maximizar las funciones objetivas y encontrar parámetros óptimos.

Conclusión

La Estrategia Comprehensiva de MAV es una herramienta analítica muy versátil y poderosa. Proporciona información sobre múltiples escalas de tiempo, señales confiables, facilidad de uso y comprensibilidad, y alta personalización. Al mismo tiempo, tiene algunas limitaciones que se pueden abordar a través de ajuste de parámetros, combinaciones de modelos, etc. para la adaptación a regímenes de mercado más complejos. La estrategia puede servir como una herramienta de aprendizaje para ayudar al desarrollo de habilidades de análisis técnico, así como la implementación práctica del comercio después de ajustes adaptados a las necesidades individuales.


/*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)


Más.