Estratégia de Backtesting de Bandas de Bollinger Baseada em Média Móvel para Traders de Tendências


Data de criação: 2023-12-11 13:12:44 última modificação: 2023-12-11 13:12:44
cópia: 0 Cliques: 593
1
focar em
1621
Seguidores

Estratégia de Backtesting de Bandas de Bollinger Baseada em Média Móvel para Traders de Tendências

Visão geral

A principal idéia da estratégia é usar a média móvel e a faixa de brinquedo para julgar a tendência dos preços e gerar sinais de negociação. Concretamente, primeiro calcule o ATR médio do intervalo de flutuação real de um determinado período e, em seguida, combine o preço mais alto e o preço mais baixo para obter o canal de restrição. Se o preço quebrar o canal, deixe o preço de fechamento ser igual ao preço do canal.

Princípio da estratégia

A estratégia primeiro calcula a amplitude de oscilação do ATR e, em seguida, combina-se com o preço máximo e o preço mínimo para obter o canal de restrição. O preço de fechamento é limitado ao preço de canal somente quando o preço quebra o canal.

O núcleo da estratégia de julgamento de tendências está na média dos traders de tendências, que reflete a direção da tendência a médio e longo prazo. O papel da faixa de Bryn é filtrar alguns brechas falsas, tornando os sinais de negociação mais confiáveis. A estratégia completa combina o acompanhamento de tendências e o julgamento de brechas, formando um sistema de tendências mais forte.

Vantagens estratégicas

  1. Utilizando o ATR em combinação com o preço mais alto e mais baixo para formar um canal, é possível acompanhar efetivamente as flutuações do mercado
  2. Tendências médias de longo prazo de um trader de tendências
  3. O Brin fez um falso avanço para melhorar a qualidade do sinal.
  4. O sistema em geral reflete uma forte tendência, com bons retornos de longo prazo

Risco estratégico

  1. A maior probabilidade de sofrer prejuízos por eventos inesperados quando detido a médio ou longo prazo
  2. A configuração inadequada dos parâmetros pode levar a transações frequentes, aumento de taxas de transação e perda de pontos de deslizamento
  3. O efeito é altamente correlacionado com a configuração dos parâmetros e precisa ser ajustado para encontrar o melhor parâmetro

Resposta:

  1. Reduzir adequadamente o período de detenção e o cessar em tempo hábil
  2. Parâmetros de otimização para que o sinal tenha um buffer
  3. Utilização de dados históricos e parâmetros de otimização de disco rígido

Direção de otimização da estratégia

  1. Pesquisar mais detalhadamente as configurações de parâmetros de ciclo de diferentes mercados
  2. Testes para adicionar outros indicadores para filtragem de brechas falsas
  3. Tentar controlar os prejuízos individuais com a combinação de estratégias de stop loss

Resumir

A estratégia em geral é um sistema de acompanhamento de tendências mais forte. Pode julgar a tendência do mercado na linha média e longa e, em combinação com a faixa de Brin, gerar sinais de negociação. Com otimização de parâmetros, pode obter ganhos extras estáveis.

Código-fonte da estratégia
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/10/2018
// This is plots the indicator developed by Andrew Abraham 
// in the Trading the Trend article of TASC September 1998  
// It was modified, result values wass averages.
// And draw two bands above and below TT line.
////////////////////////////////////////////////////////////
strategy(title="Trend Trader Bands Backtest", overlay = true)
Length = input(21, minval=1),
LengthMA = input(21, minval=1),
BandStep = input(20),
Multiplier = input(3, minval=1)
reverse = input(false, title="Trade reverse")
avgTR      = wma(atr(1), Length)
highestC   = highest(Length)
lowestC    = lowest(Length)
hiLimit = highestC[1]-(avgTR[1] * Multiplier)
loLimit = lowestC[1]+(avgTR[1] * Multiplier)
ret = 0.0
ret :=  iff(close > hiLimit and close > loLimit, hiLimit,
         iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
nResMA = ema(ret, LengthMA)        
pos = 0.0
pos := iff(close < nResMA - BandStep , -1,
       iff(close > nResMA + BandStep, 1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
barcolor(pos == -1 ? red: pos == 1 ? green : blue )
plot(nResMA, color= blue , title="Trend Trader AVR")
plot(nResMA+BandStep, color= red , title="Trend Trader UpBand")
plot(nResMA-BandStep, color= green, title="Trend Trader DnBand")