
Esta estratégia combina a faixa de Brin e o indicador RSI para identificar potenciais pontos de reversão do mercado através de um método de dupla confirmação. Quando o preço atravessa a faixa de Brin abaixo e o RSI confirma a condição de superação, entra em uma posição a mais; Quando o preço atravessa a faixa de Brin acima e o RSI confirma a condição de superação, entra em uma posição a menos.
A estratégia baseia-se no princípio da regressão da média e no mecanismo de confirmação da dinâmica. As bandas de Brin ajudam a identificar os extremos de preço em relação à volatilidade recente, enquanto o RSI confirma se o mercado está realmente sobrecomprado ou sobrevendido. Os princípios principais incluem:
Na implementação do código, a estratégia usa um SMA com um ciclo de 30 dias para calcular o eixo central da faixa de Bryn Mawr, com um coeficiente de diferença padrão de 2,0, e usa um RSI com um ciclo de 14 dias como confirmação de momentum. Quando o preço atravessa a trajetória e o RSI é superior a 70, o sinal de cabeça vazia é acionado; Quando o preço atravessa a trajetória e o RSI é inferior a 30, o sinal de cabeça múltipla é acionado.
A estratégia de dupla confirmação de retorno médio Brin-RSI com proteção de parada de rastreamento representa um método de negociação de reversão de mercado bem pensado. A estratégia visa capturar reversões de alta probabilidade, enquanto filtra os falsos sinais, através da combinação de sinais de volatilidade do Brin com a confirmação de dinâmica do RSI. O mecanismo de gerenciamento de risco embutido fornece uma importante camada de proteção através da fixação e rastreamento de reversão de perda.
/*backtest
start: 2024-08-11 00:00:00
end: 2025-08-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("BB & RSI Trailing Stop Strategy", overlay=true, initial_capital=10000)
// --- Inputs for Bollinger Bands, RSI, and Trade Management ---
bb_length = input.int(30, title="BB Length", minval=1)
bb_mult = input.float(2.0, title="BB StdDev", minval=0.001, maxval=50)
rsi_length = input.int(14, title="RSI Length", minval=1)
rsi_overbought = input.int(70, title="RSI Overbought Level", minval=1)
rsi_oversold = input.int(30, title="RSI Oversold Level", minval=1)
// We only need an input for the fixed stop loss now.
fixed_stop_points = input.int(40, title="Fixed Stop Loss Points", minval=1)
// --- Define Trailing Stop Value ---
// The trailing stop is hardcoded to 40 points as requested.
trailing_stop_points = 40
// --- Calculate Indicators ---
// Bollinger Bands
basis = ta.sma(close, bb_length)
dev = bb_mult * ta.stdev(close, bb_length)
upper = basis + dev
lower = basis - dev
// RSI
rsi_value = ta.rsi(close, rsi_length)
// --- Plot the Indicators on the chart ---
plot(basis, "Basis", color=color.new(color.gray, 0))
plot(upper, "Upper", color=color.new(color.red, 0))
plot(lower, "Lower", color=color.new(color.green, 0))
// --- Define Entry Conditions ---
// Short entry when price crosses upper band AND RSI is overbought
short_condition = ta.crossover(close, upper) and (rsi_value > rsi_overbought)
// Long entry when price crosses under lower band AND RSI is oversold
long_condition = ta.crossunder(close, lower) and (rsi_value < rsi_oversold)
// --- Execute Trades and Manage Exits ---
if (strategy.position_size == 0)
// Logic for SHORT trades
if (short_condition)
strategy.entry("BB/RSI Short", strategy.short)
// Logic for LONG trades
if (long_condition)
strategy.entry("BB/RSI Long", strategy.long)
// Apply the fixed stop loss and trailing stop to any open position
strategy.exit(id="Exit Order",
loss=fixed_stop_points,
trail_points=trailing_stop_points,
trail_offset=0)