
La idea central de esta estrategia es utilizar las medias móviles rápidas y las medias móviles lentas para determinar la tendencia del mercado y realizar transacciones de bajo riesgo. Cuando la media móvil rápida atraviesa la media móvil lenta, significa que el mercado puede entrar en una tendencia alcista, entonces haga más; cuando la media móvil rápida atraviesa la media móvil lenta, significa que el mercado puede entrar en una tendencia bajista, entonces haga hueco.
Esta estrategia utiliza un índice de movimiento de los precios. El movimiento de las medias es un indicador de análisis de tendencias, que suaviza los datos de precios para determinar el movimiento de los precios. Los parámetros de las medias móviles rápidas son más pequeños y responden más rápidamente a los cambios de precios; los parámetros de las medias móviles lentas son más grandes y responden a los cambios de precios más lentamente.
Concretamente, en esta estrategia se definen dos promedios móviles exponenciales, con un ciclo de promedios móviles rápidos de 21, y un ciclo de promedios móviles lentos de 55. La estrategia decide la entrada a la partida juzgando el cuerno de oro de los dos promedios móviles. Haga más cuando atraviese el promedio móvil lento sobre el promedio móvil rápido; y haga vacío cuando atraviese el promedio móvil lento por debajo del promedio móvil rápido.
Además, la estrategia también utiliza el ATR, un indicador de volatilidad, para establecer paros y paradas. El ATR puede evaluar eficazmente el grado de fluctuación del mercado. El parón está configurado para que el precio esté a 1,5 veces el ATR; el parón está configurado para que el precio esté cerca de 1 vez el ATR.
La estrategia tiene las siguientes ventajas:
La estrategia también tiene ciertos riesgos:
En cuanto a los riesgos mencionados, podemos optimizar en los siguientes aspectos:
Esta estrategia puede ser optimizada en profundidad en los siguientes aspectos:
Utiliza métodos de aprendizaje automático para optimizar los parámetros de las medias móviles y hacer que las estrategias sean más adaptables.
Aumentar los factores fundamentales como condición de filtración, para evitar que se siga haciendo más vacío ciegamente cuando llegan noticias importantes de ganancias y déficit. Por ejemplo, la resolución de la tasa de interés de la Reserva Federal de los Estados Unidos, la publicación de datos macroeconómicos importantes, etc.
Establecer un límite de volatilidad, suspender la negociación cuando el ATR es demasiado grande o demasiado pequeño, para evitar pérdidas en entornos de mercado extremos.
En combinación con los indicadores fundamentales de las acciones, como la tasa de inflación del mercado de PE, el efecto de amplificación del volumen de transacciones, etc., establezca un margen de parada de pérdidas dinámico.
Aumentar el mecanismo de administración de posiciones, reduciendo las posiciones gradualmente cuando la tasa de ganancias alcanza un cierto nivel; suspender la negociación por un período de tiempo cuando se producen grandes pérdidas, etc.
La estrategia de funcionamiento general es clara y simple, para juzgar la tendencia del mercado a través de la cruz de las dos medias móviles, es una estrategia de seguimiento de tendencias típica. Al mismo tiempo, la estrategia también controla el riesgo muy bien, utiliza el indicador ATR para establecer dinámicamente el stop loss.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title="No-Nonsense Strategy Template [WM]", overlay = true)
price = close
//
// ATR stuff
//
atrLength = input(14, "ATR Length")
slMultiplier = input(1.5, "SL")
tpMultiplier = input(1, "TP1")
atr = atr(atrLength)
//
// Strategy under test. MA crossover
//
fastInput = input(21)
slowInput = input(55)
fast = ema(price, fastInput)
slow = ema(price, slowInput)
plot(fast, color = red)
plot(slow, color = blue)
goLong = crossover(fast, slow)
goShort = crossunder(fast, slow)
if (goLong)
sl = price - atr * slMultiplier
tp = price + atr * tpMultiplier
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", "Long", stop = sl, limit = tp)
if (goShort)
sl = price + atr * slMultiplier
tp = price - atr * tpMultiplier
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", "Short", stop = sl, limit = tp)