Estrategia de cruce de medias móviles dobles: EMA9/20


Fecha de creación: 2024-03-08 15:22:50 Última modificación: 2024-03-08 15:22:50
Copiar: 0 Número de Visitas: 793
1
Seguir
1617
Seguidores

Estrategia de cruce de medias móviles dobles: EMA9/20

Descripción general de la estrategia

La estrategia de cruce de dos líneas de equilibrio - EMA9/20 es una estrategia de negociación cuantitativa basada en el cruce de dos medias móviles de índices (EMA). La estrategia utiliza el 9 de la mañana y el 20 de la mañana como señales de negociación, generando una señal de compra o venta cuando se cruzan las dos líneas de equilibrio.

Principio de estrategia

El principio central de esta estrategia es el uso de la intersección de las medias móviles del índice de dos períodos diferentes para capturar la tendencia del mercado. Cuando el corto plazo promedio (EMA de 9 días) cruza el largo plazo promedio (EMA de 20 días), lo que indica que el mercado podría entrar en una tendencia alcista, la estrategia genera una señal de compra; por el contrario, cuando el corto plazo promedio (EMA de 9 días) cruza el largo plazo promedio, lo que indica que el mercado podría entrar en una tendencia bajista, la estrategia genera una señal de venta.

Además de la señal de cruce de la línea media, la estrategia también introduce el cruce del precio con la línea media a corto plazo (EMA de 9 días) como señal auxiliar. Cuando el precio está por encima de la EMA de 9 días, también se genera una señal de compra; cuando el precio está por debajo de la EMA de 9 días, también se genera una señal de venta.

Para controlar el riesgo, la estrategia utiliza el método de trailing stop. Una vez que la operación entra en un estado de ganancia, el trailing stop continuamente ajusta la posición de parada con los cambios en el precio hasta que el precio revierte la posición de parada, lo que bloquea las ganancias y limita las pérdidas potenciales.

Ventajas estratégicas

  1. Sencillo y fácil de entender: la estrategia se basa en el clásico principio de la cruz de línea uniforme, la lógica es clara, fácil de entender e implementar.

  2. El seguimiento de tendencias: mediante el cruce de líneas medias en dos períodos diferentes, la estrategia puede capturar eficazmente las principales tendencias del mercado.

  3. Detención a tiempo: Introducción de un mecanismo de detención móvil, que permite cerrar posiciones a tiempo cuando la tendencia se invierte, controlando el riesgo de bajada.

  4. Flexibilidad de parámetros: los parámetros de la estrategia (como el ciclo de la línea media, el número de puntos de parada, etc.) se pueden optimizar y ajustar según los diferentes mercados y variedades para adaptarse a diferentes entornos de mercado.

Riesgo estratégico

  1. Negociación frecuente: debido a que la estrategia utiliza simultáneamente las señales de cruce de línea media y de cruce de precios, puede dar lugar a una mayor frecuencia de negociación, lo que aumenta el costo de la operación.

  2. Mercado en crisis: Esta estrategia puede generar más señales erróneas cuando los mercados están en crisis o en reestructuración, lo que reduce los niveles de ganancias.

  3. Sensible a los parámetros: el rendimiento de esta estrategia puede ser sensible a la selección de parámetros, y diferentes parámetros pueden producir resultados muy diferentes.

Dirección de optimización

  1. Filtración de señales: Basado en las señales de cruce de línea media y cruce de precios, se introducen otros indicadores técnicos (como RSI, MACD, etc.) como condiciones de filtración para reducir las señales erróneas.

  2. Parámetros dinámicos: los parámetros de la estrategia se ajustan dinámicamente en función de factores como la volatilidad del mercado y la intensidad de la tendencia (por ejemplo, el ciclo de la media, el número de puntos de parada, etc.) para adaptarse a diferentes estados del mercado.

  3. Gestión de posiciones: ajuste dinámico del tamaño de la posición según la tendencia del mercado y la intensidad de la señal, aumentando la posición cuando la tendencia es fuerte y reduciendo la posición cuando la tendencia no es clara o la señal es débil.

  4. Adaptación a múltiples variedades: Expanda la estrategia a varias variedades y mercados, reduciendo el riesgo general y aumentando la estabilidad de los ingresos a través de la diversificación de la inversión y el análisis de correlación.

Resumir

La estrategia EMA9/20 es una estrategia de comercio cuantitativa sencilla y práctica para capturar la tendencia del mercado mediante el cruce y el cruce de precios de dos medias de diferentes períodos, mientras que el uso de un stop loss móvil para controlar el riesgo. La lógica de la estrategia es clara, fácil de entender y implementar, adecuada para que los principiantes aprendan y la utilicen. Sin embargo, la estrategia también tiene algunas limitaciones, como el mal desempeño en mercados convulsos, la selección de parámetros más sensible, etc.

Código Fuente de la Estrategia
/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=5
strategy(title = "EMAs 9 / 20",
		 shorttitle = '9/20 EMAs', 
		 initial_capital = 1000,
		 overlay = true, 
		 default_qty_type = strategy.fixed,
		 commission_type = strategy.commission.cash_per_contract,
		 commission_value = 0.35,
		 default_qty_value = 1)


int trailOffset = 10
int trailPoints = 15


series float oEma9 = ta.ema(ohlc4, 9)
series float oEma20 = ta.ema(ohlc4, 20)

series bool closeCrossoverEma9 = ta.crossover(close, oEma9)
series bool closeCrossunderEma9 = ta.crossover(close, oEma9)

series bool nineCrossover20 = ta.crossover(oEma9, oEma20)
series bool nineCrossunder20 = ta.crossunder(oEma9, oEma20)

//Entry Exits

if nineCrossover20
    strategy.entry("Long 9Cross20", strategy.long, 2)
else if closeCrossoverEma9
    strategy.entry("Long 9CrossClose", strategy.long, 2)
    strategy.exit("Long 9CrossClose Exit", from_entry = "Long 9CrossClose", trail_points = trailPoints, trail_offset = trailOffset)
else if nineCrossunder20
    strategy.close("Long 9Cross20")
    
    

if nineCrossunder20
    strategy.entry("Short 9Cross20", strategy.short, 2)
else if closeCrossunderEma9
    strategy.entry("Short 9CrossClose", strategy.short, 2)
    strategy.exit("Short 9CrossClose Exit", from_entry = "Short 9CrossClose", trail_points = trailPoints, trail_offset = trailOffset)
else if nineCrossover20
    strategy.close("Short 9Cross20")