
A estratégia é um sistema de negociação de reversão de tendência com sincronia de vários indicadores, que combina três indicadores técnicos, principalmente o indicador relativamente forte ((RSI), o indicador de linha de paralelo ((SAR) e a média móvel simples ((SMA)). A ideia central da estratégia é alertar o RSI sobre o sinal de venda e venda de potenciais oportunidades de reversão, depois usar a mudança de direção do indicador SAR para confirmar o sinal de reversão e, finalmente, usar a média móvel como referência dinâmica de stop-loss.
A estratégia opera em três etapas principais:
A estratégia, através da cooperação entre o RSI e o SAR, constrói um sistema de negociação de reversão de tendência relativamente confiável. O uso de médias móveis como ferramenta de controle de risco dinâmico garante a captação efetiva da tendência e o controle dinâmico do risco. A principal vantagem da estratégia reside na verificação de múltiplos sinais e nas regras de negociação claras, mas na aplicação prática é necessário prestar atenção à identificação do ambiente de mercado e otimização dinâmica dos parâmetros.
/*backtest
start: 2024-07-15 00:00:00
end: 2025-02-15 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BNB_USDT"}]
*/
//@version=5
strategy("SAR + RSI Strategy", overlay=true, margin_long=100, margin_short=100)
// ———————— SAR Parameters ————————
start = input(0.02, "SAR Start")
increment = input(0.02, "SAR Increment")
maximum = input(0.2, "SAR Maximum")
// ———————— RSI Parameters ————————
rsiLength = input(14, "RSI Length")
upperLevel = input(70, "RSI Upper Level")
lowerLevel = input(30, "RSI Lower Level")
// ———————— SMA Parameter ————————
smaLength = input(21, "SMA Exit Length")
// ———————— Indicators Calculation ————————
// SAR Calculation
sarValue = ta.sar(start, increment, maximum)
sarUp = sarValue < close
sarDown = sarValue > close
// RSI Calculation
rsi = ta.rsi(close, rsiLength)
rsiOverbought = ta.cross(rsi, upperLevel)
rsiOversold = ta.cross(rsi, lowerLevel)
// SMA Calculation
sma21 = ta.sma(close, smaLength)
// ———————— Entry Conditions ————————
longCondition =
// RSI oversold signal occurred in last 3 bars
(ta.barssince(rsiOversold) <= 3) and
// SAR reversal to bullish occurs now
sarUp and not sarUp[1]
shortCondition =
// RSI overbought signal occurred in last 3 bars
(ta.barssince(rsiOverbought) <= 3) and
// SAR reversal to bearish occurs now
sarDown and not sarDown[1]
// ———————— Exit Conditions ————————
exitLong = ta.crossunder(close, sma21)
exitShort = ta.crossover(close, sma21)
// ———————— Strategy Execution ————————
strategy.entry("Long", strategy.long, when=longCondition)
strategy.close("Long", when=exitLong)
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.close("Short", when=exitShort)
// ———————— Visualizations ————————
// plot(sarValue, "SAR", style=plot.style_circles, color=sarUp ? color.green : color.red)
// plot(sma21, "21 SMA", color=color.orange)