A estratégia combina as vantagens do indicador MACD e das Bandas de Bollinger para implementar uma estratégia de rastreamento de tendências. A estratégia usa a linha rápida e lenta do MACD para construir as Bandas de Bollinger. A linha do meio das Bandas de Bollinger é a linha de sinal do MACD. Ela fica curta quando o preço atravessa o trilho superior das Bandas de Bollinger e fica longa quando o preço atravessa o trilho inferior das Bandas de Bollinger.
Os indicadores principais desta estratégia são MACD e Bollinger Bands. O indicador MACD consiste em linha rápida, linha lenta e histograma MACD. A linha rápida é geralmente a EMA de 12 dias e a linha lenta é a EMA de 26 dias. A diferença entre eles é o histograma MACD. Esta estratégia usa a diferença entre a linha rápida e a linha lenta como a linha média básica das Bandas de Bollinger.
A estratégia de compra é gerada quando o preço atravessa o trilho inferior das Bandas de Bollinger para cima. Um sinal de venda é gerado quando o preço atravessa o trilho superior das Bandas de Bollinger para baixo. Para reduzir o risco de ficar preso e perder oportunidades de reversão, esta estratégia não entra no mercado imediatamente após o rompimento. Em vez disso, espera o pullback para testar a linha média das Bandas de Bollinger antes de entrar.
Além disso, os trilhos superiores e inferiores também podem ser usados como resistência e suporte, respectivamente.
Esta estratégia combina as vantagens do MACD e das bandas de Bollinger para alcançar o acompanhamento da tendência, com os seguintes pontos fortes:
O MACD possui forte capacidade de julgamento de tendências. As Bandas de Bollinger podem se ajustar de forma adaptativa. A combinação pode determinar efetivamente os pontos de reversão da tendência.
A entrada de retração pode efetivamente evitar o risco de stop loss e acompanhar as tendências a médio e longo prazo.
Utilizando resistência e suporte nas Bandas de Bollinger pode ainda mais bloquear os lucros.
Os parâmetros MACD e Bollinger Bands podem ser ajustados de forma flexível para se adequarem aos diferentes ambientes de mercado.
Há também alguns riscos a considerar para esta estratégia:
Em tendências oscilantes, o MACD e as Bandas de Bollinger podem gerar múltiplos sinais inválidos.
A posição de paragem deve ser definida durante a entrada de retração para evitar o alargamento da perda devido a uma retração excessiva.
Os parâmetros das bandas de Bollinger precisam ser ajustados com base na volatilidade do mercado.
Uma boa gestão dos riscos e o dimensionamento das posições são a chave para manter os lucros desta estratégia.
A estratégia pode também ser otimizada nos seguintes aspectos:
Otimizar os parâmetros do MACD para linha rápida de 8 dias e linha lenta de 20 dias. Ajustar com base em diferentes produtos e prazos para melhorar a sensibilidade do indicador.
Adicione o julgamento da tendência ascendente e descendente para otimizar os parâmetros das Bandas de Bollinger, reduzindo os falsos sinais nos mercados oscilantes.
Adicione estratégia de stop loss.
Incorporar outros indicadores de verificação para melhorar a estabilidade da estratégia.
A estratégia de tendência de momento baseada no MACD e nas bandas de Bollinger rastreia tendências de médio e longo prazo através de combinações de indicadores e entra em retrações para reduzir riscos. Otimiza configurações de parâmetros e controla riscos.
/*backtest start: 2023-02-22 00:00:00 end: 2024-02-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //Simple strategy based on MACD and Bollinger Bands, where BBs are calculatend from macd signal. strategy("Strategy MACD vs BB", overlay=false) fast_length = input(title="Fast MA period", type=input.integer, defval=8) slow_length = input(title="Slow MA period", type=input.integer, defval=21) src = input(close,"Source") // ----------MA calculation - ChartArt------------- smoothinput = input(1, minval=1, maxval=4, title='Moving Average Calculation: (1 = SMA), (2 = EMA), (3 = WMA), (4 = Linear)') fast_ma = smoothinput == 1 ? sma(src, fast_length):smoothinput == 2 ? ema(src, fast_length):smoothinput == 3 ? wma(src, fast_length):smoothinput == 4 ? linreg(src, fast_length,0):na slow_ma = smoothinput == 1 ? sma(src, slow_length):smoothinput == 2 ? ema(src, slow_length):smoothinput == 3 ? wma(src, slow_length):smoothinput == 4 ? linreg(src, slow_length,0):na //---------------------------------------------- macd = fast_ma - slow_ma p1=plot(macd,"macd signal",color=color.blue) length = input(40, minval=1) mult = input(2.0,"BB multiplier") basis = sma(macd, length) dev = mult * stdev(macd, length) plot(basis,"BB basis",color=color.orange) upper = basis + dev lower = basis - dev p2=plot(upper,"BB upper",color=color.red) p3=plot(lower,"BB basis",color=color.green) longCondition = crossover(macd, lower) shortCondition = crossunder(macd, upper) plotshape(longCondition?lower:na, title="Long", style=shape.xcross, location=location.absolute, text="Long", color=color.green, transp=0, size=size.tiny) plotshape(shortCondition?upper:na, title="Short", style=shape.xcross, location=location.absolute, text="Short", color=color.red, transp=0, size=size.tiny) fill(p1,p3,color=macd<lower?color.green:na,transp=90,title="support") fill(p1,p2,color=macd>upper?color.red:na,transp=90,title="resistance") if longCondition strategy.entry("Long",strategy.long) if shortCondition strategy.entry("Short",strategy.short)