Esta estrategia utiliza principalmente EMA e indicadores de desviación estándar para determinar la dirección de la tendencia a través de señales cruzadas EMA y buscar señales de ruptura con desviación estándar para generar señales de compra y venta. Pertenece al tipo de estrategia de seguimiento de tendencias que genera señales de compra cuando los precios rompen el carril superior y señales de venta cuando los precios rompen el carril inferior.
La estrategia consta de tres partes principales:
Diferencia EMA (s2): Calcular la diferencia entre EMA rápida (ema_range) y EMA lenta (ema_watch) para determinar la dirección de la tendencia del precio.
Canal de desviación estándar (s3): Construye el canal superior e inferior basado en la diferencia EMA con múltiplos de la desviación estándar.
Las banderas y señales: generan señales de compra cuando los precios rompen el carril superior desde abajo hacia arriba, y señales de venta cuando los precios rompen el carril inferior desde arriba hacia abajo.
A través de esta combinación de indicadores, puede capturar la dirección de tendencia de los precios y generar señales de compra y venta en puntos clave, lo que pertenece a una estrategia típica de seguimiento de tendencias.
La estrategia tiene las siguientes ventajas:
También hay algunos riesgos:
Las soluciones:
La estrategia se puede optimizar en las siguientes direcciones:
En resumen, esta es una estrategia típica de seguimiento de tendencias que utiliza la EMA y la desviación estándar para construir un sistema de indicadores y generar señales de bandera en puntos clave. Las ventajas están en atrapar tendencias y evitar señales falsas con desviación estándar. Los principales riesgos provienen de señales incorrectas en mercados de rango y riesgos de retirada debido a la falta de stop loss. Al agregar indicadores de juicio, optimizar parámetros y agregar stop loss, la estrategia puede mejorarse aún más en términos de estabilidad y rentabilidad. En general, el marco de la estrategia es razonable y tiene un gran potencial de optimización.
/*backtest start: 2023-09-27 00:00:00 end: 2023-11-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("ROCKET_EWO", overlay=true) ema_range = input(5) ema_watch = input(13) inval_a = input(open) inval_b = input(open) ratio = input(0) max = 5000 s2=ta.ema(inval_a, ema_range) - ta.ema(inval_b, ema_watch) c_color=s2 <= ratio ? 'red' : 'lime' s3 = s2 + (ta.stdev(open, 1)) * 5.618 plotshape(s3, color=color.white, style=shape.cross, location=location.abovebar, size=size.auto, show_last=max, transp=30, offset= 0) cr = s2 > 0 alertcondition(cr, title='[Rocket_EWO]', message='[Rocket_EWO]') buy = s2 > 1 sell = s2 < -1 txt = "🚀" + "\n"+ "\n"+ "\n"+ "\n" plotshape(buy, color=color.lime, style=shape.triangleup, location=location.belowbar ,color=color.white, text=txt, size=size.normal, show_last=max, transp=1, offset= -3) plotshape(not buy, color=color.red, style=shape.triangledown, location=location.belowbar, size=size.normal, show_last=max, transp=1, offset= 0) signalperiod = time s4 = ta.cross(s2, 0) ? time : na colsig= s2 <= ratio ? color.red : color.lime plotshape((time==s4)?7000:na,color=color.blue, style=shape.flag, location=location.abovebar, size=size.large, transp=1) longCondition = ta.crossover(s2, 1.618) if (longCondition) strategy.entry("LONG Id", strategy.long) shortCondition = ta.crossunder(s2, 1.618) if (shortCondition) strategy.entry("SHORT Id", strategy.short) strategy.close("LONG Id", when = s2 < 0.218) // strategy.risk.max_drawdown(75, strategy.percent_of_equity)