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.
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.
Las ventajas de esta estrategia incluyen:
También hay algunos riesgos:
Algunas maneras de optimizar aún más la estrategia:
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)