
La estrategia es un sistema de trading de seguimiento de tendencias que combina el índice de fuerza relativa (RSI), la media móvil ponderada (WMA) y la media móvil exponencial (EMA). La estrategia identifica cambios en la tendencia del mercado monitoreando la posición del valor RSI y el cruce de WMA y EMA, generando así señales de compra y venta. Este método de combinación no solo tiene en cuenta las condiciones de sobrecompra y sobreventa del mercado, sino que también combina el juicio de tendencia de los promedios móviles de diferentes períodos, lo que puede capturar los puntos de inflexión del mercado con mayor precisión.
La lógica central de la estrategia se basa en los siguientes elementos clave:
Esta estrategia construye un sistema de seguimiento de tendencias relativamente completo combinando tres indicadores técnicos: RSI, WMA y EMA. La principal ventaja de la estrategia radica en la fiabilidad de sus señales y su capacidad de control de riesgos, pero al mismo tiempo, también debemos prestar atención al riesgo de señales falsas en mercados volátiles. Al agregar medidas de optimización como el filtrado de volatilidad y la confirmación de la fortaleza de la tendencia, se puede mejorar aún más la estabilidad y la rentabilidad de la estrategia. En general, se trata de una estrategia comercial con valor práctico, especialmente adecuada para operadores de tendencias a medio y largo plazo.
/*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)
// Plot RSI, WMA, and EMA
plot(rsi, "RSI", color=#7E57C2)
plot(wma, title="WMA", color=wmaColorInput, linewidth=2)
plot(ema, title="EMA", color=emaColorInput, linewidth=2)
// 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)
if (shortCondition)
strategy.entry("Short", strategy.short)
// 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")