La estrategia de cruce de dos promedios móviles (EMA9/20) es una estrategia de negociación cuantitativa basada en el cruce de dos promedios móviles exponenciales (EMA). Esta estrategia utiliza la EMA de 9 días y la EMA de 20 días como señales de negociación, generando señales de compra o venta cuando los dos promedios móviles se cruzan. Además, la estrategia emplea el cruce entre el precio y la EMA de 9 días como una señal auxiliar, así como un trailing stop para gestionar el riesgo de negociación.
El principio básico de esta estrategia es capturar las tendencias del mercado utilizando el cruce de dos promedios móviles con períodos diferentes. Cuando el promedio móvil a corto plazo (9 días EMA) cruza por encima del promedio móvil a largo plazo (20 días EMA), indica una tendencia al alza potencial en el mercado, y la estrategia genera una señal de compra. Por el contrario, cuando el promedio móvil a corto plazo cruza por debajo del promedio móvil a largo plazo, sugiere una tendencia a la baja potencial, y la estrategia genera una señal de venta.
Además de las señales de cruce de la media móvil, la estrategia también incorpora el cruce entre el precio y la media móvil a corto plazo (EMA de 9 días) como señal auxiliar. Cuando el precio cruza por encima de la EMA de 9 días, también genera una señal de compra, y cuando el precio cruza por debajo de la EMA de 9 días, genera una señal de venta. Esto permite capturar más oportunamente los cambios en las tendencias del mercado.
Para controlar el riesgo, la estrategia emplea un mecanismo de stop de seguimiento. Una vez que una operación entra en un estado rentable, el stop de seguimiento ajusta continuamente la posición de stop-loss de acuerdo con los movimientos de precios hasta que el precio rompe el nivel de stop-loss en la dirección opuesta, bloqueando así las ganancias al tiempo que limita las pérdidas potenciales.
Simplicidad: La estrategia se basa en el principio clásico de los cruces medios móviles, lo que facilita su comprensión e implementación.
Seguimiento de tendencias: al utilizar el cruce de dos promedios móviles con períodos diferentes, la estrategia puede capturar eficazmente las principales tendencias del mercado.
La introducción del mecanismo de stop-loss permite el cierre oportuno de posiciones cuando la tendencia se invierte, controlando el riesgo a la baja.
Flexibilidad de parámetros: Los parámetros de la estrategia (como los períodos de media móvil, los puntos de stop-loss, etc.) pueden optimizarse y ajustarse según los diferentes mercados e instrumentos para adaptarse a las diferentes condiciones del mercado.
Comercio frecuente: Dado que la estrategia emplea tanto señales de cruce de promedio móvil como de cruce de precios, puede conducir a una mayor frecuencia de negociación, aumentando así los costos de negociación.
Mercados agitados: en mercados agitados o limitados al rango, la estrategia puede generar más señales falsas, lo que resulta en una menor rentabilidad.
Sensibilidad a los parámetros: el rendimiento de la estrategia puede ser sensible a la selección de parámetros, y diferentes parámetros pueden producir resultados significativamente diferentes.
Filtración de señales: Además de las señales de cruce de la media móvil y de cruce de precios, introduzca otros indicadores técnicos (como RSI, MACD, etc.) como condiciones de filtrado para reducir las señales falsas.
Parámetros dinámicos: ajustar dinámicamente los parámetros de la estrategia (como los períodos de media móvil, puntos de stop-loss, etc.) basados en factores como la volatilidad del mercado y la fuerza de la tendencia para adaptarse a diferentes estados del mercado.
Tamaño de la posición: ajustar dinámicamente los tamaños de las posiciones en función de las tendencias del mercado y la fuerza de las señales, aumentando el tamaño de la posición cuando la fuerza de la tendencia es alta y reduciendo el tamaño de la posición cuando las tendencias no son claras o las señales son más débiles.
Adaptación a múltiples instrumentos: ampliar la estrategia a múltiples instrumentos y mercados y, mediante el análisis de la diversificación y la correlación, reducir el riesgo general y mejorar la estabilidad de los rendimientos.
La Estrategia de cruce de promedios móviles dobles - EMA9/20 es una estrategia de negociación cuantitativa simple y práctica que captura las tendencias del mercado a través del cruce de dos promedios móviles con períodos y cruces de precios diferentes, mientras que utiliza paradas de seguimiento para controlar el riesgo. La estrategia tiene una lógica clara, es fácil de entender e implementar, lo que la hace adecuada para que los principiantes la aprendan y usen. Sin embargo, la estrategia también tiene algunas limitaciones, como un bajo rendimiento en mercados agitados y sensibilidad a la selección de parámetros. Por lo tanto, en la aplicación práctica, es necesario optimizar y mejorar la estrategia de acuerdo con las características específicas del mercado y el instrumento, como introducir filtrado de señales, ajuste de parámetros dinámicos, tamaño de posición y otros métodos para mejorar la rentabilidad y estabilidad de la estrategia de negociación. En general, la Estrategia de cruce de promedios dobles - EMA9/20 proporciona un buen marco básico cuantitativo y vale la pena seguir investigando y
/*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")