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


Data de criação: 2023-09-21 21:04:38 última modificação: 2023-09-21 21:04:38
cópia: 2 Cliques: 1261
1
focar em
1617
Seguidores

Visão geral

Esta estratégia combina o indicador de Brin e o indicador de retração de Fibonacci, permitindo a negociação de uma combinação de indicadores múltiplos. Pertence ao tipo típico de estratégia de indicador de combinação. A estratégia determina a direção da tendência através das faixas de Brin e a retração de Fibonacci determina os pontos de resistência de suporte crítico, gerando assim um sinal de negociação.

Princípio da estratégia

A estratégia baseia-se em dois indicadores:

  1. Faixa de Brin

Calcule os traços superior, médio e inferior na faixa de Bryn. Quando o preço quebra o traço inferior, faça um sinal de mais, e quando o preço quebra o traço superior, faça um sinal de menos.

  1. Fibonacci se retira

Dois importantes pontos de retração de Fibonacci, 0% e 100%, são calculados com base nos altos e baixos históricos. Estes dois pontos podem servir como pontos de suporte e resistência importantes.

A lógica da transação é a seguinte:

Faça mais sinais: o preço sobe através da faixa de Brin e está em 0% acima do suporte de Fibonacci

Sinais de vazio: Preço abaixo do traçado da faixa de Brin e abaixo de 100% da resistência de Fibonacci

A estação plana é usada como referência no meio da rota, com parada ou perda perto do meio da rota.

Vantagens estratégicas

  • Combinação de dois indicadores, o Fibonacci e o Brin.
  • Brin e Fibonacci definem o ponto crítico
  • A combinação de ambos os filtros reduz a probabilidade de falha de sinal.
  • Perda de travagem perto da órbita central, controle de retirada em posição
  • Regras de entrada e saída claras e fáceis de usar

Risco estratégico

  • Indicadores de linha média são fáceis de atrasar e podem perder o melhor ponto
  • A resposta a emergências graves não é suficientemente ágil com base apenas em indicadores
  • Condições de dupla filtragem limitam a frequência de transações
  • Configuração de parâmetros incorreta pode afetar o efeito de correlação e de reversão
  • Parâmetros de otimização devem ser testados separadamente em diferentes variedades

As medidas a seguir podem reduzir o risco:

  • Parâmetros de otimização para encontrar a melhor combinação de parâmetros
  • Condições de admissão adequadamente relaxadas, como a inclusão de uma forma de linha K
  • Otimização de mecanismos de stop loss, como o rastreamento de stop loss
  • Os melhores parâmetros para testar diferentes variedades
  • Ajustar o sistema de gestão de posições

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Parâmetros da faixa de Bryn optimizados

Encontrar a melhor proporção de parâmetros para o cálculo de ascensão e descensão

  1. Otimização do ciclo de retração de Fibonacci

Parâmetros de diferentes períodos de teste de cálculo de retração

  1. Condições de admissão mais flexíveis

Por exemplo, observe a forma de uma linha K na ruptura de uma faixa de Bryn.

  1. Otimização do mecanismo de suspensão

Considere um modo de parar perdas com função de rastreamento

  1. Testes em diferentes variedades

Os parâmetros de diferentes variedades não são necessariamente os mesmos e precisam ser ajustados

Resumir

Esta estratégia, através da combinação de indicadores de retirada de Fibonacci e Fibra, exercita suas vantagens técnicas e melhora a qualidade do sinal de negociação. Mas também há problemas como a dificuldade de otimização de parâmetros, condições de entrada muito rigorosas. Podemos aperfeiçoar o sistema de estratégia por meio de métodos como configuração de parâmetros de otimização, largura adequada de condições de entrada e melhoria do mecanismo de parada de perdas.

Código-fonte da estratégia
/*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