
A estratégia é um sistema de negociação que combina o indicador de tendência Supertrend e o RSI (indicador de força relativamente fraca). A estratégia é executada em situações em que a tendência do mercado é clara e com boa dinâmica, combinando o acompanhamento de tendências com o indicador de dinâmica. O sistema usa o ATR (Amplitude Real Média) para calcular os níveis de suporte e resistência dinâmicos e, em combinação com o RSI, os sinais de supercompra e supervenda para determinar a hora de entrar.
A lógica central da estratégia é baseada nos seguintes elementos-chave:
A estratégia, em combinação com os indicadores Supertrend e RSI, constrói um sistema de negociação de acompanhamento de tendências completo. A estratégia funciona melhor em mercados com uma tendência clara, controlando o risco através de stop loss dinâmicos e configurações de stop loss razoáveis. Embora existam algumas limitações, a estabilidade e adaptabilidade da estratégia pode ser ainda melhorada através da direção de otimização proposta. A estratégia é adequada para acompanhar tendências de médio e longo prazo e, ao mesmo tempo, mantém uma certa capacidade de lucratividade.
/*backtest
start: 2024-04-11 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Supertrend + RSI Strategy", overlay=true)
// Input Parameters
atrLength = input.int(10, title="ATR Length", minval=1)
factor = input.float(3.0, title="Supertrend Factor", step=0.1)
rsiLength = input.int(14, title="RSI Length", minval=1)
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
// Supertrend Calculation
atr = ta.atr(atrLength)
upperBand = ta.sma(close, atrLength) + (factor * atr)
lowerBand = ta.sma(close, atrLength) - (factor * atr)
supertrend = 0.0
supertrend := close > nz(supertrend[1], close) ? lowerBand : upperBand
supertrendSignal = close > supertrend ? "Buy" : "Sell"
// RSI Calculation
rsi = ta.rsi(close, rsiLength)
// Trading Logic
longCondition = (supertrendSignal == "Buy") and (rsi > rsiOversold)
shortCondition = (supertrendSignal == "Sell") and (rsi < rsiOverbought)
// Entry and Exit Conditions
if longCondition
strategy.entry("Long", strategy.long)
if shortCondition
strategy.entry("Short", strategy.short)
// Plot Supertrend
plot(supertrend, title="Supertrend", color=color.new(color.blue, 0), linewidth=2, style=plot.style_line)
// Plot RSI Levels
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi, title="RSI", color=color.orange, style=plot.style_stepline)
// Alerts
alertcondition(longCondition, title="Buy Alert", message="Supertrend + RSI Buy Signal")
alertcondition(shortCondition, title="Sell Alert", message="Supertrend + RSI Sell Signal")