Estratégia de negociação do Bollinger Band e do Stoch RSI

Autora:ChaoZhang, Data: 21 de setembro de 2023 21:02:02
Tags:

Resumo

Esta estratégia combina os indicadores Bollinger Bands e Stoch RSI para negociação de múltiplos indicadores.

Estratégia lógica

A estratégia baseia-se em dois indicadores principais:

  1. Bandeiras de Bollinger

    Calcule as faixas superior, média e inferior. Um sinal de compra é gerado quando o preço ultrapassa a faixa inferior.

  2. Indicador de variação de preços

    Um sinal de compra é gerado quando a linha K cruza acima da linha D.

A lógica de negociação específica é: abrir longo quando ambos os breakout inferior Bollinger Bands e Stoch RSI cruz de ouro ocorrem juntos.

A lógica de saída usa as faixas para obter lucro e parar a perda: fechar para lucro quando o preço toca a faixa superior ou média novamente, fechar para perda quando o preço retorna abaixo da faixa inferior.

Vantagens

  • Combina as bandas de Bollinger e o RSI de Stoch
  • Bandas julgam tendência geral, Stoch RSI otimiza entrada
  • Stoch RSI filtra falhas de banda
  • As faixas média e inferior fornecem saídas
  • Múltiples parâmetros ajustáveis para otimizações

Riscos

  • Indicadores baseados em MA com atraso, faltando melhores entradas
  • Reacção lenta a eventos repentinos, exclusivamente orientada por indicadores
  • Configurações incorretas da faixa invalidam paradas
  • Os parâmetros do RSI do Bad Stoch geram sinais falsos.
  • Ajuste separado dos parâmetros necessários para diferentes produtos

Os riscos podem ser reduzidos:

  • Optimização dos parâmetros para maior precisão
  • Adicionando filtros de confirmação como o MACD
  • Usando paradas traseiras em vez de paradas de banda
  • Parâmetros de ensaio para diferentes produtos
  • Sistema de regulação do tamanho da posição

Orientações para a melhoria

A estratégia pode ser melhorada:

  1. Optimização dos parâmetros das bandas de Bollinger

    Ajustar as relações de cálculo superior/inferior para melhor ajustamento

  2. Optimização dos parâmetros do RSI de Stoch

    Encontrar valores ideais de K e D

  3. Adição de indicadores de confirmação como o MACD

    Evitar sinais falsos baseados num único indicador

  4. Utilização de paralisações de lucro em vez de paralisações fixas

    Paradas baseadas na volatilidade dos preços

  5. Parâmetros de ensaio separados para diferentes produtos

    Os parâmetros ideais variam de acordo com os diferentes produtos

Resumo

Esta estratégia aproveita as Bandas de Bollinger para a direção da tendência e o Stoch RSI para a otimização de entrada, aproveitando uma abordagem de múltiplos indicadores. Mas desafios como a otimização de parâmetros difíceis e a precisão do sinal existem.


/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

strategy(title = "BB+RSI v2", overlay = true)

price=close
////////// ///////  BB /////////////////////////

bblength = input(50)
bbupmult =input(2,step=0.1,title="Multiplier for BB Upper Band")
bblowmult = input(2,step=0.1,title="Multiplier for BB Lower Band")

basis =  sma(close,bblength)

devup = bbupmult * stdev(close, bblength)
devlow = bblowmult * stdev(close, bblength)

upper = basis + devup
lower = basis - devlow
plot(basis, color=red)
p1 = plot(upper, color=blue)
p2 = plot(lower, color=blue)
fill(p1, p2)


bbbuy= crossover(price,lower)
bbsell = crossunder(price,upper) or price>upper or crossunder(price,basis)



//////////////////// BB //////////////////////




////////////////////////  S RSI  /////////////////////

lengthrsi = input(6)
overSold = input( 20 )
overBought = input( 70 )
vrsi = rsi(price, lengthrsi)

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)

SRSIbuy=crossover(k,d)

////////////////////// S  RSI  ///////////////////////

// Conditions



longcond = bbbuy and SRSIbuy
closelong = bbsell


monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  longcond ) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( closelong  ) 

    strategy.close("BUY")







Mais.