Estratégia de negociação de acompanhamento de tendência e reversão de Bandas de Bollinger multinível

布林带 BB SMA 趋势跟踪 反转交易 移动止盈 技术分析 量化交易
Data de criação: 2025-04-01 10:16:29 última modificação: 2025-04-01 10:16:29
cópia: 3 Cliques: 398
2
focar em
319
Seguidores

Estratégia de negociação de acompanhamento de tendência e reversão de Bandas de Bollinger multinível Estratégia de negociação de acompanhamento de tendência e reversão de Bandas de Bollinger multinível

Visão geral

A estratégia de negociação multicamadas de Bollinger Bands é um sistema de negociação integrado baseado nos indicadores Bollinger Bands, que combina habilmente as características de acompanhamento de tendências e de negociação de reversão para capturar oportunidades de mercado através da interação de preços com o Bollinger Bands. O sistema é projetado para ter três camadas de saída, incluindo regiões, cruzamento de equilíbrio e paradas móveis, permitindo que a estratégia maximize os lucros e controle efetivamente o risco.

Princípio da estratégia

O princípio central da estratégia é o uso da faixa de Brin como uma zona de referência dinâmica para os movimentos de preços, combinada com regras de entrada e saída em vários níveis cuidadosamente concebidas.

A lógica de entrada é dividida em duas partes:

  1. Fazer mais condições: quando o preço atravessa a faixa de descida de Brin para cima (Crossover Lower Band), ou quando o preço toca a parte inferior da faixa de descida e rebota (ou seja, o preço mínimo é inferior à faixa de descida, mas o preço de fechamento é superior à faixa de descida).
  2. Condição de fechamento: quando o preço atravessa a faixa de Brin para baixo para o traçado (Crossunder Upper Band), ou o preço toca o traçado acima e depois retorna (ou seja, o preço máximo é superior ao traçado, mas o preço de fechamento é inferior ao traçado).

