Estratégia de ruptura da tendência baseada em bandas de Bollinger

Autora:ChaoZhang, Data: 2023-11-16 16:24:12
Tags:

img

Resumo

Esta é uma estratégia de tendência baseada em Bandas de Bollinger. Ele usa Bandas de Bollinger para calcular canais de preços e combina padrões de velas para determinar a direção da tendência. As posições longas / curtas serão abertas quando o preço sair das Bandas de Bollinger. Esta estratégia funciona bem para ações com tendências óbvias e visa capturar lucros de tendência de médio prazo.

Estratégia lógica

Esta estratégia usa a faixa superior, a faixa média e a faixa inferior das Bandas de Bollinger para determinar os intervalos de preços. As bandas superior e inferior envolvem os movimentos dos preços, enquanto a faixa média é a média móvel. A largura da faixa muda com base na volatilidade dos preços.

Após determinar a direção da tendência com a ruptura das Bandas de Bollinger, a estratégia também a confirma com padrões de velas. Se o corpo da vela se alinhar com a tendência, como a vela de alta em uma tendência de alta, uma posição será aberta. Se o corpo da vela mostrar padrão inverso, como a vela de baixa em uma tendência de alta, o sinal será ignorado. Este design visa evitar riscos falsos de ruptura.

As regras pormenorizadas relativas aos sinais de negociação são:

  1. Calcular a faixa superior, a faixa média e a faixa inferior das bandas de Bollinger para determinar a faixa de preços

  2. Quando o preço ultrapassa a faixa superior, sinaliza uma tendência ascendente/longa

  3. Se o candelabro estiver em alta, confirme a tendência e vá longo

  4. Quando o preço quebra abaixo da faixa inferior, sinaliza uma tendência de queda/curto

  5. Se o candelabro for de baixa, confirme a tendência e vá curto

  6. Estabelecer o stop loss e o take profit com base na percentagem

Ao entrar em breakouts de Bollinger Bands e confirmar com velas, esta estratégia pode identificar efetivamente a direção da tendência e obter boas entradas durante as fases iniciais da tendência.

Análise das vantagens

Trata-se de uma tendência típica que segue uma estratégia com os seguintes pontos fortes:

  1. As bandas de Bollinger são adaptáveis e podem ajustar os intervalos para ações com volatilidade diferente

  2. A confirmação do candelabro filtra falhas

  3. A detenção a médio prazo diminui a frequência de negociação e reduz os custos/deslizamento

  4. A captação das tendências a médio prazo evita o ruído a curto prazo e proporciona uma boa relação risco-recompensa

  5. Os resultados dos backtests são fortes e as negociações reais são estáveis devido à sistematização

  6. A lógica estratégica é clara e fácil de entender, com espaço para melhorias

Determinando a tendência com Bollinger Bands e entrando em confirmação de candelabro, esta estratégia captura efetivamente o impulso de médio prazo impulsionado pelo volume.

Análise de riscos

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

  1. O risco de ruptura fracassada.

  2. Risco de reversão: as tendências a médio prazo também podem reverter-se, deverão ser estabelecidos limites razoáveis

  3. Os parâmetros e paradas de Bollinger Bands precisam ser ajustados para diferentes ações

  4. Risco de sobreajuste: a otimização excessiva dos parâmetros provoca ajuste da curva

  5. Risco de execução: existe uma divergência entre backtest e negociação real

Para combater estes riscos, podem ser introduzidas as seguintes melhorias:

  1. Otimizar os parâmetros e largura das bandas de Bollinger para melhor ajuste

  2. Adicione mais fatores como volume para confirmar a tendência

  3. Usar paradas dinâmicas para evitar grandes perdas em reversões

  4. Aplicar a análise de caminhada para frente para evitar o sobreajuste

  5. Melhorar a execução de ordens para melhorar a eficiência real das negociações

Orientações de otimização

Esta estratégia pode ser reforçada nos seguintes aspectos:

  1. Adicionar mais indicadores como KDJ, MACD para confirmar sinais e melhorar a precisão

  2. Usar aprendizado de máquina para otimizar dinamicamente parâmetros em vez de valores fixos

  3. Estabelecer zonas de preços em torno de pontos de ruptura para gerar sinais mais precisos

  4. Otimizar as saídas com paradas de atraso ou tomada parcial de lucro

  5. Introduzir o dimensionamento das posições para uma melhor gestão dos riscos

  6. Utilize tipos de ordem avançados para melhorar os resultados de execução

  7. Adicionar filtros de regime de mercado para desligar a estratégia em determinados ambientes

Ao introduzir mais técnicas e otimizações, a estabilidade e a rentabilidade desta estratégia podem ser melhoradas para obter melhores resultados de backtest e negociação real.

Conclusão

Esta é uma estratégia típica de tendência que usa Bandas de Bollinger como intervalos dinâmicos para determinar a direção da tendência.

As vantagens desta estratégia incluem o uso de Bandas de Bollinger para tendência, candelabro para confirmação de entrada, baixa frequência de negociação e fácil sistematização.

No geral, como uma tendência típica de seguir a estratégia, tem uma lógica clara e é fácil de implementar com forte viabilidade.


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


//@version=2
strategy("Noro's Bands Scalper Strategy v1.2", shorttitle = "Scalper str 1.2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needct = input(false, defval = false, title = "Counter-trend entry")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
src = close

//PriceChannel 1
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd1 = center + distsma / 2
ld1 = center - distsma / 2

//Trend
trend = close < ld and high < center ? -1 : close > hd and low > center ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Body
body = abs(close - open)
smabody = sma(body, 100)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up7 = trend == 1 and ((bar == -1 and bar[1] == -1) or (body > smabody and close < open)) ? 1 : 0
dn7 = trend == 1 and bar == 1 and bar[1] == 1 and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and bar == -1 and bar[1] == -1 and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0
dn8 = trend == -1 and ((bar == 1 and bar[1] == 1) or (body > smabody and close > open)) ? 1 : 0

if up7 == 1 or up8 == 1 
    strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na)

if dn7 == 1 or dn8 == 1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)

Mais.