Bandas de Bollinger e estratégia de negociação de Fibonacci

Autora:ChaoZhang, Data: 21 de setembro de 2023 21:04:38
Tags:

Resumo

Esta estratégia combina as Bandas de Bollinger e os indicadores de retração de Fibonacci para uma abordagem de múltiplos indicadores.

Estratégia lógica

A estratégia baseia-se em dois indicadores principais:

  1. Bandeiras de Bollinger

    Calcula as faixas superior, média e inferior. A quebra do preço acima da faixa inferior é sinal longo e a quebra abaixo da faixa superior é sinal curto.

  2. Retracements de Fibonacci

    Calcula os níveis de retracement de 0% e 100% com base em máximos e mínimos históricos.

A lógica específica de negociação é a seguinte:

Sinais longos: O preço rompe acima da faixa superior e está acima do suporte de 0% de Fibonacci.

Sinais curtos: O preço quebra abaixo da faixa inferior e está abaixo da resistência de Fibonacci de 100%.

As saídas estão ao redor da faixa do meio para tirar lucro ou parar a perda.

Vantagens

  • Combina bandas de Bollinger e indicadores de Fibonacci
  • Bandas julgam tendência, Fibonacci identifica níveis-chave
  • A probabilidade combinada de sinais falsos é menor
  • Saídas da faixa média, reduções de controlo
  • Regras claras de entrada e saída, fáceis de aplicar

Riscos

  • Os indicadores baseados no MA podem atrasar-se, perdendo os melhores níveis
  • Reacção lenta a eventos importantes, orientada exclusivamente por indicadores
  • Os filtros duplos limitam a frequência de negociação
  • Parâmetros inadequados afetam negativamente as faixas e os retraços
  • Os parâmetros precisam de otimização para diferentes produtos

Os riscos podem ser reduzidos:

  • Otimização para as melhores combinações de parâmetros
  • Relaxar os critérios de entrada como adicionar padrões de candelabro
  • Melhoria das saídas com paradas traseiras
  • Ensaios separados de parâmetros por produto
  • Sistema de regulação do tamanho da posição

Orientações para a melhoria

A estratégia pode ser melhorada:

  1. Optimização dos parâmetros das bandas de Bollinger

    Encontrar as proporções ideais para as faixas superior/inferior

  2. Otimização dos períodos de retracementos de Fibonacci

    Teste de diferentes períodos de retrospecção para retracements

  3. Relaxação das condições de entrada

    Observando padrões de candelabro em intervalos de banda

  4. Melhoria das saídas

    Consideração dos mecanismos de trailing stop

  5. Ensaios de parâmetros específicos do produto

    Os parâmetros precisam de ajuste para diferentes produtos

Resumo

Esta estratégia combina os pontos fortes das Bandas de Bollinger e Retracements de Fibonacci para sinais de maior qualidade. Mas desafios como a otimização de parâmetros difíceis existem. Melhorias podem ser feitas através de ajuste de parâmetros, relaxando critérios de entrada, aprimorando saídas, etc. para refinar a estratégia mantendo sua vantagem. Ajustes contínuos baseados nos resultados do backtest também são fundamentais para a robustez.


/*backtest
start: 2023-09-13 00:00:00
end: 2023-09-20 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands & Fibonacci Strategy", shorttitle="BB & Fib Strategy", overlay=true)

// Initialize position variables
var bool long_position = false
var bool short_position = false

// Bollinger Bands settings
length = input.int(20, title="Bollinger Bands Length")
src = input(close, title="Source")
mult = input.float(2.0, title="Standard Deviation Multiplier")

basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)

upper_band = basis + dev
lower_band = basis - dev

// Fibonacci retracement levels
fib_0 = input.float(0.0, title="Fibonacci 0% Level", minval=-100, maxval=100) / 100
fib_100 = input.float(1.0, title="Fibonacci 100% Level", minval=-100, maxval=100) / 100

// Plotting Bollinger Bands
plot(upper_band, color=color.red, title="Upper Bollinger Band")
plot(lower_band, color=color.green, title="Lower Bollinger Band")

// Calculate Fibonacci levels
fib_range = ta.highest(high, 50) - ta.lowest(low, 50)
fib_high = ta.highest(high, 50) - fib_range * fib_0
fib_low = ta.lowest(low, 50) + fib_range * fib_100

// Plot Fibonacci retracement levels
plot(fib_high, color=color.blue, title="Fibonacci High")
plot(fib_low, color=color.orange, title="Fibonacci Low")

// Entry conditions
long_condition = ta.crossover(close, upper_band) and low > fib_low
short_condition = ta.crossunder(close, lower_band) and high < fib_high

// Plot arrows on the chart
plotshape(series=long_condition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=short_condition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Entry and exit logic
if long_condition and not short_position
    strategy.entry("Long", strategy.long)
    long_position := true
    short_position := false

if short_condition and not long_position
    strategy.entry("Short", strategy.short)
    short_position := true
    long_position := false

// Exit conditions (you can customize these)
long_exit_condition = ta.crossunder(close, basis)
short_exit_condition = ta.crossover(close, basis)

if long_exit_condition
    strategy.close("Long")
    long_position := false

if short_exit_condition
    strategy.close("Short")
    short_position := false



Mais.