Esta estrategia calcula el promedio móvil exponencial (EMA) de períodos rápidos y lentos, los traza en el gráfico y monitorea los cruces en tiempo real para determinar las reversiones de tendencia. Las señales de negociación se forman incorporando el oscilador RSI para evitar señales falsas. Se genera una señal de compra cuando la EMA rápida cruza por encima de la EMA lenta. Se genera una señal de venta cuando la EMA rápida cruza por debajo de la EMA lenta.
La estrategia tiene una lógica clara utilizando cruces de EMA para determinar la inversión de tendencia, filtrada por RSI para capturar tendencias a medio y largo plazo. Sin embargo, la optimización de los parámetros EMA / RSI y el stop loss, así como el riesgo de reversiones perdidas y fracaso en mercados volátiles permanecen. Con parámetros y controles de riesgo ajustados, podría servir para identificar puntos de inflexión y formular decisiones de inversión.
/*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=5 strategy("Trend Change with EMA Entry/Exit - Intraday", overlay=true) // Define the fast and slow EMA periods fast_ema_period = input(10, title="Fast EMA Period") slow_ema_period = input(50, title="Slow EMA Period") // Calculate the EMAs ema_fast = ta.ema(close, fast_ema_period) ema_slow = ta.ema(close, slow_ema_period) // Plot the EMAs on the chart plot(ema_fast, title="Fast EMA", color=color.blue, linewidth=2) plot(ema_slow, title="Slow EMA", color=color.orange, linewidth=2) // Detect trend changes (crossovers and crossunders) is_uptrend = ta.crossover(ema_fast, ema_slow) is_downtrend = ta.crossunder(ema_fast, ema_slow) // Relative Strength Index (RSI) rsi_length = input(14, title="RSI Length") overbought_level = input(70, title="Overbought Level") oversold_level = input(30, title="Oversold Level") rsi_value = ta.rsi(close, rsi_length) // Trend Filter is_trending = ta.change(is_uptrend) != 0 or ta.change(is_downtrend) != 0 // Entry and Exit signals enter_long = is_uptrend and rsi_value < overbought_level and is_trending exit_long = is_downtrend and is_trending enter_short = is_downtrend and rsi_value > oversold_level and is_trending exit_short = is_uptrend and is_trending strategy.entry("Buy", strategy.long, when=enter_long) strategy.close("Buy", when=exit_long) strategy.entry("Sell", strategy.short, when=enter_short) strategy.close("Sell", when=exit_short)