Bollinger Bands Estratégia de negociação de desvio padrão duplo

Autora:ChaoZhang, Data: 2023-12-18 17:23:42
Tags:

img

Resumo

Esta estratégia é uma estratégia de negociação projetada com base no modelo de desvio padrão duplo das Bandas de Bollinger. Ela usa os trilhos superior e inferior das Bandas de Bollinger e um e dois desvios padrão como sinais de negociação.

Estratégia lógica

A estratégia calcula primeiro o trilho médio, o trilho superior e o trilho inferior das Bandas de Bollinger.desvio padrão, e o trilho inferior é o trilho médio - 2A estratégia também traça as linhas do meio-relógio + 1 desvio padrão e do meio-relógio - 1 desvio padrão. Eles são usados como linhas de stop loss. A lógica específica é:

  1. Calcular a SMA de CLOSE como o trilho médio das Bandas de Bollinger
  2. Calcular o desvio-padrão STD de CLOSE e calcular 2*STD
  3. Ferrovia central + 2O STD é o trilho superior das Bandas de Bollinger, o trilho médio - 2STD é o trilho inferior
  4. Vai longo quando o preço atravessa o trilho superior
  5. Vai curto quando o preço atravessa o trilho inferior
  6. Se a linha de stop loss estiver quebrada, feche a posição.

Vantagens da estratégia

  1. O projeto de desvio padrão duplo torna o julgamento de ruptura mais rigoroso para evitar sinais errados
  2. O projeto de linhas de stop loss duplas maximiza o controle do risco
  3. Grande espaço de otimização de parâmetros, o período do trilho médio e o múltiplo do desvio padrão podem ser ajustados
  4. A redução pode ser controlada ajustando o nível de stop loss

Riscos da Estratégia

  1. As estratégias de Bollinger Bands são propensas a falhas, levando a sinais comerciais imprecisos
  2. O ajuste de duas linhas de desvio padrão e duas linhas de stop loss pode ser muito rigoroso, perdendo oportunidades ao filtrar muitos sinais
  3. Configurações de parâmetros inadequadas podem aumentar o risco da estratégia
  4. O controlo da utilização não é suficientemente perfeito para controlar eficazmente as perdas em condições de mercado extremas

Orientações de otimização

  1. Considere a combinação de outros indicadores para filtrar os sinais de negociação Bollinger Bands para evitar falsos breakouts
  2. Teste diferentes configurações de parâmetros e otimize os parâmetros para melhor relação retorno/abastecimento
  3. Projeto de mecanismos dinâmicos de stop loss, tais como stop loss de trailing ou stop loss de percentagem de capital
  4. Combinar algoritmos de aprendizado de máquina para otimizar automaticamente parâmetros

Conclusão

Em geral, esta estratégia é uma estratégia típica de ruptura de Bollinger Bands. Ele usa desvios padrão duplos para aumentar a rigor do julgamento do sinal e adota linhas de stop loss duplas para controlar ativamente os riscos. A estratégia tem algum espaço de otimização de parâmetros. Ajustando parâmetros como período do meio do trilho e multiplicador de desvio padrão, um melhor desempenho da estratégia pode ser obtido. Ao mesmo tempo, a estratégia também enfrenta o problema comum de falhas de ruptura nas estratégias de Bollinger Bands. Além disso, há espaço para melhoria e otimização no mecanismo de stop loss.


/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Bollinger Bands: Madrid : 14/SEP/2014 11:07 : 2.0
// This displays the traditional Bollinger Bands, the difference is 
// that the 1st and 2nd StdDev are outlined with two colors and two
// different levels, one for each Standard Deviation

strategy(shorttitle='MBB', title='Bollinger Bands', overlay=true)
src = input(close)
length = input.int(34, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)

basis = ta.sma(src, length)
dev = ta.stdev(src, length)
dev2 = mult * dev

upper1 = basis + dev
lower1 = basis - dev
upper2 = basis + dev2
lower2 = basis - dev2

colorBasis = src >= basis ? color.blue : color.orange

pBasis = plot(basis, linewidth=2, color=colorBasis)
pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles)
pUpper2 = plot(upper2, color=color.new(color.blue, 0))
pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles)
pLower2 = plot(lower2, color=color.new(color.orange, 0))

fill(pBasis, pUpper2, color=color.new(color.blue, 80))
fill(pUpper1, pUpper2, color=color.new(color.blue, 80))
fill(pBasis, pLower2, color=color.new(color.orange, 80))
fill(pLower1, pLower2, color=color.new(color.orange, 80))

// Entry conditions
longCondition = ta.crossover(close, upper1)
shortCondition = ta.crossunder(close, lower1)

// Entry and exit strategy
strategy.entry("Buy", strategy.long, when=longCondition)
strategy.entry("Sell", strategy.short, when=shortCondition)

strategy.close("Buy", when=shortCondition)
strategy.close("Sell", when=longCondition)

Mais.