Estratégia de negociação de regressão de bandas de Bollinger multinível

BB SMA stdev TP SL
Data de criação: 2025-02-21 13:06:24 última modificação: 2025-02-21 13:06:24
cópia: 1 Cliques: 463
2
focar em
319
Seguidores

Estratégia de negociação de regressão de bandas de Bollinger multinível Estratégia de negociação de regressão de bandas de Bollinger multinível

Visão geral

Trata-se de uma estratégia de negociação baseada no princípio da regressão do valor médio da faixa de Brin, que permite obter lucros em lotes por meio de vários níveis de stop loss. A estratégia opera quando o preço retorna após a ruptura da faixa de Brin e configura 5 diferentes níveis de stop loss para diminuir gradualmente a posição.

Princípio da estratégia

A estratégia baseia-se em um indicador de faixa de Brin, com 20 ciclos, usando o dobro da diferença padrão como um intervalo de flutuação. Quando o preço se move para baixo e fecha dentro da faixa, um sinal de multiplicação é acionado; Quando o preço se move para cima e fecha dentro da faixa, um sinal de ruptura é acionado. Após a entrada, a estratégia usa um mecanismo de parada de 5 níveis, estabelecendo um ponto de parada em 0,5%, 1%, 1,5%, 2% e 2,5%, respectivamente, e cada ponto de parada elimina 20% da posição.

Vantagens estratégicas

  1. O uso de um mecanismo de stop-loss em vários níveis permite obter mais receita se a tendência continuar, garantindo simultaneamente a realização de uma parte dos lucros.
  2. Apoio à aquisição de posições e melhoria da rentabilidade quando o negócio está na direção correta
  3. Usar a faixa de Brin como resistência de suporte dinâmico para se adaptar às flutuações do mercado
  4. Alteração de horário de negociação para evitar interrupções no horário de não negociação
  5. O sistema de prevenção de perdas foi criado para controlar os riscos.

Risco estratégico

  1. Pode desencadear frequentemente falsos sinais de ruptura em mercados de alta volatilidade
  2. A tendência rápida pode ter deixado de lado maiores oportunidades de lucro
  3. O mecanismo de adição de capital pode causar maiores perdas em caso de reversão do mercado
  4. Múltiplos pedidos de suspensão podem não ser totalmente executados devido à falta de liquidez Recomenda-se adaptar-se a diferentes condições de mercado, ajustando os parâmetros da faixa de Brin e a proporção de stop loss.

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

  1. Introdução de indicadores de volume de transação como condição de filtragem de sinal, aumentando a confiabilidade da brecha
  2. Ajustar a posição de parada de perda de acordo com a flutuação da taxa
  3. Aumentar os indicadores de filtragem de tendências para evitar a negociação contracorrente em uma forte tendência
  4. Optimizar a lógica de aquisição de posições, definindo limites máximos de posse
  5. Considere adicionar o Stop Loss Mobile para proteger melhor os lucros

Resumir

A estratégia captura oportunidades de retorno ao valor médio através de indicadores de Brin, e usa stop-loss em vários níveis e stop-loss dinâmico para gerenciar o risco. A vantagem da estratégia reside em seu mecanismo de gerenciamento de posições e controle de risco flexível, mas é necessário ter cuidado com a adequação ao ambiente de mercado ao usá-la. A estabilidade e a lucratividade da estratégia podem ser aumentadas ainda mais pela adição de indicadores de filtragem adicionais e pela otimização dos parâmetros de stop-loss.

Código-fonte da estratégia
/*backtest
start: 2025-02-19 10:00:00
end: 2025-02-20 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Binance","currency":"BNB_USDT"}]
*/

//@version=5
strategy("Bollinger Band Reentry Strategy", overlay=true)

// Inputs
bbLength = input.int(20, title="Bollinger Band Length")
bbMult = input.float(2.0, title="Bollinger Band Multiplier")
stopLossPerc = input.float(1.0, title="Stop Loss (%)") / 100
tp1Perc = input.float(0.5, title="Take Profit 1 (%)") / 100
tp2Perc = input.float(1.0, title="Take Profit 2 (%)") / 100
tp3Perc = input.float(1.5, title="Take Profit 3 (%)") / 100
tp4Perc = input.float(2.0, title="Take Profit 4 (%)") / 100
tp5Perc = input.float(2.5, title="Take Profit 5 (%)") / 100
allowAddToPosition = input.bool(true, title="Allow Adding to Position")
customSession = input.timeframe("0930-1600", title="Custom Trading Session")

// Calculate Bollinger Bands
basis = ta.sma(close, bbLength)
dev = ta.stdev(close, bbLength)
upperBB = basis + bbMult * dev
lowerBB = basis - bbMult * dev

// Plot Bollinger Bands
plot(upperBB, color=color.red, title="Upper Bollinger Band")
plot(lowerBB, color=color.green, title="Lower Bollinger Band")
plot(basis, color=color.blue, title="Bollinger Band Basis")

// Entry Conditions
longCondition = (ta.crossover(close, lowerBB) or (low < lowerBB and close > lowerBB)) and time(timeframe.period, customSession)
shortCondition = (ta.crossunder(close, upperBB) or (high > upperBB and close < upperBB)) and time(timeframe.period, customSession)

// Execute Trades
if (longCondition)
    strategy.entry("Long", strategy.long, when=allowAddToPosition or strategy.position_size == 0)
if (shortCondition)
    strategy.entry("Short", strategy.short, when=allowAddToPosition or strategy.position_size == 0)

// Take-Profit and Stop-Loss Levels for Long Trades
if (strategy.position_size > 0)
    strategy.exit("TP1", "Long", limit=strategy.position_avg_price * (1 + tp1Perc), qty=strategy.position_size * 0.2) // Take 20% profit
    strategy.exit("TP2", "Long", limit=strategy.position_avg_price * (1 + tp2Perc), qty=strategy.position_size * 0.2)
    strategy.exit("TP3", "Long", limit=strategy.position_avg_price * (1 + tp3Perc), qty=strategy.position_size * 0.2)
    strategy.exit("TP4", "Long", limit=strategy.position_avg_price * (1 + tp4Perc), qty=strategy.position_size * 0.2)
    strategy.exit("TP5", "Long", limit=upperBB, qty=strategy.position_size * 0.2) // Take final 20% at opposite band
    strategy.exit("Stop Loss", "Long", stop=strategy.position_avg_price * (1 - stopLossPerc))

// Take-Profit and Stop-Loss Levels for Short Trades
if (strategy.position_size < 0)
    strategy.exit("TP1", "Short", limit=strategy.position_avg_price * (1 - tp1Perc), qty=strategy.position_size * 0.2)
    strategy.exit("TP2", "Short", limit=strategy.position_avg_price * (1 - tp2Perc), qty=strategy.position_size * 0.2)
    strategy.exit("TP3", "Short", limit=strategy.position_avg_price * (1 - tp3Perc), qty=strategy.position_size * 0.2)
    strategy.exit("TP4", "Short", limit=strategy.position_avg_price * (1 - tp4Perc), qty=strategy.position_size * 0.2)
    strategy.exit("TP5", "Short", limit=lowerBB, qty=strategy.position_size * 0.2)
    strategy.exit("Stop Loss", "Short", stop=strategy.position_avg_price * (1 + stopLossPerc))

// Alerts
alertcondition(longCondition, title="Long Signal", message="Price closed inside Bollinger Band from below.")
alertcondition(shortCondition, title="Short Signal", message="Price closed inside Bollinger Band from above.")