Estratégia de média móvel da banda de Bollinger T3

Autora:ChaoZhang, Data: 2023-11-02 15:45:31
Tags:

img

Resumo

Esta estratégia faz pleno uso do julgamento da tendência das médias móveis e do julgamento de sobrecompra / sobrevenda das Bandas de Bollinger. Com a suavização da média móvel T3, ele pode identificar a reversão da tendência em tempo hábil e entrar no mercado. Na zona de oscilação, ele usa as Bandas de Bollinger para identificar áreas de sobrecompra / sobrevenda para a negociação de contra-tendência. Assim, realiza a negociação de ultra curto prazo.

Estratégia lógica

A estratégia usa principalmente três grupos de médias móveis para identificar a tendência e gerar sinais de negociação. A primeira é a média móvel T3, que pode filtrar as flutuações de preço através de suavização exponencial e julgar a direção da tendência. A segunda é a média móvel de médio prazo, aqui usa SMA de 20 períodos para determinar a tendência de médio prazo.

Os sinais de negociação são gerados quando a SMA de médio prazo cruza o T3 de médio prazo para cima combinando com uma tendência ascendente, vá longo. Quando a SMA de médio prazo cruza abaixo do T3 de médio prazo para baixo combinando com uma tendência descendente, vá curto. Além disso, as Bandas de Bollinger podem ser usadas para obter lucro e parar de perder. Se o preço atravessar a faixa superior, considere tirar lucro. Se o preço atravessar a faixa inferior, considere parar de perder.

Especificamente, a condição longa é o SMA médio atravessa o T3 médio para cima, e o MA rápido é maior que o MA lento. Se o preço atravessar a banda de Bollinger superior ou o SMA médio atravessar abaixo do T3, considere tirar lucro. A condição curta é o SMA médio atravessa abaixo do T3 médio para baixo, e o MA rápido é menor que o MA lento. Se o preço atravessar a banda de Bollinger inferior ou o SMA médio atravessar acima do T3, considere o stop loss.

Vantagens

  • Aproveitar plenamente as vantagens de médias móveis múltiplas, T3 para suavização, SMA média para tendência, MAs rápidas e lentas para tendência de longo prazo
  • Bandas de Bollinger As bandas superiores e inferiores avaliam os níveis de sobrecompra/supervenda, reduzindo o risco de perda
  • Combinação estrita de sinais de negociação, evitando a confusão por flutuações

Riscos

  • Os parâmetros de T3 inadequados podem falhar na suavização ou causar atraso
  • Os parâmetros incorretos das bandas de Bollinger podem causar bandas inválidas
  • Períodos de média móvel errados levam a uma direcção de tendência errada
  • Pontos de ruptura imprecisos para obtenção de lucro e stop loss, podem sair demasiado cedo ou demasiado tarde

Melhorias:

  • Ajustar os parâmetros T3 para equilibrar a suavização e o atraso
  • Ajustar os parâmetros das bandas de Bollinger para cobrir a gama de flutuação normal
  • Teste diferentes períodos de média móvel para encontrar os mais adequados para o ativo
  • Otimizar os pontos de take profit e stop loss com base nos resultados do backtest

Orientações de otimização

  • Adicionar indicador de força da tendência como o ADX para evitar a reversão nos pontos de virada da tendência
  • Adicionar indicador de volatilidade para ajustar parâmetros com base na volatilidade do mercado
  • Adicione stop loss para permitir que mais lucros se esgotem
  • Considere a estratégia de ruptura, seguindo stop loss após a quebra de bandas

Resumo

Em resumo, esta estratégia usa médias móveis sistematicamente para determinar a tendência e identifica os níveis de sobrecompra / sobrevenda com Bandas de Bollinger. Pode entrar no mercado em tempo hábil em inversões de tendência e também controla efetivamente os riscos.


/*backtest
start: 2023-10-25 00:00:00
end: 2023-11-01 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(shorttitle="BB T3 Strategy", title="BB T3 Strategy", overlay=true)

//T3
b = 0.7
c1 = -b*b*b
c2 = 3*b*b+3*b*b*b
c3 = -6*b*b-3*b-3*b*b*b
c4 = 1+3*b+b*b*b+3*b*b

t3(len) => c1 * ema(ema(ema(ema(ema(ema(close, len), len), len), len), len), len) + c2 * ema(ema(ema(ema(ema(close, len), len), len), len), len) + c3 * ema(ema(ema(ema(close, len), len), len), len) + c4 * ema(ema(ema(close, len), len), len)
//T3 end

length = input(20, minval=1)

mult = input(2.5, minval=0.001, maxval=50, title="StdDev")
basis = t3(length)
basisDev = t3(length/10)

dev = mult * stdev(basisDev,length)
upper = basis + dev
lower = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
plot(basis, "Basis", color=#872323, offset = offset)
p1 = plot(upper, "Upper", color=color.teal, offset = offset)
p2 = plot(lower, "Lower", color=color.teal, offset = offset)
fill(p1, p2, title = "Background", color=#198787, transp=95)

stoploss = input(true, "Stop Loss")

basisSma = sma(close, length)
p3 = plot(basisSma, color=color.blue, title="MA", offset=offset)

fastT3 = t3(50)
slowT3 = t3(200)

crossUp = crossover(basisSma, basis)
crossDown = crossunder(basisSma, basis)
bollBounce = crossover(close, upper)
bollReject = crossunder(close, lower)
underBasis = crossunder(close, basis)
overBasis = crossover(close, basis)

trendUp = fastT3 > slowT3
trendDown = fastT3 < slowT3

strategy.entry("long", strategy.long, when=(trendUp and crossUp), stop=(stoploss ? high+syminfo.mintick : na))
strategy.close("long", when=(bollBounce or crossDown or underBasis))
strategy.entry("short", strategy.short, when=(trendDown and crossDown), stop=(stoploss ? low-syminfo.mintick : na))
strategy.close("short", when=(bollReject or crossUp or overBasis))


Mais.