Esta es una estrategia de negociación intradiaria que utiliza el oscilador AO y los cruces de la EMA para generar señales de negociación.
La estrategia se basa principalmente en dos indicadores para las entradas y salidas:
Oscilador AO: mide la diferencia entre los promedios HL2 de 5 y 34 períodos para medir la dirección de la tendencia actual.
EMA Crossover: La estrategia utiliza una EMA de 3 períodos para la tendencia a corto plazo y una EMA de 20 períodos para la dirección de la tendencia a mediano plazo.
Las operaciones se realizan solo cuando el AO cruza su línea cero simultáneamente con un cruce de la EMA. Esto evita señales erróneas cuando el AO está oscilando. Las salidas ocurren después del cierre de la sesión de Londres al aplanar todas las posiciones.
Las principales ventajas de esta estrategia son las siguientes:
Algunos riesgos a tener en cuenta incluyen:
Los riesgos pueden mitigarse mediante los stop losses, los parámetros adaptativos ajustados a los diferentes ciclos, etc.
Las principales direcciones de optimización son alrededor de la sintonización de parámetros:
Los ajustes de parámetros y los filtros adicionales pueden mejorar la robustez y la eficiencia de la estrategia.
En resumen, esta táctica de negociación intradiaria combina el indicador de tendencia AO con los cruces de la EMA para crear un enfoque simple pero práctico. Tiene señales claras que son fáciles de implementar pero carecen de parámetros adaptativos.
/*backtest start: 2022-12-18 00:00:00 end: 2023-12-24 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //@author SoftKill21 strategy(title="MA cross + AO", shorttitle="MA_AO") ao = sma(hl2,5) - sma(hl2,34) len = input(3, minval=1, title="Length") src = input(close, title="Source") out = ema(src, len) len1 = input(20, minval=1, title="Length") src1 = input(close, title="Source") out1 = sma(src1, len1) timeinrange(res, sess) => time(res, sess) != 0 londopen = timeinrange(timeframe.period, "0300-1100") nyopen = timeinrange(timeframe.period, "0800-1600") longC = crossover(out,out1) and ao>0 and londopen shortC = crossunder(out,out1) and ao<0 and londopen invert = input(title="Reverse position ?", type=input.bool, defval=false) if(invert==false) strategy.entry("LONG",1,when=longC) strategy.entry("SHORT",0,when=shortC) if(invert==true) strategy.entry("short",0,when=longC) strategy.entry("long",1,when=shortC) strategy.close_all(when= not (londopen))