La estrategia de ruptura de doble EMA es una estrategia de seguimiento de tendencias. Utiliza dos líneas EMA con períodos diferentes y realiza operaciones cuando hay un margen lo suficientemente grande entre las dos EMA para capturar la dirección de la tendencia.
La estrategia utiliza una EMA rápida (EMA de período más corto) y una EMA lenta (EMA de período más largo) para las señales comerciales.
Calcule la EMA rápida y la EMA lenta.
Cuando la EMA rápida cruce por encima de la EMA lenta, y el diferencial entre las dos EMA excede un umbral, vaya largo.
Cuando la EMA rápida se cruce por debajo de la EMA lenta y el diferencial entre las dos EMA excede un umbral, vaya corto.
Cuando el precio vuelva a caer por debajo de la EMA rápida, cierra posiciones largas.
Cuando el precio vuelva a romper por encima de la EMA rápida, cierra posiciones cortas.
De esta manera, utiliza la suavidad de las EMA para identificar la dirección de la tendencia, y la ruptura de la EMA para determinar el momento preciso de entrada.
Los riesgos pueden reducirse mediante el ajuste de la EMA, el umbral de dispersión y la colocación de stop loss.
La estrategia de ruptura de la doble EMA es una estrategia de seguimiento de tendencias efectiva pero simple. Puede obtener beneficios en los mercados de tendencias, pero necesita parámetros adecuados. Con optimización y gestión de riesgos, puede aprovechar plenamente sus fortalezas. Una estrategia de tendencia que vale la pena investigar y aplicar.
/*backtest start: 2023-09-24 00:00:00 end: 2023-10-24 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("2-EMA Strategy", overlay=true, initial_capital=100, currency="USD", default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075) diffMinimum = input(0.95, step=0.01) small_ema = input(13, title="Small EMA") long_ema = input(26, title="Long EMA") ema1 = ema(close, small_ema) ema2 = ema(close, long_ema) orderCondition = ema1 > ema2?((ema1/ema2)*100)-100 > diffMinimum:((ema2/ema1)*100)-100 > diffMinimum longCondition = close > ema1 and ema1 > ema2 if (longCondition and orderCondition) strategy.entry("Long", strategy.long) shortCondition = close < ema1 and ema1 < ema2 if (shortCondition and orderCondition) strategy.entry("Short", strategy.short) strategy.close("Short", when=close > ema1) strategy.close("Long", when=close < ema1) plot(ema(close, small_ema), title="EMA 1", color=green, transp=0, linewidth=2) plot(ema(close, long_ema), title="EMA 2", color=orange, transp=0, linewidth=2)