Bollinger Bands + RSI + Estratégia de negociação dupla da EMA

Autora:ChaoZhang, Data: 2023-12-29 14:46:57
Tags:

img

Resumo

Esta estratégia integra Bollinger Bands, Relative Strength Index (RSI) e Exponential Moving Average (EMA) três indicadores para implementar uma estratégia de negociação automática com longos períodos de retenção para ações.

Princípio da estratégia

Esta estratégia julga principalmente com base em Bollinger Bands, RSI e EMA três indicadores. O trilho do meio em Bollinger Bands é a média móvel simples do preço, e os trilhos superior e inferior são dois intervalos de desvio padrão do preço. Bollinger Bands pode julgar o estado de sobrecompra / sobrevenda do mercado. Quando o preço está perto do trilho inferior, ele indica o estado de sobrevenda, e quando o preço está perto do trilho superior, ele indica o estado de sobrevenda.

O sinal de compra para esta estratégia é gerado quando o RSI está abaixo da linha de supervenda de 30 e, ao mesmo tempo, o preço se aproximou ou tocou o trilho inferior das Bandas de Bollinger em estado de supervenda. Isso evita sinais falsos.

O sinal de venda é gerado quando o preço toca o trilho superior das Bandas de Bollinger durante uma tendência de alta.

Vantagens da estratégia

  1. Integra Bandas de Bollinger e RSI para confirmar duplamente o estado de sobrecompra/supervenda, evitando falsos sinais.
  2. Utiliza a EMA para determinar a direção da tendência de preços, evitando a negociação contra a tendência.
  3. Os parâmetros do RSI e das Bandas de Bollinger podem ser personalizados para diferentes ações.
  4. Uma lógica estratégica simples e clara, fácil de compreender e implementar.

Riscos da Estratégia

  1. Tanto as Bandas de Bollinger quanto o RSI podem gerar sinais falsos, causando entradas erradas.
  2. A posição stop loss necessita de uma otimização adicional, com riscos de retracement mais elevados.
  3. A EMA pode falhar em determinar perfeitamente a tendência com pontos de inversão de tendência perdidos.
  4. A configuração inadequada dos parâmetros pode conduzir a um excesso de negociação ou à perda de oportunidades de negociação.

Soluções:

  1. Encurtar o período das Bandas de Bollinger, otimizar os parâmetros do RSI.
  2. Paragem de perda dinâmica.
  3. Integrar outros indicadores para a determinação da tendência.
  4. Teste diferentes configurações de parâmetros para encontrar a combinação ideal.

Orientações para a otimização da estratégia

A estratégia pode ser ainda melhorada nos seguintes aspectos:

  1. Adicionar mais indicadores para julgamento, por exemplo, KD para o estado de sobrecompra/supervenda.
  2. Adicione mecanismos de stop loss como stop loss móvel, zone stop loss para gerenciar riscos.
  3. Adicionar regras de saída baseadas na determinação da tendência da EMA nas condições de venda.
  4. Otimizar as definições dos parâmetros para alargar a gama de lucros, por exemplo, ajustar a largura das bandas de Bollinger.
  5. Adicionar regras de entrada para evitar falhas, por exemplo, filtros de volume.

Conclusão

A estratégia integra Bandas de Bollinger, RSI e EMA para uma estratégia de negociação automática de longo prazo com filtros de confirmação dupla. A dupla confirmação para o status de sobrecompra/supervenda evita sinais falsos de forma eficaz, e o uso da EMA para determinação de tendência impede a negociação contra a tendência. Enquanto isso, configurações de parâmetros flexíveis tornam-na adaptável a diferentes ações. Uma melhoria adicional nos aspectos de mecanismos de stop loss e saída pode melhorar a eficiência e a gestão de riscos da estratégia. A estratégia fornece uma valiosa estrutura de referência para iniciantes e tem significado prático.


/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Bollinger + RSI + EMA, Double Strategy Long-Only (by ChartArt) v1.3", shorttitle="rsi 30 min ADJ Buy", overlay=true)

///////////// RSI
RSIlength = input(2, title="RSI Period Length") // Adjusted RSI period length
RSIoverSold = input(30, title="RSI Oversold Level")  // Adjustable RSI oversold level
RSIoverBought = input(80, title="RSI Overbought Level")  // Adjustable RSI overbought level
price = close
vrsi = rsi(price, RSIlength)

///////////// Bollinger Bands
BBlength = input(231, minval=1, title="Bollinger Period Length") // Adjusted Bollinger period length
BBmult = 2
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev

///////////// EMA
useEMA = input(true, title="Use EMA?")
emaLength = input(20, title="EMA Period Length")
ema = useEMA ? ema(close, emaLength) : na

source = close
buyEntry = crossover(source, BBlower) or (close < BBlower and close > BBbasis) or (low < BBlower and close > BBbasis) // Add condition for low touching Bollinger Band
sellEntry = crossunder(source, BBupper)

///////////// Plotting
plot(BBbasis, color=color.aqua, title="Bollinger Bands SMA Basis Line")
plot(BBupper, color=color.silver, title="Bollinger Bands Upper Line")
plot(BBlower, color=color.silver, title="Bollinger Bands Lower Line")
plot(ema, color=color.orange, title="EMA")  // Plot EMA

///////////// RSI + Bollinger Bands Strategy
long = crossover(vrsi, RSIoverSold) and buyEntry
close_long = close >= BBupper

if (not na(vrsi))
    if long
        strategy.entry("Buy", strategy.long, qty=10, stop=BBlower, comment="Buy")
    else
        strategy.cancel(id="Buy")
        
    if close_long
        strategy.close("Buy")


Mais.