
La estrategia de retracción de la media móvil es una estrategia de negociación cuantitativa que sigue el cruce de las medias móviles de los precios de las acciones para determinar si hay una oportunidad de retracción en el momento en que ocurre un tenedor de oro, y si la hay, realiza una operación inversa. La estrategia utiliza la retracción de la línea de Fibonacci, establece los puntos de entrada y los puntos de parada de pérdidas para capturar la retracción de los precios a corto plazo.
La estrategia se basa principalmente en dos promedios móviles: la EMA de 14 días y la SMA de 56 días. Cuando la EMA de 14 días atraviesa la SMA de 56 días desde abajo, genera una señal de compra. Después, el código retrocede hasta el día 20 para encontrar un mínimo como soporte y luego combina el precio cercano al punto de cruce para trazar la línea de retracción de Fibonacci, con 1.272 veces la línea de retracción como entrada y 0.618 veces la línea de retracción como salida.
La estrategia se divide en los siguientes pasos:
Este es el proceso principal y el principio de funcionamiento de la estrategia. La estrategia puede aprovechar esta oportunidad para obtener ganancias cuando el precio se desvía por un corto período de tiempo.
La estrategia de retracción de la media móvil tiene las siguientes ventajas:
En general, esta estrategia es muy adecuada para invertir en líneas cortas, para aprovechar el arbitraje de oportunidades cuando se produce una cierta corrección en el mercado. La implementación de la estrategia también es más simple y directa.
Aunque esta estrategia de retracción de la media móvil tiene sus ventajas, también hay ciertos riesgos a tener en cuenta:
Para los riesgos mencionados, podemos establecer un tiempo de parada más corto, controlar estrictamente las pérdidas individuales; al mismo tiempo, optimizar el rango de rango de la línea de retorno y establecer un objetivo de ganancias razonable, para evitar parte del riesgo.
La estrategia de retracción de la media móvil tiene mucho espacio para ser optimizada, principalmente en los siguientes aspectos:
Prueba diferentes configuraciones de parámetros, como la longitud de ciclo de las medias móviles, el número de días de retroceso, el número de veces de la línea de retracción, etc., para encontrar el parámetro óptimo;
Aumentar los mecanismos de detención de pérdidas, que pueden ser múltiples o móviles, para un mejor control de los riesgos;
En combinación con otros indicadores FILTER, evitar el comercio en condiciones de mercado inadecuadas;
Optimizar la gestión de fondos, establecer un tamaño de posición razonable y un umbral de riesgo.
A través de la prueba y optimización de los parámetros, esta estrategia puede ser mejorada para obtener un rendimiento comercial más estable.
La estrategia de retracción de la media móvil es una estrategia de negociación de línea corta muy práctica. Puede capturar oportunidades de reversión de precios en el corto plazo y negociar a través de puntos de entrada y de parada preestablecidos. La estrategia es clara, simple y fácil de entender y implementar.
/*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)