Estratégia de ação de preços baseada em bandas de Bollinger

Autora:ChaoZhang, Data: 2023-12-20 14:03:52
Tags:

img

Resumo

O nome desta estratégia é Bollinger Band-based Price Action Strategy. Ele integra análise de ação de preços e Bollinger Bands para gerar sinais de negociação com base no julgamento de condições compostas.

Princípio da estratégia

Esta estratégia calcula primeiro os trilhos superior e inferior das Bandas de Bollinger e, em seguida, julga se a última linha K quebra os trilhos superior ou inferior. Ao mesmo tempo, também julga se a entidade da última linha K é apenas metade da entidade da linha K anterior. Quando ambas as condições são atendidas, um sinal de negociação é emitido.

Especificamente, a estratégia utiliza a situação em que as entidades da linha K vermelha se tornam menores, atingindo apenas metade da entidade da linha K anterior durante uma tendência de queda, juntamente com o último preço de fechamento da linha K quebrando o trilho inferior da Banda de Bollinger como um sinal de compra.

Análise das vantagens

Esta estratégia combina indicadores técnicos e análise do comportamento dos preços, o que pode efetivamente filtrar falhas. Ao mesmo tempo, ele apenas emite sinais em pontos de inflexão, evitando negociações repetitivas durante as tendências. Além disso, a estratégia utiliza as características da contração da entidade da linha K para bloquear o ponto de inflexão após um pequeno ajuste. Essas vantagens podem melhorar a estabilidade e lucratividade da estratégia.

Análise de riscos

Os principais riscos desta estratégia estão na configuração inadequada dos parâmetros das Bandas de Bollinger e falhas de ruptura. Se os parâmetros das Bandas de Bollinger forem definidos de forma muito grande ou muito pequena, ocorrerão julgamentos errados. Além disso, mesmo que o preço quebre os trilhos superiores ou inferiores das Bandas de Bollinger, pode ser uma ruptura falsa e não formar uma reversão de tendência real. Estes riscos podem levar a perdas comerciais da estratégia. Para reduzir esses riscos, os parâmetros das Bandas de Bollinger podem ser ajustados de acordo ou outros indicadores podem ser adicionados para verificação de combinação.

Orientações de otimização

Esta estratégia pode ser otimizada nos seguintes aspectos:

  1. Otimizar os parâmetros da banda de Bollinger para captar as tendências e flutuações de forma mais eficaz.

  2. Adicione stop loss móvel para bloquear os lucros e gerir os riscos.

  3. Incorporar outros indicadores como MACD, RSI para verificação para filtrar falsos sinais.

  4. Adicione algoritmos de aprendizagem de máquina, treine modelos com big data e otimize dinamicamente parâmetros de estratégia e pesos de indicadores.

Conclusão

Esta estratégia combina com sucesso a ação do preço e as Bandas de Bollinger, obtendo uma lucratividade relativamente alta com baixo risco. Ela apenas emite sinais em pontos-chave, evitando interferências de ruídos. Através da otimização contínua de parâmetros e critérios de filtragem, espera-se que esta estratégia obtenha um alfa mais estável.


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

//@version=4
// main codebody taken from Trader Noro - Noro's Crypto Pattern for H1
// Intraday strategy- Exit at EOD at all cost

strategy(title = "Price Action + Bollinger Strategy ",overlay=true)
bar = close > open ? 1 : close < open ? -1 : 0
body = abs(close - open)
avgbody = sma(body, 100)

//calculate simple moving average bollinger bands
b_sma = input(21,minval=1,title=" SMA candle")
b_sma_no_of_deviations = 2.1
b_sma_signal = sma(close, b_sma)
b_sma_deviation = b_sma_no_of_deviations * stdev(close, b_sma)
b_sma_upper= b_sma_signal + b_sma_deviation
b_sma_lower= b_sma_signal - b_sma_deviation

up1 = body < body[1] / 2 and bar[1]==1 and bar == -1 and close[1] > b_sma_upper   
dn1 = body < body[1] / 2 and bar[1]==-1 and bar == 1 and close[1] < b_sma_lower  
up2 = false
dn2 = false
up2 := (up1[1] or up2[1]) and close < close[1]
dn2 := (dn1[1] or dn2[1]) and close > close[1]
plotarrow(up1 or up2 ? 1 : na, colorup = color.black, colordown = color.black, transp = 0)
plotarrow(dn1 or dn2 ? -1 : na, colorup = color.black, colordown = color.black, transp = 0)

strategy.entry("Buy", true, when = dn1)
strategy.exit("exit", "Buy", profit = 3, loss = 1.5)

strategy.entry("Short", false, when = up1)
strategy.exit("exit", "Short", profit = 3, loss = 1.5)



Mais.