Estratégia de negociação de índice forte impulsionada por banda dupla


Data de criação: 2023-12-12 17:12:35 última modificação: 2023-12-12 17:47:33
cópia: 1 Cliques: 920
1
focar em
1621
Seguidores

Estratégia de negociação de índice forte impulsionada por banda dupla

Visão geral

Esta estratégia combina o indicador de banda dupla e o indicador de banda forte, permitindo um modelo de negociação de ruptura. Quando o EMA rápido quebra o canal de banda, o indicador AO combina com o sinal de direção da multidireção, gerando um sinal de compra e venda.

Princípio da estratégia

  1. Os canais de preço são determinados por meio de um sistema de correia de Brin, de um sistema de correia superior e de um sistema de correia inferior
  2. Quando a EMA rápida atravessa a órbita média, é considerada uma ruptura de corredor.
  3. O índice de força AO indica a direção de uma cabeça e de uma cabeça vazia.
  4. Quando a EMA rápida se eleva para cima, e o AO é positivo, gera um sinal de compra.
  5. Quando o EMA rápido desce do meio da trajectória e o AO é negativo, gera um sinal de venda.

Análise de vantagens

  1. Indicadores de dupla faixa de onda para determinar o canal de preços e evitar sinais errados.
  2. O indicador AO determina a direção da tendência, tornando os sinais de negociação mais precisos.
  3. Combinado com o padrão de negociação de ruptura de corredores, é possível capturar mais lucro no início da tendência.

Análise de Riscos

  1. Os parâmetros errados da faixa de Bryn podem fazer com que a passagem seja muito larga ou muito estreita.
  2. A configuração dos parâmetros do indicador AO afeta a precisão do julgamento.
  3. O sinal de ruptura pode ser falso e é necessário garantir que haja força de ruptura suficiente.

O que fazer?

  1. Optimizar os parâmetros do indicador de Brin e AO para encontrar a melhor combinação.
  2. Aumentar as condições de força para a ruptura e evitar a falsa ruptura.
  3. Usado em combinação com outros indicadores para garantir a confiabilidade dos sinais de negociação.

Direção de otimização

  1. Optimizar os parâmetros da faixa de Bryn para encontrar o melhor alcance de corredor.
  2. Otimizar os parâmetros de linha média de curto e longo prazo do indicador AO para melhorar a precisão de julgamento.
  3. Aumentar o volume ou outros indicadores de filtragem para garantir a confiabilidade da ruptura.
  4. Otimizar os parâmetros de força de ruptura e reduzir a taxa de falsa ruptura.

Resumir

Esta estratégia integra o canal de preço, a direção da tendência e o modo de ruptura, uma estratégia de negociação mais estável e eficiente. A robustez e a taxa de retorno da estratégia podem ser reforçadas com a otimização de parâmetros e a filtragem de indicadores de portfólio.

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

//@version=3

strategy(shorttitle="BB+AO STRAT", title="BB+AO STRAT", overlay=true)


// === BACKTEST RANGE ===
FromMonth = input(defval = 6, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2018, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)

// Bollinger Bands Inputs
bb_use_ema = input(false, title="Use EMA for Bollinger Band")
bb_length = input(5, minval=1, title="Bollinger Length")
bb_source = input(close, title="Bollinger Source")
bb_mult = input(2.0, title="Base Multiplier", minval=0.5, maxval=10)
// EMA inputs
fast_ma_len = input(2, title="Fast EMA length", minval=2)
// Awesome Inputs
nLengthSlow = input(34, minval=1, title="Awesome Length Slow")
nLengthFast = input(5, minval=1, title="Awesome Length Fast")




// Breakout Indicator Inputs
bb_basis = bb_use_ema ? ema(bb_source, bb_length) : sma(bb_source, bb_length)
fast_ma  = ema(bb_source, fast_ma_len)

// Deviation

dev = stdev(bb_source, bb_length)
bb_dev_inner = bb_mult * dev

// Upper bands
inner_high = bb_basis + bb_dev_inner
// Lower Bands
inner_low = bb_basis - bb_dev_inner

// Calculate Awesome Oscillator
xSMA1_hl2 = sma(hl2, nLengthFast)
xSMA2_hl2 = sma(hl2, nLengthSlow)
xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
// Calculate direction of AO
AO = xSMA1_SMA2>=0? xSMA1_SMA2 > xSMA1_SMA2[1] ? 1 : 2 : xSMA1_SMA2 > xSMA1_SMA2[1] ? -1 : -2



// === PLOTTING ===

// plot BB basis
plot(bb_basis, title="Basis Line", color=red, transp=10, linewidth=2)
// plot BB upper and lower bands
ubi = plot(inner_high, title="Upper Band Inner", color=blue, transp=10, linewidth=1)
lbi = plot(inner_low, title="Lower Band Inner", color=blue, transp=10, linewidth=1)
// center BB channel fill
fill(ubi, lbi, title="Center Channel Fill", color=silver, transp=90)

// plot fast ma
plot(fast_ma, title="Fast EMA", color=black, transp=10, linewidth=2)

// Calc breakouts
break_down =   crossunder(fast_ma, bb_basis) and close < bb_basis and abs(AO)==2
break_up   =  crossover(fast_ma, bb_basis) and close > bb_basis and abs(AO)==1

// Show Break Alerts
plotshape(break_down, title="Breakout Down", style=shape.arrowdown, location=location.abovebar, size=size.auto, text="Sell", color=red, transp=0)
plotshape(break_up, title="Breakout Up", style=shape.arrowup, location=location.belowbar, size=size.auto, text="Buy", color=green, transp=0)
// === ALERTS ===



strategy.entry("L", strategy.long, when=(break_up and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))


strategy.close("L", when=(break_down and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))

// === /PLOTTING ===
barcolor(AO == 2 ? red: AO == 1 ? green : blue )



// eof