Esta estratégia é um sistema de negociação 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 as mudanças de tendência do mercado monitorando os níveis de RSI e o cruzamento entre WMA e EMA para gerar sinais de compra e venda.
A lógica central da estratégia baseia-se nos seguintes elementos-chave: 1. Utiliza o RSI de 14 períodos para calcular as condições de sobrecompra/supervenda do mercado 2. Calcula a WMA de 45 períodos e a EMA de 89 períodos Condições de entrada: - sinal longo: quando o RSI está abaixo de 50 e a WMA cruza acima da EMA - sinal curto: quando o RSI está acima de 50 e a WMA cruza abaixo da EMA 4. A estratégia utiliza a função ta.rma para facilitar o cálculo do RSI, melhorando a estabilidade do sinal 5. Usa a funcionalidade de gráficos para marcar pontos de compra/venda no gráfico para julgamento intuitivo
A estratégia constrói um sistema de tendência relativamente completo, combinando indicadores RSI, WMA e EMA. Suas principais vantagens estão na confiabilidade do sinal e nas capacidades de controle de risco, enquanto deve ser dada atenção aos riscos de falso sinal em mercados variados. Através de medidas de otimização, como adicionar filtragem de volatilidade e confirmação da força da tendência, a estabilidade e rentabilidade da estratégia podem ser melhoradas.
/*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")