Estratégia de tendência de impulso baseada no MACD e nas bandas de Bollinger

Autora:ChaoZhang, Data: 2024-02-29 13:49:03
Tags:

img

Resumo

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.

Princípio da estratégia

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.

Análise das vantagens

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:

  1. 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.

  2. A entrada de retração pode efetivamente evitar o risco de stop loss e acompanhar as tendências a médio e longo prazo.

  3. Utilizando resistência e suporte nas Bandas de Bollinger pode ainda mais bloquear os lucros.

  4. Os parâmetros MACD e Bollinger Bands podem ser ajustados de forma flexível para se adequarem aos diferentes ambientes de mercado.

Análise de riscos

Há também alguns riscos a considerar para esta estratégia:

  1. Em tendências oscilantes, o MACD e as Bandas de Bollinger podem gerar múltiplos sinais inválidos.

  2. 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.

  3. Os parâmetros das bandas de Bollinger precisam ser ajustados com base na volatilidade do mercado.

  4. Uma boa gestão dos riscos e o dimensionamento das posições são a chave para manter os lucros desta estratégia.

Orientações de otimização

A estratégia pode também ser otimizada nos seguintes aspectos:

  1. 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.

  2. 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.

  3. Adicione estratégia de stop loss.

  4. Incorporar outros indicadores de verificação para melhorar a estabilidade da estratégia.

Conclusão

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)


Mais.