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.
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 é:
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)