Esta estratégia é chamada de
A estratégia inclui principalmente duas partes:
Esta parte calcula a média móvel simples dos preços de fechamento durante um determinado período (como 20 dias) e calcula o desvio padrão desses preços de fechamento em relação à sua média móvel. Em seguida, de acordo com o valor do desvio padrão, duas bandas são calculadas em um intervalo de desvio padrão acima e abaixo da média móvel, que é chamado de Bandas de Bollinger. A área de banda das Bandas de Bollinger pode mostrar claramente se o preço atual está em um estado
Parte do volume. Esta parte calcula o valor médio móvel do volume de negociação durante o mesmo período (por exemplo, 20 dias) e, em seguida, usa um multiplicador (por exemplo, 2,0) para definir um limiar de volume de negociação.
Quando o preço atravessa a faixa superior das Bandas de Bollinger e o volume de negociação excede o limiar de volume de negociação, é gerado um sinal de compra; quando o preço atravessa a faixa inferior das Bandas de Bollinger e o volume de negociação excede o limiar de volume de negociação, é gerado um sinal de venda.
Por meio da dupla confirmação do preço e do volume de negociação, alguns sinais falsos podem ser filtrados, tornando a estratégia de negociação mais confiável.
Mecanismo de confirmação dupla para evitar falhas e ruído de filtro. Combinando indicadores de preço e volume, os sinais são gerados apenas quando ambos confirmam ao mesmo tempo, o que pode evitar efetivamente alguns sinais errôneos causados por falhas de preço vazias.
Parâmetros ajustáveis: os utilizadores podem definir os parâmetros do período das bandas de Bollinger e os parâmetros do multiplicador do limiar do volume de negociação de forma independente para se adaptarem aos diferentes ambientes de mercado.
Os indicadores Bollinger Bands superior e inferior, volume de negociação e limiar de volume de negociação permitem sinais de estratégia mais intuitivos e claros.
As Bandas de Bollinger não podem identificar perfeitamente os pontos de reversão da tendência. As Bandas de Bollinger só podem mostrar claramente o "estado anormal" dos preços, mas não podem prever reversões de preços. Portanto, ainda precisa ser combinado com outros indicadores para julgamento.
Quando há uma rápida ruptura das Bandas de Bollinger superiores e inferiores, a reação do volume de negociação pode atrasar, resultando em um atraso na geração de sinal e na incapacidade de capturar perfeitamente os pontos de virada.
Tente combinar outros indicadores. Indicadores como KDJ, MACD, etc., introduzem mais variáveis para estabelecer estratégias de negociação multivariadas mais complexas, melhorando assim a praticidade da estratégia.
O método de dupla confirmação e ajuste de parâmetros permite filtrar muito ruído, tornando as decisões de negociação mais confiáveis, mas as limitações das próprias bandas de Bollinger ainda precisam ser evitadas.
/*backtest start: 2022-12-26 00:00:00 end: 2024-01-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Volume + Bollinger Bands Strategy", overlay = true, shorttitle="Vol BB Strategy") // Bollinger Bands Parameters length = input(20, title="BB Length") src = close mult = input(2.0, title="Multiplier") basis = ta.sma(src, length) upper = basis + mult * ta.stdev(src, length) lower = basis - mult * ta.stdev(src, length) // Volume Parameters volMultiplier = input(2.0, title="Volume Multiplier") avgVolume = ta.sma(volume, length) // Strategy Logic buyCondition = close > upper and volume > volMultiplier * avgVolume sellCondition = close < lower and volume > volMultiplier * avgVolume // Plotting plot(upper, color=color.red, title="Upper Band") plot(lower, color=color.green, title="Lower Band") plot(volume, color=color.blue, style=plot.style_columns, title="Volume", transp=85) plot(avgVolume * volMultiplier, color=color.orange, title="Avg Volume x Multiplier") // Strategy Execution strategy.entry("Buy", strategy.long, when=buyCondition) strategy.close("Buy", when=sellCondition) bgcolor(buyCondition ? color.new(color.green, 90) : sellCondition ? color.new(color.red, 90) : na)