Estratégia de negociação de rastreamento inteligente baseada em bandas de Bollinger

Autora:ChaoZhang, Data: 2024-01-17 14:05:36
Tags:

img

Resumo

Esta estratégia foi concebida com base no indicador Bollinger Bands para fazer curto quando o preço ultrapassa a faixa superior e longo quando o preço ultrapassa a faixa inferior, realizando a negociação de rastreamento inteligente.

Estratégia lógica

A estratégia usa a linha do meio, banda superior e banda inferior das Bandas de Bollinger como indicadores de base. A linha do meio é a média móvel dos preços de fechamento ao longo de n dias. A banda superior é a linha do meio deslocada para cima por dois desvios padrão, enquanto a banda inferior é deslocada para baixo por dois desvios padrão. Quando o preço quebra a banda inferior para cima, vá longo. Quando o preço quebra a banda superior para baixo, vá curto. Isso permite o rastreamento inteligente do preço com base na volatilidade do mercado.

Especificamente, a estratégia julga principalmente duas métricas:

  1. ta.crossover ((fonte, inferior): preço de fechamento ultrapassa a faixa inferior, vai longo

  2. ta.crossunder ((fonte, superior): preço de fechamento abaixo da faixa superior, curto

Quando a condição de saída for acionada, use a função strategy.cancel() para nivelar a posição existente.

Análise das vantagens

As principais vantagens desta estratégia são:

  1. Baseado no indicador Bollinger Bands, capaz de capturar a volatilidade do mercado e acompanhar efetivamente a tendência dos preços
  2. Lógica clara e simples, fácil de compreender e implementar
  3. Parâmetros personalizáveis como a duração do período e o multiplicador do desvio padrão, altamente adaptáveis
  4. Mecanismos de stop loss, break-even ou trailing stop configuráveis para otimizar o desempenho da estratégia

Análise de riscos

Há também alguns riscos com esta estratégia:

  1. Breakouts de Bollinger Bands propensos a sinais falsos
  2. O desempenho depende da otimização de parâmetros, parâmetros inadequados podem afetar a lucratividade
  3. Dificuldade de rastrear a perda de parada, incapaz de controlar eficazmente a perda de uma única operação

Soluções correspondentes:

  1. Adicionar filtros com outros indicadores para evitar falhas
  2. Teste os parâmetros minuciosamente para encontrar o conjunto de parâmetros ideal
  3. Adicionar mecanismos de stop loss em movimento ou de tendência

Orientações de otimização

A estratégia pode ser melhorada através de:

  1. Adição de outros indicadores para determinar a direção da tendência, evitando condições de mercado inadequadas para a estratégia de Bollinger
  2. Teste de diferentes períodos de duração para encontrar o ideal
  3. Incorporação de mecanismos de parada de movimentação ou de retenção para controlar efetivamente as perdas de negociação única

Conclusão

Esta estratégia é projetada com base no indicador Bollinger Bands, usando quebras de preços de bandas superiores e inferiores para rastrear automaticamente os preços. A lógica é simples e sensível à volatilidade do mercado. Outras otimizações podem ser feitas por meio de ajuste de parâmetros e mecanismos de stop loss.


/*backtest
start: 2023-12-17 00:00:00
end: 2024-01-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands Strategy with alerts (incl. pending orders) via TradingConnector to Forex", overlay=true)
source = close
length = input.int(20, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev
buyEntry = ta.crossover(source, lower)
sellEntry = ta.crossunder(source, upper)
if (ta.crossover(source, lower))
	strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="BBandLE")
    alert(message='long price='+str.tostring(lower), freq=alert.freq_once_per_bar_close)
else
	strategy.cancel(id="BBandLE")
    alert(message='cancel long', freq=alert.freq_once_per_bar_close)
if (ta.crossunder(source, upper))
	strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="BBandSE")
    alert(message='short price='+str.tostring(upper), freq=alert.freq_once_per_bar_close)
else
	strategy.cancel(id="BBandSE")
    alert(message='cancel short', freq=alert.freq_once_per_bar_close)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

//Lines of code added to the original built-in script: 14, 17, 20 and 23 only.
//They trigger alerts ready to be executed on real markets through TradingConnector
//available for Forex, indices, crypto, stocks - anything your broker offers for trading via MetaTrader4/5


Mais.