Esta es una estrategia de negociación simple basada en el cruce entre los promedios móviles rápidos y lentos. Utiliza la cruz de oro y la cruz muerta de los promedios móviles para generar señales de compra y venta. Cuando el promedio móvil rápido cruza por encima del promedio móviles lento, vaya largo; cuando el promedio móvil rápido cruza por debajo del promedio móviles lento, vaya corto. El objetivo es capturar las reversiones de tendencia observando la interacción entre los promedios móviles de diferentes períodos.
La estrategia se basa principalmente en el cruce entre un promedio móvil exponencial rápido (EMA) y un promedio móvil simple lento (SMA) para generar señales comerciales. Primero calcula un EMA rápido y un SMA lento, con períodos establecidos en 13 y 30 respectivamente. Luego, cuando el EMA rápido cruza por encima del SMA lento, se genera una señal larga; cuando el EMA rápido cruza por debajo del SMA lento, se activa una señal corta.
Específicamente, la estrategia calcula la EMA rápida y la SMA lenta utilizando maFast y maSlow. Luego define las variables enterLong y exitLong para determinar los puntos de entrada y salida. Cuando maFast> maSlow, es decir, la EMA rápida cruza por encima de la SMA lenta, establece enterLong=true para desencadenar una entrada larga; cuando maSlow> maFast, es decir, la EMA rápida cruza por debajo de la SMA lenta, establece exitLong=true para cerrar posiciones. Finalmente, la estrategia envía órdenes a través de strategy.entry cuando se cumplen las condiciones.
Por lo tanto, cuando el impulso ascendente a corto plazo abruma las tendencias a largo plazo, la EMA rápida cruza por encima de la SMA lenta, generando una señal de compra; cuando el impulso descendente a corto plazo abruma las tendencias a largo plazo, la EMA rápida cruza por debajo de la SMA lenta, produciendo una señal de venta.
La estrategia de cruce de la media móvil tiene las siguientes ventajas:
Simple y fácil de entender. Las medias móviles son indicadores comúnmente utilizados y efectivos. La lógica de cruce es sencilla. Esto hace que la estrategia sea fácil de comprender e implementar para los operadores.
La estrategia permite períodos personalizados para la EMA rápida y la SMA lenta, que se pueden ajustar para diferentes mercados, mejorando la adaptabilidad.
Las medias móviles filtran el ruido del mercado de manera efectiva. Sus cruces producen señales bastante confiables. El cruce entre los MA rápidos y lentos puede capturar giros en la tendencia más amplia.
Aplicable en diversos entornos de mercado. La estrategia funciona para tendencias y mercados de rango. Los parámetros se pueden ajustar para adaptarse a diferentes condiciones.
La estrategia se puede combinar de manera flexible con indicadores como el RSI para crear sistemas más potentes.
La estrategia también tiene algunos riesgos:
Durante las tendencias inciertas, los MA pueden cruzarse con frecuencia, causando costos de negociación y deslizamiento excesivos.
En los mercados de rango limitado, los MA pueden generar señales cruzadas ambiguas, lo que resulta en señales falsas.
Dificultad en la optimización de parámetros. Los períodos de MA afectan significativamente el rendimiento de la estrategia y requieren pruebas extensas.
Las señales de retraso: las MA son inherentemente retrasadas, por lo que las señales de cruce tienden a ser tardías y pueden perder los puntos de entrada ideales.
Falta de gestión de riesgos: la estrategia carece de lógica de stop loss y puede incurrir en grandes operaciones perdedoras.
Algunas maneras de optimizar la estrategia de cruce de la media móvil:
Añadir filtros como RSI para reducir las señales falsas.
Incorporar MAs adicionales para confirmar las señales, como una MAs de 50 días. Ir largo cuando la MAs rápida cruza por encima de la MAs media y la MAs media cruza por encima de la MAs larga en una tendencia alcista.
Implementar técnicas de stop loss como SAR parabólico para controlar los riesgos.
Optimizar los parámetros utilizando métodos como el análisis avanzado y el aprendizaje automático para mejorar el rendimiento en mercados cambiantes.
Utilice gráficos de marcos de tiempo más bajos y patrones de velas para mejorar la calidad de la señal y evitar inversiones prematuras.
Incorporar indicadores de volumen para evitar fallas. La confirmación de volumen puede hacer que las señales sean más confiables.
La estrategia de cruce de promedios móviles es una estrategia comercial cuantitativa simple pero práctica. Utiliza cruces rápidos de EMA y SMA lentos para generar señales comerciales. La estrategia es fácil de implementar y combinar con otros indicadores, pero también tiene inconvenientes como el comercio excesivo y los whips. Con mejoras adecuadas en los parámetros y la gestión de riesgos, la estrategia puede volverse más robusta y rentable. En general, el enfoque de cruce de promedios móviles vale la pena aprender y aplicar para los operadores cuantitativos.
/*backtest start: 2023-08-26 00:00:00 end: 2023-09-12 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="Moving Average Cross EMA SMA", overlay=true, initial_capital=10000, currency='USD',default_qty_type=strategy.percent_of_equity,default_qty_value=100) // Based on strategy by lsills @ https://www.tradingview.com/script/oI8loEZ8-Moving-Average-Cross-Strategy/ // Strategy has several logic alternatives - comment out the undesired logic sections below, only 1 logic section can be active // === GENERAL INPUTS === // short Ema maFastSource = input(defval = close, title = "Fast EMA Source") maFastLength = input(defval = 13, title = "Fast EMA Period", minval = 1) // long Sma maSlowSource = input(defval = close, title = "Slow SMA Source") maSlowLength = input(defval = 30, title = "Slow SMA Period", minval = 1) // longer Sma maSlowerSource = input(defval = close, title = "Slower SMA Source") maSlowerLength = input(defval = 30, title = "Slower SMA Period", minval = 1) // === SERIES SETUP === /// a couple of ma's.. maFast = ema(maFastSource, maFastLength) maSlow = sma(maSlowSource, maSlowLength) maSlower = vwma(maSlowerSource, maSlowerLength) rsi = rsi(maSlowerSource, maSlowerLength) // === PLOTTING === fast = plot(maFast, title = "Fast MA", color = red, linewidth = 2, style = line, transp = 30) slow = plot(maSlow, title = "Slow MA", color = green, linewidth = 2, style = line, transp = 30) slower = plot(maSlower, title = "Slower MA", color = teal, linewidth = 2, style = line, transp = 30) // === LOGIC === Basic - simply switches from long to short and vice-versa with each fast-slow MA cross enterLong = maFast> maSlow exitLong = maSlow> maFast // === LOGIC === Complex 1 - switches from long to short and vice-versa with each fast-slow MA cross but additional conditions must be met //enterLong = variance(maFast,maSlowLength) < 0.6 and close[0] > maFast and crossover(maFast, maSlow) and 1.1* maSlow > maSlower and rsi>rsi[2] //exitLong = variance(maFast,maSlowLength) < 0.6 and close[0] < maSlow and crossover(maSlow, maFast) and maSlow/1.1 < maSlower and rsi<rsi[2] // === LOGIC === Complex 2- switches from long to short and vice-versa with each fast-slow MA cross but additional conditions must be met //enterLong = maFast> maSlow and 1.1* maSlow > maSlower and rsi>rsi[1] and close > close[3] //and close > close[2] //exitLong = maSlow> maFast and maSlow/1.1 < maSlower and rsi<rsi[1] and close < close[3] // and close < close[2] // Entry // strategy.entry(id="Long Entry", long=true, when=enterLong) strategy.entry(id="Short Entry", long=false, when=exitLong) // === FILL ==== fill(fast, slow, color = maFast > maSlow ? green : red)