Esta estrategia es un sistema de negociación que combina el índice de fuerza relativa (RSI), el promedio móvil ponderado (WMA) y el promedio móvil exponencial (EMA). Mediante la utilización de múltiples indicadores técnicos, la estrategia captura los cambios de impulso del mercado en los puntos de inversión de tendencia para generar señales comerciales.
La lógica central de la estrategia se basa en los siguientes elementos clave: 1. El cálculo del RSI utiliza una configuración de 14 períodos para medir las condiciones de sobrecompra/sobreventa del mercado 2. Los cruces de la WMA de 45 y de la EMA de 89 períodos confirman las transiciones de tendencia Condiciones de entrada: - Signo largo: WMA cruza por encima de EMA y RSI<50 - señal corta: la WMA se cruza por debajo de la EMA y el RSI>50 4. El sistema visualiza las condiciones del mercado a través de los cambios de color del RSI, mostrando verde cuando el RSI>70 y rojo cuando el RSI<30 5. El fondo azul está establecido en el intervalo RSI 30-70 para ayudar a identificar zonas neutrales
Se trata de una estrategia de seguimiento de tendencias basada en múltiples indicadores técnicos, que combina RSI, WMA y EMA para capturar los puntos de reversión de tendencias del mercado mientras se mantiene la estabilidad comercial.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-16 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy(title="RSI + WMA + EMA Strategy", shorttitle="RSI Strategy", overlay=true) // RSI Settings rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings") rsiSourceInput = input.source(close, "Source", group="RSI Settings") // WMA and EMA Settings wmaLengthInput = input.int(45, minval=1, title="WMA Length", group="WMA Settings") wmaColorInput = input.color(color.blue, title="WMA Color", group="WMA Settings") emaLengthInput = input.int(89, minval=1, title="EMA Length", group="EMA Settings") emaColorInput = input.color(color.purple, title="EMA Color", group="EMA Settings") // RSI Calculation change = ta.change(rsiSourceInput) up = ta.rma(math.max(change, 0), rsiLengthInput) down = ta.rma(-math.min(change, 0), rsiLengthInput) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) // WMA and EMA Calculation wma = ta.wma(rsi, wmaLengthInput) ema = ta.ema(rsi, emaLengthInput) // RSI Color Logic rsiColor = rsi > 70 ? color.new(color.green, 100 - math.round(rsi)) : rsi < 30 ? color.new(color.red, math.round(rsi)) : color.new(color.blue, 50) // Plot RSI, WMA, and EMA plot(rsi, "RSI", color=rsiColor) plot(wma, title="WMA", color=wmaColorInput, linewidth=2) plot(ema, title="EMA", color=emaColorInput, linewidth=2) // Highlight RSI Area between 30 and 70 bgcolor(rsi >= 30 and rsi <= 70 ? color.new(color.blue, 90) : na) // Entry and Exit Conditions longCondition = ta.crossover(wma, ema) and rsi < 50 shortCondition = ta.crossunder(wma, ema) and rsi > 50 if (longCondition) strategy.entry("Long", strategy.long) alert("Buy Signal: WMA crossed above EMA, RSI < 50", alert.freq_once_per_bar) if (shortCondition) strategy.entry("Short", strategy.short) alert("Sell Signal: WMA crossed below EMA, RSI > 50", alert.freq_once_per_bar) // Optional: Plot Buy/Sell Signals on Chart plotshape(series=longCondition, style=shape.labelup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=shortCondition, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")