Fortalecimento da estratégia quantitativa de reversão à média de Bollinger

BB EMA ATR SMA stdev
Data de criação: 2024-11-18 16:07:05 última modificação: 2024-11-18 16:07:05
cópia: 7 Cliques: 549
1
focar em
1617
Seguidores

Fortalecimento da estratégia quantitativa de reversão à média de Bollinger

Visão geral

A estratégia é um sistema de negociação de regressão de média baseado em Bollinger Bands, que otimiza a eficácia da negociação através da combinação de filtros de tendência e stop loss dinâmico. A estratégia usa princípios estatísticos para negociar quando o preço se desvia da média, ao mesmo tempo em que aumenta a taxa de ganho e gerencia o risco por meio de indicadores técnicos.

Princípio da estratégia

O núcleo da estratégia baseia-se nos seguintes componentes-chave:

  1. Utiliza uma faixa de Bollinger de 20 ciclos como principal fonte de sinal, com uma largura de banda de 2 vezes a diferença padrão
  2. Introdução de EMAs de 50 ciclos como filtros de tendência para garantir que a direção da negociação esteja de acordo com a tendência de médio prazo
  3. A utilização de um sistema ATR de 14 ciclos para a definição de metas de stop loss e profit, aumentando a relação risco/benefício
  4. Abertura quando o preço toca a trajectória inferior e está acima da EMA, abertura quando toca a trajectória superior e está abaixo da EMA
  5. Usar 2x o ATR como meta de ganho e 1x o ATR como ponto de parada

Vantagens estratégicas

  1. Combinando os benefícios da regressão do valor médio e do acompanhamento de tendências, aumenta a confiabilidade das transações
  2. Paradas e ganhos dinâmicos, adaptados às mudanças na volatilidade do mercado
  3. Regras de entrada e saída claras, menos julgamentos subjetivos
  4. Uma taxa de risco/benefício fixa de 2:1, favorável à estabilidade dos lucros a longo prazo
  5. Portfólio de indicadores técnicos reduz o impacto de falsos sinais

Risco estratégico

  1. O que pode ser perdido em mercados de alta tendência
  2. Transações frequentes podem ocorrer quando os espaços de classificação horizontal são muito estreitos
  3. Perda de liquidez pode se deslocar quando o mercado muda
  4. Os parâmetros precisam ser monitorados e ajustados continuamente para se adaptarem às mudanças do mercado
  5. Os custos de transação podem afetar os retornos da estratégia

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

  1. Adicionar indicador de volume como confirmação auxiliar
  2. Introdução de filtros de volatilidade para evitar períodos de alta volatilidade
  3. Mecanismo de adaptação de parâmetros
  4. Adicionar mais indicadores técnicos para a verificação cruzada
  5. Melhorar o sistema de gestão de fundos

Resumir

Esta é uma estratégia que combina a análise técnica clássica com métodos modernos de quantificação. A estratégia tem uma boa praticidade através da confirmação de múltiplos indicadores e rigoroso controle de risco. Recomenda-se um bom histórico de retrospectiva e verificação de transações em simulação antes do lançamento.

Código-fonte da estratégia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-17 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Optimized Bollinger Mean Reversion", overlay=true)

// Bollinger Band Settings
length = input.int(20, title="BB Length")
src = input(close, title="Source")
mult = input.float(2.0, title="BB Multiplier")

// Bollinger Bands Calculation
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// Plot the Bollinger Bands
plot(basis, color=color.blue)
p1 = plot(upper, color=color.red)
p2 = plot(lower, color=color.red)
fill(p1, p2, color=color.rgb(41, 98, 255, 90))

// Trend Filter - 50 EMA
ema_filter = ta.ema(close, 50)

// ATR for Dynamic Stop Loss/Take Profit
atr_value = ta.atr(14)

// Buy condition - price touches lower band and above 50 EMA
buy_condition = ta.crossover(close, lower) and close > ema_filter

// Sell condition - price touches upper band and below 50 EMA
sell_condition = ta.crossunder(close, upper) and close < ema_filter

// Strategy Execution
if (buy_condition)
    strategy.entry("Buy", strategy.long)

if (sell_condition)
    strategy.entry("Sell", strategy.short)

// Exit with dynamic ATR-based stop loss and take profit
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=2*atr_value, stop=1*atr_value)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", limit=2*atr_value, stop=1*atr_value)