
A estratégia integra o indicador de Brin, o indicador de força relativa (RSI) e a média móvel (MA) com o objetivo de identificar pontos de entrada e saída potenciais do mercado. Pode gerar alertas de compra e venda, que podem ser executados por um sistema de negociação manual ou automático.
A estratégia usa dois parâmetros diferentes para gerar um canal de preços. O parâmetro padrão para o Brinks é o comprimento de 20 ciclos, com uma diferença padrão de 2. Os tracks superiores e inferiores do Brinks servem como resistência e suporte dinâmico, respectivamente.
O indicador RSI é usado para determinar a força ou fraqueza da dinâmica de preços. Os valores do RSI são lidos para determinar se há excesso de compra ou venda.
A estratégia também integra uma média móvel de 50 períodos para determinar a direção da tendência geral. Quando o preço está acima da média móvel, está em uma tendência ascendente; Quando o preço está abaixo da média móvel, está em uma tendência descendente.
Condições para um sinal de compra: RSI acima da linha de supercompra e sem contração da faixa de Bryn.
Condições para o sinal de venda: RSI abaixo da linha de supera venda e sem contração da faixa de Bryn.
Condições para o sinal de posição equilibrada: a posição longa tem um preço de fechamento abaixo da média móvel. A posição curta tem um preço de fechamento acima da média móvel.
Combinando os três indicadores de Brinks, RSI e média móvel, compreende a direção da tendência, evitando falsos sinais.
As faixas de Brin determinam os altos e baixos locais e confirmam a ruptura, o RSI filtra as falsas rupturas, a média móvel determina o movimento geral. Os três se verificam mutuamente e identificam com precisão os pontos de mudança de tendência.
Os parâmetros de estratégia foram otimizados, com a utilização de dois parâmetros de diferença padrão, para uma descrição mais precisa do canal de preços.
Quando a faixa de Brin se contrai, é fácil gerar um sinal de erro. Neste momento, o RSI também está perto da zona neutra, e deve ser evitado negociar.
O RSI e as médias móveis podem produzir sinais errados em tendências de choque. Deve-se identificar previamente se está em um mercado de choque.
A incapacidade de lidar eficazmente com a lacuna de salto de preço deve ser combinada com outros indicadores para determinar a verdadeira ruptura.
Optimizar os parâmetros das faixas de Brimstone e do RSI para que sejam mais adequados às características de diferentes variedades e períodos de tempo.
A adição de uma configuração adicional de Stop Loss.
Adicionar filtros de tendência, como o ADX, para determinar se está entrando em uma tendência. Reduzir a invalidez de negociação em mercados de turbulência.
Combinado com um sistema de negociação automática, o uso de sinais de negociação gerados é executado automaticamente, sem a necessidade de intervenção humana.
A estratégia integra os benefícios de três indicadores, a faixa de Brin, o RSI e a média móvel, aumentando a precisão do sinal por meio da otimização de parâmetros. Alertas de negociação podem ser geradas automaticamente. Execução de estratégias de negociação. O risco reside principalmente na criação de sinais errados em situações de turbulência.
/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bollinger Bands, RSI, and MA Strategy", overlay=true)
// Define input variables
b_len = input(20, title="BB Length")
bb_mult = input(2.0, title="BB Standard Deviation")
bb_deviation1 = input(1.0, title="BB Deviation 1")
rsi_len = input(14, title="RSI Length")
overbought = input(70, title="Overbought RSI Level")
oversold = input(30, title="Oversold RSI Level")
ma_len = input(50, title="MA Length")
stop_loss_percent = input(1.0, title="Stop Loss Percentage")
source = input(close, title="Source")
// Calculate Bollinger Bands
bb_upper = ta.sma(source, b_len) + bb_mult * ta.stdev(source, b_len)
bb_lower = ta.sma(source, b_len) - bb_mult * ta.stdev(source, b_len)
bb_upper1 = ta.sma(source, b_len) + bb_deviation1 * ta.stdev(source, b_len)
bb_lower1 = ta.sma(source, b_len) - bb_deviation1 * ta.stdev(source, b_len)
// Calculate RSI
rsi = ta.rsi(source, rsi_len)
// Calculate Moving Average
ma = ta.sma(source, ma_len)
// Determine if Bollinger Bands are contracting
bb_contracting = ta.stdev(source, b_len) < ta.stdev(source, b_len)[1]
// Entry conditions
enterLong = rsi > overbought and not bb_contracting
enterShort = rsi < oversold and not bb_contracting
// Exit conditions
exitLong = close < ma
exitShort = close > ma
// Exit trades and generate alerts
if strategy.position_size > 0 and exitLong
strategy.close("Long") // Exit the long trade
alert("Long Exit", alert.freq_once_per_bar_close)
if strategy.position_size < 0 and exitShort
strategy.close("Short") // Exit the short trade
alert("Short Exit", alert.freq_once_per_bar_close)
// Strategy orders
if enterLong
strategy.entry("Long", strategy.long)
if enterShort
strategy.entry("Short", strategy.short)
if exitLong
strategy.close("Long")
if exitShort
strategy.close("Short")
// Plotting Bollinger Bands
plot(bb_upper, color=color.blue, title="BB Upper 2")
plot(bb_lower, color=color.blue, title="BB Lower 2")
plot(bb_upper1, color=color.red, title="BB Upper 1")
plot(bb_lower1, color=color.red, title="BB Lower 1")
// Plotting RSI
plot(rsi, color=color.orange, title="RSI")
// Plotting Moving Average
plot(ma, color=color.green, title="Moving Average")