Uma estratégia de acompanhamento de tendência multiindicador combinando supertendência tripla e Bandas de Bollinger

Boll ST ATR SMA BB MA
Data de criação: 2024-12-20 14:28:58 última modificação: 2024-12-20 14:28:58
cópia: 0 Cliques: 460
1
focar em
1617
Seguidores

Uma estratégia de acompanhamento de tendência multiindicador combinando supertendência tripla e Bandas de Bollinger

Visão geral

Esta estratégia utiliza uma combinação de Brinbands e Triple Overtrend Indicadores para negociação. A determinação de intervalos de flutuação da Brinband e a confirmação de tendências da Triple Overtrend formam um robusto sistema de acompanhamento de tendências. A Brinband é usada para identificar os extremos de flutuação dos preços, enquanto a Triple Overtrend fornece a confirmação múltipla da direção da tendência através de diferentes configurações de parâmetros.

Princípio da estratégia

A lógica central da estratégia inclui as seguintes partes principais:

  1. Uma faixa de Brin com 20 ciclos, com um coeficiente de diferença padrão de 2,0, é usada para avaliar a oscilação dos preços
  2. Configure três linhas de tendência super, com períodos de 10, com parâmetros de 3,0, 4,0 e 5,0
  3. Condições de entrada múltiplas: o preço quebra a faixa de Brin e as três linhas de supertrend mostram uma tendência ascendente
  4. Condições de entrada a céu aberto: o preço despencou abaixo do traçado da faixa de Bryn e as três linhas de tendência superior mostraram uma tendência descendente
  5. Quando qualquer linha de tendência ultrapassa a mudança de direção, a posição de equilíbrio é a posição atual
  6. Usar a linha de preço intermédio como referência de preenchimento para aumentar o efeito visual

Vantagens estratégicas

  1. Mecanismo de confirmação múltipla: redução significativa de sinais falsos através de uma combinação de bandas de Bryn e supertrend triplo
  2. Forte capacidade de rastreamento de tendências: configuração de parâmetros progressivos do indicador de tendências ultra-modernas, capaz de capturar de forma eficaz os diferentes níveis de tendências
  3. Controle de risco perfeito: liquidação rápida e retirada controlada quando há sinais de mudança de tendência
  4. Parâmetros ajustáveis: os parâmetros dos indicadores podem ser otimizados de acordo com diferentes características do mercado
  5. Alta automatização: estratégias com lógica clara e fácil implementação sistemática

Risco estratégico

  1. Risco de mercado em choque: Falso sinal de ruptura pode ocorrer com frequência em mercados em choque horizontal
  2. Efeito de deslizamento: em períodos de forte volatilidade, pode haver grandes perdas de deslizamento
  3. Risco de atraso: o mecanismo de confirmação múltipla pode levar a atrasos na admissão
  4. Sensibilidade dos parâmetros: Diferentes combinações de parâmetros podem levar a grandes diferenças no desempenho da estratégia
  5. Dependência do cenário de mercado: estratégias que melhoram o desempenho em mercados com tendências

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

  1. Introdução de indicadores de volume de transação: a eficácia de uma ruptura de preço é confirmada pelo volume de transação
  2. Mecanismo de parada de perda optimizado: pode ser adicionado um parada de perda móvel ou um parada de perda dinâmica baseada em ATR
  3. Aumento do filtro de tempo: proíbe a negociação em determinados períodos de tempo, evitando oscilações ineficientes
  4. Adicionar filtro de volatilidade: ajustar posições ou suspender a negociação em períodos de extrema volatilidade
  5. Mecanismo de adaptação de parâmetros de desenvolvimento: Parâmetros de ajuste dinâmico de acordo com a situação do mercado

Resumir

Trata-se de uma estratégia de acompanhamento de tendências que combina as bandas Brin e as supertrends triplas para aumentar a confiabilidade das negociações através da confirmação de vários indicadores técnicos. A estratégia possui uma forte capacidade de captura de tendências e controle de risco, mas também precisa ter em conta o impacto do ambiente de mercado no desempenho da estratégia.

Código-fonte da estratégia
//@version=5
strategy("Demo GPT - Bollinger + Triple Supertrend Combo", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3)

// -------------------------------
// User Input for Date Range
// -------------------------------
startDate = input(title="Start Date", defval=timestamp("2018-01-01 00:00:00"))
endDate   = input(title="End Date",   defval=timestamp("2069-12-31 23:59:59"))

// -------------------------------
// Bollinger Band Inputs
// -------------------------------
lengthBB = input.int(20, "Bollinger Length")
multBB   = input.float(2.0, "Bollinger Multiplier")

// -------------------------------
// Supertrend Inputs for 3 lines
// -------------------------------
// Line 1
atrPeriod1 = input.int(10, "ATR Length (Line 1)", minval = 1)
factor1    = input.float(3.0, "Factor (Line 1)", minval = 0.01, step = 0.01)

