Todos os conteúdos em inglês
Esta estratégia identifica sinais de negociação usando o indicador RSI para determinar condições de sobrecompra/supervenda e combinando com o indicador Bollinger Bands para descrever a faixa de oscilação de preços.
A estratégia baseia-se principalmente em dois indicadores:
Calcula o RSI para um determinado período e determina se entra em zonas de sobrecompra ou sobrevenda de acordo com parâmetros pré-estabelecidos, como o limiar de sobrecompra a 40 e o limiar de sobrevenda a 45.
Ele calcula as Bandas de Bollinger para um período e usa as bandas superior e inferior para formar um canal de preços, descrevendo a faixa de oscilações de preços.
Com base no que precede, as regras de negociação são as seguintes:
Quando o RSI cruza acima de 45 na zona de sobrevenda, e o preço cruza acima da faixa inferior de Bollinger, gerar sinal de compra. Quando o RSI cruza abaixo de 40 na zona de sobrecompra, e o preço cruza abaixo da faixa superior de Bollinger, gerar sinal de venda.
As vantagens da combinação de RSI e Bollinger Bands incluem:
O RSI identifica os níveis de sobrecompra/supervenda, as Bandas de Bollinger determinam a direção da tendência de preços, complementando-se.
As bandas de Bollinger podem servir como níveis de stop loss para controlo de risco.
Parâmetros simples facilitam a implementação e o backtest.
Os parâmetros do RSI podem ser otimizados para determinar o melhor intervalo de sobrecompra/supervenda.
Podem utilizar-se diferentes elementos de cálculo dos preços para se adaptarem a diversos ambientes de mercado.
Há também alguns riscos com esta estratégia:
Largura excessiva das Bandas de Bollinger levando a uma má expectativa de stop loss.
A definição incorrecta do parâmetro RSI que causa um julgamento incorreto do nível de sobrecompra/supervenda.
Incapacidade de determinar com precisão os pontos de inversão da tendência, risco de sinais perdidos.
Incapacidade de controlar efetivamente as perdas, risco de que o stop loss seja afetado por variações significativas de preços.
Algumas maneiras de otimizar a estratégia:
Otimizar os parâmetros do RSI para determinar o intervalo ideal de sobrecompra/supervenda.
Otimizar o parâmetro de largura das bandas de Bollinger para controlar o intervalo de stop loss.
Adicionar outros indicadores para identificar inversões de tendência e evitar sinais perdidos.
Aplicar modelos de aprendizagem de máquina para determinar o tempo de negociação.
Usar conjuntos de parâmetros diferentes com base em diferentes ambientes de mercado.
Adicionar mecanismos dinâmicos de stop loss.
Desenvolver programas para otimização automática de parâmetros.
Em resumo, combinando RSI e Bollinger Bands, esta estratégia forma decisões comerciais relativamente sólidas. A lógica é simples e clara, boa para o controle de risco, mas tem espaço para otimização. A melhoria da estratégia através da otimização de parâmetros, otimização de stop loss, incorporação de algoritmos, etc. pode torná-la mais adaptável a ambientes de mercado complexos. A estratégia fornece ideias para a construção de sistemas de negociação e vale a pena mais pesquisa e aplicação.
/*backtest start: 2023-08-18 00:00:00 end: 2023-09-17 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Mdemoio //@version=4 strategy("Madri", shorttitle="Madri", overlay=true) // Version 1.1 ///////////// RSI RSIlength = input(2,title="A") RSIoverSold = 45 RSIoverBought = 40 price = close vrsi = rsi(price, RSIlength) ///////////// Bollinger Bands BBlength = input(150, minval=1,title="B") BBmult = 2// input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation") BBbasis = sma(price, BBlength) BBdev = BBmult * stdev(price, BBlength) BBupper = BBbasis + BBdev BBlower = BBbasis - BBdev source = close buyEntry = crossover(source, BBlower) sellEntry = crossunder(source, BBupper) ///////////// Colors //switch1=input(true, title="Enable Bar Color?") //switch2=input(true, title="Enable Background Color?") //TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) and BBbasis < BBbasis[1] ? red : RSIoverSold and (price[1] < BBlower and price > BBlower) and BBbasis > BBbasis[1] ? green : na //barcolor(switch1?TrendColor:na) //bgcolor(switch2?TrendColor:na,transp=50) ///////////// RSI + Bollinger Bands Strategy if (not na(vrsi)) if (crossover(vrsi, RSIoverSold) and crossover(source, BBlower)) strategy.entry("RSI_BB_L", strategy.long, stop=BBlower, comment="Buy") else strategy.cancel(id="RSI_BB_L") if (crossunder(vrsi, RSIoverBought) and crossunder(source, BBupper)) strategy.entry("RSI_BB_S", strategy.short, stop=BBupper, comment="Sell") else strategy.cancel(id="RSI_BB_S") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)