
Esta estratégia baseia-se em um índice relativamente forte depois de suavizar (RSI) para determinar os sinais de compra e venda, e é uma estratégia de acompanhamento de tendências mais típica. Ao calcular a amplitude da queda do preço das ações em um determinado período, ajuda os investidores a determinar se o mercado está em um estado de sobrecompra ou sobrevenda, para tomar decisões de investimento.
A chave para esta estratégia está na configuração do RSI suave. O RSI pode refletir sobrecompra e venda de preços de ações. No entanto, o RSI original também pode flutuar muito com os preços, o que é prejudicial para a geração de sinais de negociação.
Esta estratégia, através do cálculo e suavização do indicador RSI, define uma zona de sobrecompra e sobrevenda razoável, produzindo um sinal de compra e venda mais claro. Em comparação com a estratégia RSI original, tem vantagens em termos de sinal mais estável e confiável. Mas também há um certo espaço para melhorias, os investidores podem melhorar a estratégia por meio de otimização de parâmetros, adição de outros indicadores, etc., para que possa se adaptar a um ambiente de mercado mais complexo.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Smoothed RSI Strategy", overlay=true)
// Calculate the RSI
length = 5
rsiValue = ta.rsi(close, length)
// Smooth the RSI using a moving average
smoothedRsi = ta.sma(rsiValue, length)
// Define overbought and oversold thresholds
overbought = 80
oversold = 40
// Buy signal when RSI is in oversold zone
buyCondition = ta.crossover(smoothedRsi, oversold)
// Sell signal when RSI is in overbought zone
sellCondition = ta.crossunder(smoothedRsi, overbought)
// Plotting the smoothed RSI
// Plotting the smoothed RSI in a separate pane
plot(smoothedRsi, color=color.blue, title="Smoothed RSI", style=plot.style_line, linewidth=2)
//plot(smoothedRsi, color=color.blue, title="Smoothed RSI")
hline(overbought, "Overbought", color=color.red)
hline(oversold, "Oversold", color=color.green)
// Strategy logic for buying and selling
if (buyCondition)
strategy.entry("Buy", strategy.long)
if (sellCondition)
strategy.close("Buy")