// Line 2
atrPeriod2 = input.int(10, "ATR Length (Line 2)", minval = 1)
factor2    = input.float(4.0, "Factor (Line 2)", minval = 0.01, step = 0.01)

// Line 3
atrPeriod3 = input.int(10, "ATR Length (Line 3)", minval = 1)
factor3    = input.float(5.0, "Factor (Line 3)", minval = 0.01, step = 0.01)

// -------------------------------
// Bollinger Band Calculation
// -------------------------------
basis = ta.sma(close, lengthBB)
dev   = multBB * ta.stdev(close, lengthBB)
upperBand = basis + dev
lowerBand = basis - dev

// Plot Bollinger Bands
plot(upperBand, "Upper BB", color=color.new(color.blue, 0))
plot(basis,     "Basis",    color=color.new(color.gray, 0))
plot(lowerBand, "Lower BB", color=color.new(color.blue, 0))

// -------------------------------
// Supertrend Calculation Line 1
// -------------------------------
[supertrendLine1, direction1] = ta.supertrend(factor1, atrPeriod1)
supertrendLine1 := barstate.isfirst ? na : supertrendLine1

upTrend1   = plot(direction1 < 0 ? supertrendLine1 : na, "Up Trend 1",   color = color.green, style = plot.style_linebr)
downTrend1 = plot(direction1 < 0 ? na : supertrendLine1, "Down Trend 1", color = color.red,   style = plot.style_linebr)

// -------------------------------
// Supertrend Calculation Line 2
// -------------------------------
[supertrendLine2, direction2] = ta.supertrend(factor2, atrPeriod2)
supertrendLine2 := barstate.isfirst ? na : supertrendLine2

upTrend2   = plot(direction2 < 0 ? supertrendLine2 : na, "Up Trend 2",   color = color.new(color.green, 0), style = plot.style_linebr)
downTrend2 = plot(direction2 < 0 ? na : supertrendLine2, "Down Trend 2", color = color.new(color.red, 0),   style = plot.style_linebr)

// -------------------------------
// Supertrend Calculation Line 3
// -------------------------------
[supertrendLine3, direction3] = ta.supertrend(factor3, atrPeriod3)
supertrendLine3 := barstate.isfirst ? na : supertrendLine3

upTrend3   = plot(direction3 < 0 ? supertrendLine3 : na, "Up Trend 3",   color = color.new(color.green, 0), style = plot.style_linebr)
downTrend3 = plot(direction3 < 0 ? na : supertrendLine3, "Down Trend 3", color = color.new(color.red, 0),   style = plot.style_linebr)

// -------------------------------
// Middle line for fill (used as a reference line)
// -------------------------------
bodyMiddle = plot(barstate.isfirst ? na : (open + close) / 2, "Body Middle", display = display.none)

// Fill areas for each supertrend line
fill(bodyMiddle, upTrend1,   color.new(color.green, 90), fillgaps = false)
fill(bodyMiddle, downTrend1, color.new(color.red,   90), fillgaps = false)

fill(bodyMiddle, upTrend2,   color.new(color.green, 90), fillgaps = false)
fill(bodyMiddle, downTrend2, color.new(color.red,   90), fillgaps = false)

fill(bodyMiddle, upTrend3,   color.new(color.green, 90), fillgaps = false)
fill(bodyMiddle, downTrend3, color.new(color.red,   90), fillgaps = false)

// Alerts for the first line only (as an example)
alertcondition(direction1[1] > direction1, title='Downtrend to Uptrend (Line 1)', message='Supertrend Line 1 switched from Downtrend to Uptrend')
alertcondition(direction1[1] < direction1, title='Uptrend to Downtrend (Line 1)', message='Supertrend Line 1 switched from Uptrend to Downtrend')
alertcondition(direction1[1] != direction1, title='Trend Change (Line 1)', message='Supertrend Line 1 switched trend')

// -------------------------------
// Strategy Logic
// -------------------------------
inDateRange = true

// Long Conditions
longEntryCondition = inDateRange and close > upperBand and direction1 < 0 and direction2 < 0 and direction3 < 0
longExitCondition = direction1 > 0 or direction2 > 0 or direction3 > 0

// Short Conditions
shortEntryCondition = inDateRange and close < lowerBand and direction1 > 0 and direction2 > 0 and direction3 > 0
shortExitCondition = direction1 < 0 or direction2 < 0 or direction3 < 0

// Execute Long Trades
if longEntryCondition and strategy.position_size <= 0
    strategy.entry("Long", strategy.long)

if strategy.position_size > 0 and longExitCondition
    strategy.close("Long")

// Execute Short Trades
if shortEntryCondition and strategy.position_size >= 0
    strategy.entry("Short", strategy.short)

if strategy.position_size < 0 and shortExitCondition
    strategy.close("Short")