
A estratégia é um sistema de negociação de acompanhamento de tendências que combina o Índice de Força Relativa (RSI), a Média Móvel Ponderada (WMA) e a Média Móvel Exponencial (EMA). A estratégia identifica mudanças na tendência do mercado monitorando a posição do valor RSI e o cruzamento da WMA e EMA, gerando assim sinais de compra e venda. Esse método de combinação não só leva em consideração as condições de sobrecompra e sobrevenda do mercado, mas também combina o julgamento de tendências de médias móveis de diferentes períodos, o que pode capturar pontos de inflexão do mercado com mais precisão.
A lógica central da estratégia é baseada nos seguintes elementos-chave:
Esta estratégia cria um sistema de rastreamento de tendências relativamente completo combinando três indicadores técnicos: RSI, WMA e EMA. A principal vantagem da estratégia está na confiabilidade de seus sinais e em suas capacidades de controle de risco, mas, ao mesmo tempo, também precisamos prestar atenção ao risco de sinais falsos em mercados voláteis. Ao adicionar medidas de otimização, como filtragem de volatilidade e confirmação da força da tendência, a estabilidade e a lucratividade da estratégia podem ser ainda mais melhoradas. No geral, esta é uma estratégia de negociação com valor prático, especialmente adequada para traders de tendências de médio e longo prazo.
/*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")