Esta estrategia combina medias móviles y el oscilador AO para identificar tendencias y retrocesos comerciales.
Estrategia lógica:
Calcular la EMA rápida y la SMA lenta para construir un sistema de promedio móvil.
Calcular las líneas AO rápidas y lentas y la diferencia entre ellas.
Ir largo cuando el MA rápido cruza por encima del MA lento, cerrar es por encima del MA lento y AO aumenta.
Se corta cuando el MA rápido se cruza por debajo del MA lento, el cerrado está por debajo del MA lento y el AO cae.
AO compara las diferencias para evitar señales falsas.
Ventajas:
Los MAs determinan la tendencia principal, los AO multiplicados por las reversiones.
La diferencia AO filtra las señales falsas.
La combinación de indicadores mejora la precisión.
Riesgos:
Ajuste necesario para ajustar el MA y el AO a las condiciones del mercado.
Ambos MAs y AO retraso, potencialmente faltando las mejores entradas.
Difícil de detener en mercados variados, aumentando los riesgos de pérdida.
En resumen, esta estrategia combina los puntos fuertes de las AAs y de las AAs para la negociación. Esto puede mejorar la calidad de la señal hasta cierto punto, pero aún se requieren paradas adecuadas para gestionar los riesgos para obtener rendimientos constantes.
/*backtest start: 2023-09-04 00:00:00 end: 2023-09-11 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("MA&AO", overlay = true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075, currency='USD') startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0) end = timestamp(input(9999, "End Year"), input(1, "Month"), input(1, "Day"), 0, 0) _testPeriod() => true //Inputs fast_ma = input(8, title="Fast EMA", minval=2) slow_ma = input(20, minval=1, title="Slow SMA") AO_fast = input(5, minval=1, title="Awesome Length Fast") AO_slow = input(8, minval=1, title="Awesome Length Slow") //MA fast = ema(close, fast_ma) slow = sma(close, slow_ma) //AO AO_1 = sma(hl2, AO_fast) AO_2 = sma(hl2, AO_slow) dif = AO_1 - AO_2 AO = dif>=0? dif > dif[1] ? 1 : 2 : dif > dif[1] ? -1 : -2 long = crossover(fast, slow) and close > slow and abs(AO)==1 short = fast < slow and close < slow and abs(AO)==2 long_condition = long and _testPeriod() strategy.entry('BUY', strategy.long, when=long_condition) short_condition = short strategy.close('BUY', when=short_condition) plot(fast, color=color.green) plot(slow, color=color.red)