Estrategia de salida de la campana de apertura de la media móvil de obtención de ganancias temprana

El autor:¿ Qué pasa?, Fecha: 2023-12-01 14:32:48
Las etiquetas:

img

Resumen general

Esta estrategia implementa largo y corto basado en cruces de promedios móviles, y sale solo por la tarde basado en estadísticas tempranas de obtención de ganancias para evitar quedar atrapado por una alta volatilidad de apertura.

Estrategia lógica

La estrategia utiliza 3 promedios móviles con diferentes parámetros: líneas de 14 días, 28 días y 56 días. Se hace largo cuando la línea de 14 días cruza por encima de la línea de 56 días, y se hace corto cuando se cruza por debajo. Este enfoque básico rastrea las tendencias a largo plazo.

La innovación clave es que detiene la pérdida y obtiene ganancias solo entre las 4 p.m. y las 5 p.m. Las estadísticas muestran un 70% de probabilidad de que ocurra un alto / bajo diario en la primera hora después de la apertura. Para evitar el impacto de la alta volatilidad de apertura, las salidas solo se permiten durante las horas normales de negociación de la tarde.

Análisis de ventajas

Las ventajas de esta estrategia incluyen:

  1. Seguir las tendencias a medio y largo plazo, evitar el ruido excesivo
  2. Utilice las estadísticas de volatilidad de apertura para la lógica de stop loss para evitar falsas rupturas
  3. Lógica sencilla e intuitiva, fácil de entender y modificar

Riesgos y soluciones

También hay algunos riesgos:

  1. Las oportunidades perdidas si la reversión ocurre temprano en el día pueden probar la compatibilidad con acciones específicas.
  2. Todavía existe el riesgo de quedar atrapados después de las horas.
  3. El mal ajuste del período de backtest conduce a un sobreajuste.

Oportunidades de mejora

Algunas maneras de optimizar aún más la estrategia:

  1. Prueba diferentes combinaciones de medias móviles para encontrar parámetros óptimos
  2. Intervalo de suspensión de pérdidas basado en los patrones de volatilidad de acciones específicas
  3. Añadir filtro de volumen para evitar trampas
  4. Añadir paradas dinámicas a las retrocesos de la pista después de los breakouts

Conclusión

La estrategia tiene una lógica clara y simple, utiliza eficazmente las características de apertura para detener la pérdida para evitar las trampas de volatilidad.


/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("MAC 1st Trading Hour Walkover", 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(2025, "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

// Strategy.When to enter
if time >= testPeriodStart
    if time <= testPeriodStop
        strategy.entry("Go Long", strategy.long, 1.0, when=goLong)
        strategy.entry("Go Short", strategy.short, 1.0, when=goShort)

// Strategy.When to take profit 
if time >= testPeriodStart 
    if time <= testPeriodStop 
        strategy.exit("Close Long", "Go Long", profit=2000) 
        strategy.exit("Close Short", "Go Short", profit=2000) 

// Strategy.When to stop out 
// Some studies show that 70% of the days high low happen in the first hour 
// of trading. To avoid having that volatility fire our loss stop we 
// ignore price action in the morning, but allow stops to fire in the afternoon. 
if time("60", "1000-1600") 
    strategy.exit("Close Long", "Go Long", loss=500) 
    strategy.exit("Close Short", "Go Short", loss=500)

Más.