A lógica de saída tem três camadas de proteção:

  1. O primeiro nível ((Determinação da região): Começando a partir da linha K da raiz X após a entrada, quando o preço de fechamento entra em uma região específica da faixa de Brin. Concretamente, quando se faz mais, se o preço cair para a primeira região 13 entre a linha de base e a linha média, será fechado; quando o preço é aberto, se o preço subir para a primeira região 13 entre a linha de base e a linha média, será fechado.
  2. Segunda camada: a partir da linha K da raiz Y após a entrada, se o preço de fechamento atravessar a linha média de 20 períodos, então a posição é neutralizada.
  3. Terceira camada ((mover o stop): Iniciar o mecanismo de stop móvel quando o preço quebra a borda do outro lado da faixa de Bryn, e sair automaticamente da corrida quando o lucro retira Z%, bloqueando a maior parte do lucro.

Os parâmetros da faixa de Bryn podem ser ajustados de forma flexível, incluindo o período de linha média (default 20) e o múltiplo da diferença padrão (default 2.0); as configurações de saída também podem ser ajustadas de acordo com as características do mercado, incluindo X (default 3), Y (default 10), e o percentual de retirada de stop motion Z (default 30%).

Vantagens estratégicas

  1. Capturar várias oportunidades de mercado: a estratégia inclui simultaneamente o acompanhamento de tendências e a lógica de negociação de reversão, permitindo encontrar oportunidades de negociação em diferentes ambientes de mercado. Quando o mercado está em um estado de agitação, pode-se aproveitar o rebote / retorno após o preço tocar na borda de um buraco; Quando o mercado começa a se mover em uma tendência, pode-se seguir a tendência através de um sinal de quebra de preço na borda de um buraco.

  2. Controle de risco em vários níveis: a estratégia permite proteger o capital em diferentes situações, através da concepção de três níveis de diferentes condições de saída. O primeiro nível de julgamento regional permite identificar rapidamente erros de direção de negociação; O segundo nível atravessa a linha de equilíbrio para a mudança de tendência a médio prazo; O terceiro nível de parada móvel protege os lucros obtidos após um grande lucro.

  3. Parâmetros flexíveis: A estratégia oferece vários parâmetros ajustáveis, permitindo que os comerciantes otimizem o sistema de acordo com diferentes características do mercado e do ciclo de tempo. O comprimento e o múltiplo das faixas de Brin podem ser ajustados para se adaptar à volatilidade do mercado, os parâmetros de tempo das condições de saída ((X e Y) e o índice de retração de parada móvel ((Z) podem ser ajustados de acordo com as preferências de risco do comerciante.

  4. Vantagens de visualização: as bandas de Brin e as novas linhas de referência intermediárias são diretamente traçadas no gráfico, facilitando a análise intuitiva da posição dos preços e das potenciais áreas de suporte / resistência, aumentando a eficiência da decisão.

  5. Estrutura de código clara: Código de estratégia organizado, especificações de nomeação de variáveis, comentários detalhados, fácil de entender e manter. Separação lógica de entrada e saída clara, fácil de expandir e otimizar posteriormente.

Risco estratégico

  1. Falta de um mecanismo de stop loss claro: a estratégia atual não inclui um stop loss no sentido tradicional, o que pode levar a grandes perdas em condições de mercado extremas. É recomendado que os comerciantes adicionem manualmente um stop loss fixo ou uma lógica de stop loss dinâmica baseada no ATR, com base na tolerância ao risco individual.

  2. Excessiva dependência da faixa de Brin: Em mercados de alta volatilidade ou baixa liquidez, a faixa de Brin pode ser muito ampla ou muito estreita, resultando em diminuição da qualidade do sinal. É recomendável testar diferentes configurações de parâmetros de faixa de Brin em diferentes ambientes de mercado.

  3. Sensibilidade de parâmetros: a performance da estratégia pode ser sensível a configurações de parâmetros, como o comprimento da faixa de Bryn, o múltiplo da diferença padrão e os parâmetros de tempo das condições de partida. A escolha inadequada de parâmetros pode levar a excesso de negociação ou a perda de oportunidades importantes.

  4. Condição de disparo do stop móvel fixa: no código atual, a condição de disparo do stop móvel é definida como uma distância de risco fixa de 2x, o que pode não ser aplicável a todos os ambientes de mercado. Em mercados com muita volatilidade, isso pode levar a um stop muito longe, impedindo a proteção efetiva dos lucros.

  5. Risco de simetria condicional de múltiplos espaços: a estratégia usa uma lógica de entrada e saída simétrica para a direção de múltiplos espaços, mas, no mercado real, o comportamento de queda e queda geralmente não é simétrico (como o mercado de ações, que geralmente cai mais rápido do que sobe). Recomenda-se considerar a configuração de diferentes parâmetros para a direção de múltiplos espaços.

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

  1. Aumentar o mecanismo de parada inteligente: pode ser introduzido o stop dinâmico baseado no ATR (mediana de amplitude real) ou o intervalo de parada baseado no tamanho da banda de Brin para que o stop seja mais adequado para os movimentos reais do mercado. A implementação pode ser feita adicionando o parâmetro stop na função strategy.entry ou usando o parâmetro stop_loss da função strategy.exit.

  2. Optimizar as condições de filtragem de entrada: Considere a adição de indicadores de confirmação de tendência, como o indicador de movimento de direção ((DMI) ou o índice de força relativa ((RSI), para filtrar sinais de baixa qualidade. Por exemplo, aceitar um sinal de seguimento de tendência somente quando o ADX > 25 ou um sinal de reversão somente quando o RSI está sobrecomprado / sobrevendido.

  3. Configuração de parâmetros de adaptação: os parâmetros de faixa de Bryn e os parâmetros de condições de saída são projetados de forma auto-adaptativa, ajustando-se automaticamente à volatilidade do mercado. Por exemplo, é possível calcular a taxa de flutuação dos últimos N ciclos e ajustar dinamicamente o múltiplo de diferença padrão da faixa de Bryn.

  4. Melhorar o mecanismo de travagem móvel: permitir que as condições de disparo e a distância de rastreamento do travamento móvel sejam ajustáveis, em vez de serem fixadas em 2 vezes a distância de risco. Considere a variação da característica do travamento móvel de acordo com diferentes períodos de tempo e ajuste a porcentagem de retirada do travamento móvel.

  5. Adição de filtros de tempo: introdução de filtros de tempo de negociação, evitando os períodos de alta volatilidade antes da abertura e do fechamento do mercado, ou adição de filtros de melhor tempo de negociação para mercados específicos.

  6. Análise de múltiplos períodos: integra a estrutura de análise de múltiplos períodos, exigindo que a direção da tendência em períodos mais elevados coincida com a direção da negociação atual, para melhorar a qualidade do sinal. Por exemplo, aceitar múltiplos sinais no gráfico de 4 horas somente quando a linha do sol está em alta.

  7. Optimizar a gestão de fundos: adicionar uma lógica de cálculo de posições baseada na volatilidade, aumentando as posições em ambientes de baixa volatilidade e reduzindo as posições em ambientes de alta volatilidade, para equilibrar o risco com os ganhos.

Resumir

A estratégia de negociação de tendência de seguimento e reversão de Brinbelt em níveis múltiplos é um sistema de negociação abrangente projetado para gerenciar eficazmente o risco ao mesmo tempo em que captura oportunidades de mercado através das características dinâmicas dos indicadores de Brinbelt. A maior vantagem da estratégia é sua flexibilidade e adaptabilidade, podendo encontrar oportunidades de negociação em diferentes ambientes de mercado e adaptar-se a diferentes tipos de negociação e períodos de tempo por meio de parâmetros.

Embora a estratégia tenha alguns pontos de risco, como a falta de um mecanismo de parada de perdas claro e a sensibilidade dos parâmetros, as orientações de otimização apresentadas neste artigo, como o aumento do stop inteligente, a otimização das condições de filtragem de entrada e a configuração de parâmetros adaptáveis, podem melhorar ainda mais a estabilidade e a lucratividade da estratégia.

Para os comerciantes, é recomendável fazer um bom retrospecto antes da aplicação real e ajustar os parâmetros de acordo com as características específicas do mercado. Ao mesmo tempo, a estratégia é usada como parte de um sistema de negociação completo, combinado com outras técnicas e análise fundamental, para tomar decisões de negociação abrangentes.

Código-fonte da estratégia
/*backtest
start: 2024-04-01 00:00:00
end: 2025-03-31 00:00:00
period: 6d
basePeriod: 6d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Bollinger Bands Strategy", overlay=true)

// 輸入參數
length = input.int(20, "BB Length", minval=1, group="布林帶設定")
mult = input.float(2.0, "BB Multiplier", minval=0.001, maxval=50, group="布林帶設定")
X = input.int(3, "Exit Condition 1 Bars (X)", minval=1, group="出場設定")
Y = input.int(10, "Exit Condition 2 Bars (Y)", minval=1, group="出場設定")
Z = input.float(30.0, "Trail Profit Retreat Z%", minval=1.0, maxval=100.0, step=1.0, group="出場設定")

// 計算布林帶
source = close
basis = ta.sma(source, length)          // 20 期均線
dev = mult * ta.stdev(source, length)   // 標準差
upper = basis + dev                     // 上緣
lower = basis - dev                     // 下緣
mid1 = upper - (upper - basis)/3
mid2 = lower + (basis - lower)/3

// 繪製布林帶
plot(basis, "Basis", color=color.gray)
plot(upper, "Upper", color=color.blue)
plot(lower, "Lower", color=color.blue)
plot(mid1,"mid1",color = color.yellow)
plot(mid2,"mid2",color = color.yellow)
//fill(upper, lower, color=color.new(color.blue, 90), title="BB Fill")

// 進場條件
longEntry = ta.crossover(source, lower) or (low < lower and close > lower)
shortEntry = ta.crossunder(source, upper) or (high > upper and close < upper)

// 進場執行
if (longEntry)
    strategy.entry("Long", strategy.long)

if (shortEntry)
    strategy.entry("Short", strategy.short)

// 出場條件變數
var float longEntryPrice = na
var float shortEntryPrice = na
var int longBarsSinceEntry = 0
var int shortBarsSinceEntry = 0

// 更新持倉狀態
if (strategy.position_size > 0)  // 做多持倉
    if (na(longEntryPrice))      // 記錄進場價格和起始計數
        longEntryPrice := strategy.position_avg_price
        longBarsSinceEntry := 0
    longBarsSinceEntry := longBarsSinceEntry + 1

if (strategy.position_size < 0)  // 做空持倉
    if (na(shortEntryPrice))
        shortEntryPrice := strategy.position_avg_price
        shortBarsSinceEntry := 0
    shortBarsSinceEntry := shortBarsSinceEntry + 1

// 做多出場條件
if (strategy.position_size > 0)
    // 條件 1:第 X 根 K 線後,收盤價 < lower + (basis - lower) / 3
    longExitLevel1 = lower + (basis - lower) / 3
    if (longBarsSinceEntry >= X and close < longExitLevel1)
        strategy.close("Long", comment="Long Exit Condition 1")
    
    // 條件 2:第 Y 根 K 線後,收盤價 < basis
    if (longBarsSinceEntry >= Y and close < basis)
        strategy.close("Long", comment="Long Exit Condition 2")
    
    // 條件 3:移動停利(收盤價 > upper 觸發)
    distanceLong = longEntryPrice - lower
    trailPriceLong = longEntryPrice + (distanceLong * 2)  // 假設 2 倍風險距離作為觸發點,可調整
    trailOffsetLong = distanceLong * (1 - Z / 100)
    strategy.exit("Long Trail", "Long", trail_price=trailPriceLong, trail_offset=trailOffsetLong)

// 做空出場條件
if (strategy.position_size < 0)
    // 條件 1:第 X 根 K 線後,收盤價 > upper - (upper - basis) / 3
    shortExitLevel1 = upper - (upper - basis) / 3
    if (shortBarsSinceEntry >= X and close > shortExitLevel1)
        strategy.close("Short", comment="Short Exit Condition 1")
    
    // 條件 2:第 Y 根 K 線後,收盤價 > basis
    if (shortBarsSinceEntry >= Y and close > basis)
        strategy.close("Short", comment="Short Exit Condition 2")
    
    // 條件 3:移動停利(收盤價 < lower 觸發)
    distanceShort = upper - shortEntryPrice
    trailPriceShort = shortEntryPrice - (distanceShort * 2)  // 假設 2 倍風險距離作為觸發點,可調整
    trailOffsetShort = distanceShort * (1 - Z / 100)
    strategy.exit("Short Trail", "Short", trail_price=trailPriceShort, trail_offset=trailOffsetShort)

// 清除變數(當持倉結束時)
if (strategy.position_size == 0)
    longEntryPrice := na
    shortEntryPrice := na
    longBarsSinceEntry := 0
    shortBarsSinceEntry := 0