Estrategia de ruptura de media móvil doble


Fecha de creación: 2023-11-21 11:34:09 Última modificación: 2023-11-21 11:34:09
Copiar: 0 Número de Visitas: 561
1
Seguir
1617
Seguidores

Estrategia de ruptura de media móvil doble

Descripción general

La estrategia de brecha de doble media móvil es una estrategia de seguimiento de tendencias más típica. Se utiliza para capturar la dirección y la intensidad de las tendencias del mercado mediante el cálculo de las medias móviles de dos períodos diferentes y su cruce como una señal de compra y venta.

Principio de estrategia

La estrategia se basa principalmente en dos medias móviles: la primera tiene un ciclo más corto, lo que permite responder más rápidamente a los cambios en los precios; la segunda tiene un ciclo más largo, lo que permite filtrar parte del ruido. Se considera una señal de compra cuando se cruza la media móvil a corto plazo por encima de la media móvil a largo plazo; y se considera una señal de venta cuando se cruza la media móvil a largo plazo por debajo de la media móvil a corto plazo.

Concretamente, la estrategia calcula el promedio de movimiento del índice de 10 periodos (precio 1) y el promedio de movimiento del índice de 20 periodos (precio 2). Si el precio de apertura y cierre de la línea K actual es superior a los dos promedios móviles, se genera una señal de compra; si el precio de apertura y cierre de la línea K actual es inferior a los dos promedios móviles, se genera una señal de venta.

Con este diseño, se puede entrar en el mercado más temprano cuando la tendencia comienza a formarse, y seguir la tendencia; cuando la tendencia se invierte, también se puede salir del mercado lo antes posible, para controlar eficazmente el riesgo.

Ventajas estratégicas

  • Capturar las tendencias temprano y seguir las fuertes
  • Filtración doble y uniforme para evitar algunas falsas brechas
  • Confirmación doble de los precios de apertura y cierre de la línea K, reduciendo las transacciones no válidas

Riesgo estratégico

  • Las estrategias de doble línea son propensas a generar más inversiones
  • Se pueden producir frecuentes señales de cruce cuando se opera en línea recta
  • El espacio para la optimización de los parámetros es grande y la optimización incorrecta puede causar sobreajuste

Dirección de optimización de la estrategia

  • Prueba diferentes combinaciones de parámetros para encontrar el mejor
  • Aumentar las estrategias de stop loss y reducir el tamaño de las pérdidas individuales
  • Aumentar las condiciones de filtración y reducir las transacciones no válidas
  • Eficacia de la señal confirmada en combinación con otros indicadores

Resumir

Esta estrategia es una estrategia básica para el comercio cuantitativo. En general, es sencilla y práctica, y capta las tendencias mediante el principio de doble cruce de líneas uniformes. Sin embargo, la estrategia también presenta ciertos riesgos y necesita ser optimizada aún más para adaptarse a diferentes entornos de mercado.

Código Fuente de la Estrategia
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//study(title="MA River CC v1", overlay = true)
strategy("MA River CC v1", overlay=true)
src = input(close, title="Source")

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(10, title="1st MA Length")
type1 = input("EMA", "1st MA Type", options=["SMA", "EMA"])

ma2 = input(20, title="2nd MA Length")
type2 = input("EMA", "2nd MA Type", options=["SMA", "EMA"])

price1 = if (type1 == "SMA")
    sma(price, ma1)
else
    ema(price, ma1)
    
price2 = if (type2 == "SMA")
    sma(price, ma2)
else
    ema(price, ma2)


//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line,  title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)


buy_entry = (open>price1 and open>price2) and (close>price1 and close>price2)  
sell_entry = (open<price1 and open<price2) and (close<price1 and close<price2)
buy_close = sell_entry
sell_close = buy_entry
//longCondition = crossover(price1, price2)    
if(buy_entry)
    strategy.entry("Long", strategy.long)
    
if(sell_entry)
    strategy.entry("Short", strategy.short)

strategy.close("Long" , when=buy_close)
strategy.close("Short",when=sell_close)