La estrategia de retroceso de promedios móviles rastrea los cruces de promedios móviles de precios e identifica oportunidades de retroceso para realizar operaciones contrarias a la tendencia cuando ocurren cruces de oro.
El núcleo de esta estrategia consiste en dos promedios móviles: la EMA de 14 días y la SMA de 56 días. Se activa una señal de compra cuando la EMA de 14 días cruza por encima de la SMA de 56 días desde abajo. Después, la estrategia mira hacia atrás 20 días para encontrar un swing bajo como soporte. Combinado con el precio de cierre en el punto de cruce, se trazan líneas de retroceso de Fibonacci, con 1.272 línea de retroceso como entrada y 0.618 como salida.
Los pasos clave de esta estrategia son los siguientes:
Lo anterior explica el principal flujo de trabajo y la lógica detrás de esta estrategia de retroceso.
Las principales ventajas de esta estrategia de retroceso de la media móvil son:
En resumen, esto es muy adecuado para el comercio de estilo de reversión media a corto plazo. Captura las oportunidades de retroceso para obtener ganancias. La estrategia también es simple y sencilla de implementar.
A pesar de los pros, también hay ciertos riesgos a tener en cuenta para esta estrategia:
Para mitigar los riesgos, podemos establecer un marco de tiempo corto para detener las pérdidas para controlarlas; también optimizar los rangos de la línea de retroceso para apuntar a objetivos de ganancia razonables.
Todavía hay mucho espacio para optimizar esta estrategia de retroceso de promedio móvil:
Prueba diferentes configuraciones de parámetros en elementos como períodos de media móvil, días de retroceso, múltiplos de Fibonacci, etc. para encontrar el óptimo;
Añadir mecanismos de stop loss como paradas múltiples o paradas de trailing para controlar mejor los riesgos;
Introducir otros indicadores como FILTROS para evitar condiciones de mercado inadecuadas;
Optimizar el tamaño de las posiciones y las normas de gestión de riesgos.
A través de pruebas rigurosas y optimización, se puede lograr una mejora significativa para esta estrategia comercial.
La estrategia de retroceso de promedio móvil es una estrategia de comercio muy práctica a corto plazo. Captura oportunidades de reversión de la media cuando los precios retroceden a corto plazo. La idea de la estrategia es simple y fácil de comprender. Todavía hay riesgos que deben abordarse a través de la optimización y el control de riesgos. En general, esta es una estrategia cuantitativa prometedora digna de mayor investigación y aplicación.
/*backtest start: 2022-12-12 00:00:00 end: 2023-12-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("MAC Pullback", overlay=true) // Setting up timeperiod for testing startPeriodYear = input(2014, "Backtest Start Year") startPeriodMonth = input(1, "Backtest Start Month") startPeriodDay = input(2, "Backtest Start Day") testPeriodStart = timestamp(startPeriodYear, startPeriodMonth, startPeriodDay, 0, 0) stopPeriodYear = input(2035, "Backtest Stop Year") stopPeriodMonth = input(12, "Backtest Stop Month") stopPeriodDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(stopPeriodYear, stopPeriodMonth, stopPeriodDay, 0, 0) // Moving Averages ema14 = ema(close, 14) ema28 = ema(close, 28) sma56 = sma(close, 56) // Plot plot(ema14, title="ema14", linewidth=2, color=green) plot(ema28, title="ema28", linewidth=2, color=red) plot(sma56, title="sma56", linewidth=3, color=blue) // Strategy goLong = cross(ema14, sma56) and ema14 > ema28 goShort = cross(ema14, sma56) and ema14 < ema28 // Locate Swing Lows leftBars = input(20) rightBars=input(20) swinglow = pivotlow(close, leftBars, rightBars) plot(swinglow, style=cross, linewidth=8, color=#00FF00, offset=-rightBars) if goLong == true and time >= testPeriodStart and time <= testPeriodStop // We try to make sure that we're catching the first Pullback after the crossover if ema14[12] < sma56[12] pivotpoint = lowest(40)[0] //lowest value of the month as our swing low // We calculate a Fib 1.272 extension (from the previous swing low to // the crossover long entry's open) and use this as our entry target to short the Pullback extensiontarget = ((close[1] - pivotpoint) * 1.27) + pivotpoint shorttarget = ((close[1] - pivotpoint) * 0.618) + pivotpoint strategy.order("Pullback", strategy.short, 5.0, limit=extensiontarget) // I would like to use a trailing stop but for know we just hope to get // filled if the pullback reaches all the way down to the 0.618. // We also place a tight stop loss since we trying to short an uptrend strategy.exit("Pullback Exit", "Pullback", limit=shorttarget, loss=400)