Esta estrategia es una estrategia de cruce basada en dos promedios móviles, EMA y SMA. Cuando la EMA más lenta cruza por encima de la SMA más rápida, genera una señal de compra; cuando la EMA más lenta cruza por debajo de la SMA más rápida, genera una señal de venta.
La estrategia utiliza dos promedios móviles: una SMA de 20 períodos y una EMA de 21 períodos. Cuando la EMA cruza por encima de la SMA, indica que el mercado puede estar convirtiéndose en una tendencia al alza, generando así una señal de compra. Por el contrario, cuando la EMA cruza por debajo de la SMA, indica que el mercado puede estar convirtiéndose en una tendencia a la baja, generando así una señal de venta. Para confirmar las señales, la estrategia también requiere que el precio de cierre actual sea mayor que el precio de cierre anterior (para señales de compra) o menor que el precio de cierre anterior (para señales de venta).
La estrategia de banda de soporte del mercado alcista de EMA-SMA es una estrategia de seguimiento de tendencias simple y fácil de entender que es particularmente adecuada para los mercados alcistas. Sin embargo, la estrategia también tiene ciertas limitaciones, como señales falsas, retraso y capacidad limitada de reconocimiento de tendencias. Al combinarla con otros indicadores, optimizar parámetros y agregar stop-loss y take-profit, el rendimiento y la robustez de la estrategia pueden mejorarse aún más.
/*backtest start: 2023-05-17 00:00:00 end: 2024-05-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © rodrinverte //@version=5 strategy("EMA-SMA Crossover Strategy", overlay=true, initial_capital = 1000) // Definir la longitud de las medias móviles fast = ta.sma(close, 20) slow = ta.ema(close, 21) // Definir condiciones de compra y venta buySignal = ta.crossover(slow, fast) sellSignal = ta.crossunder(slow, fast) // Configurar colores de las líneas y relleno emaColor = buySignal ? color.green : sellSignal ? color.red : color.blue smaColor = color.gray fillColor = slow < fast ? color.new(color.green, 90) : color.new(color.red, 90) // Esperar un periodo para confirmar la señal de compra o venta buyConfirmation = close > close[1] and buySignal sellConfirmation = close < close[1] and sellSignal // Dibujar las medias móviles plot(slow, title="EMA", color=emaColor) plot(fast, title="SMA", color=smaColor) // Configurar las señales de compra y venta plotshape(buyConfirmation, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(sellConfirmation, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Estrategia de compra y venta if (buyConfirmation) strategy.entry("Buy", strategy.long) if (sellConfirmation) strategy.entry("Sell", strategy.short) // Cerrar posición opuesta al cruce original if (sellSignal) strategy.close("Buy") if (buySignal) strategy.close("Sell")