Estratégia BB%B

Autora:ChaoZhang, Data: 2023-09-25 17:53:36
Tags:

Resumo

A estratégia BB%B é uma estratégia quantitativa de negociação que utiliza o valor percentual B das Bandas de Bollinger para tomar decisões de investimento.

Estratégia lógica

O indicador BB%B representa a posição do preço atual dentro das Bandas de Bollinger, calculada pela fórmula (Preço atual - Lower Rail) / (Upper Rail - Lower Rail). Quando BB%B cai abaixo do limiar de sobrevenda, um sinal de compra é gerado. Quando BB%B sobe acima do limiar de sobrecompra, um sinal de venda é gerado. Depois que o sinal de negociação é ativado, se BB%B recuar de volta para o limiar oposto, a posição será fechada.

Especificamente, a estratégia primeiro calcula a SMA de 21 dias e o desvio padrão de 2x para obter os trilhos superior e inferior das Bandas de Bollinger. Em seguida, calcula o valor de BB%B do preço de fechamento atual. Se o BB%B estiver abaixo de -0.2 (configurável) e não houver posição atual, vá longo. Se o BB%B estiver acima de 1.2 (configurável) e não houver posição atual, vá curto. Os sinais de saída são acionados quando a posição longa existe e o BB%B cruza acima de 1.0 (configurável), ou quando a posição curta existe e o BB%B cruza abaixo de 0.2 (configurável).

A estratégia baseia-se no indicador BB%B para determinar se o preço atual está excedido para cima ou para baixo, e também usa o SMA para julgar a direção da tendência atual.

Análise das vantagens

  • Utilizar Bandas de Bollinger para identificar níveis de sobrecompra/supervenda

Os trilhos superiores e inferiores das Bandas de Bollinger representam uma certa faixa de desvio padrão do preço atual. Preços que se aproximam ou tocam as condições de sobrecompra do sinal superior do trilho, enquanto se aproximam ou tocam as condições de sobrevenda do sinal inferior do trilho. A estratégia BB%B faz pleno uso desta característica para determinar pontos de entrada e saída adequados.

  • Configuração flexível para ajustar a frequência

Os limiares BB%B, os períodos SMA, os limiares de pullback são todos configuráveis, o que proporciona conveniência para ajustar a frequência de negociação.

  • Identificação combinada de tendências

Além da determinação de sobrecompra/supervenda com Bandas de Bollinger, também combina SMA para julgar a tendência geral, evitando a negociação contra a tendência.

  • Mecanismo de retrocesso para evitar falsos sinais

Quando o preço toca pela primeira vez os trilhos das Bandas de Bollinger, a probabilidade de sobrecompra/supervenda é alta, mas também pode ser um falso breakout de curto prazo.

Análise de riscos

  • Incapacidade de determinar a evolução dos preços

A estratégia analisa apenas o indicador Bollinger Bands para determinar possíveis reversões, ignorando a tendência geral, o que pode levar à negociação contra a tendência e perdas.

  • Um limiar de retração inadequado pode perder oportunidades

Se o limiar de retração for demasiado elevado, a inversão da tendência pode não provocar uma alteração da posição no tempo, perdendo oportunidades.

  • Spread de preço mais amplo quando as Bandas de Bollinger se expandem

Quando a volatilidade do mercado aumenta, a distância entre os trilhos superior e inferior também aumenta, levando a um maior diferencial de preços para entrada e saída, o que aumenta o risco por negociação.

  • Frequência de negociação relativamente elevada

Em comparação com as estratégias de longo prazo, esta estratégia tem uma maior frequência de negociação, incorrendo em mais custos de negociação e deslizamento.

Orientações para melhorias

  • Incorporar indicadores de tendência para filtragem de sinais

Adicione indicadores de tendência como MACD, KDJ para apenas desencadear negociações ao longo da direção da tendência, evitando negociações contra-tendência.

  • Implementar um mecanismo de stop loss

Defina um montante fixo ou uma percentagem de stop loss para controlar por risco comercial e evite a expansão das perdas.

  • Otimize as combinações de parâmetros

Ajustar os períodos de SMA, os limiares BB%B, os limiares de retração, etc., para encontrar a combinação ideal de parâmetros, filtrando mais ruído e melhorando a estabilidade.

  • Considere os custos de negociação

Para diferentes produtos, ajustar os parâmetros para uma frequência de negociação mais baixa com base no seu perfil de custos de negociação para reduzir o impacto.

Resumo

A estratégia BB%B é uma estratégia quantitativa de negociação simples e prática. Ela usa Bandas de Bollinger para identificar pontos de preço de reversão potenciais, combina com SMA para a direção da tendência e negocia em torno de níveis de sobrecompra / sobrevenda. A estratégia é flexível para ajustar a frequência. Mas também tem riscos que precisam de melhorias adicionais, considerando fatores como tendência geral, stop loss, custos de negociação, para melhorar a estabilidade e lucratividade. Quando usada corretamente, a estratégia BB%B pode se tornar um componente eficaz nos sistemas de negociação quantitativa.


/*backtest
start: 2023-08-25 00:00:00
end: 2023-09-24 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// strategy(title = "BB%B Strat", shorttitle = "BB%B Strat", format=format.price, precision=2, default_qty_type=strategy.percent_of_equity, default_qty_value=20)
length = input.int(21, minval=1)
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
ob = input.float(1.2, "Overbought Line", step=0.1)
ob_close = input.float(1.0, "Overbought Close", step=0.1)
os = input.float(-0.2, "Oversold Line", step=0.1)
os_close = input.float(0.2, "Oversold Close", step=0.1)
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
bbr = (src - lower)/(upper - lower)
p = plot(bbr, "Bollinger Bands %B", color=#26A69A)
ob_hline = hline(ob, "Overbought", color=color.red, linestyle=hline.style_dashed)
obc_hline = hline(ob_close, "Overbought Close", color=color.red, linestyle=hline.style_dashed)
os_hline = hline(os, "Oversold", color=color.green, linestyle=hline.style_dashed)
osc_hline = hline(os_close, "Oversold Close", color=color.green, linestyle=hline.style_dashed)
fill(ob_hline, obc_hline, color=color.new(color.red, 80), title="Overbought")
fill(os_hline, osc_hline, color=color.new(color.green, 80), title="Overbought")
bgcolor(bbr > ob ? color.new(color.fuchsia, 80) : (bbr < os ? color.new(color.lime, 80) : na))

if bbr < os and strategy.position_size == 0
    strategy.entry("L", strategy.long)
if bbr >= os_close and strategy.position_size > 0
    strategy.close_all()

if bbr > ob and strategy.position_size == 0
    strategy.entry("S", strategy.short)
if bbr <= ob_close and strategy.position_size < 0
    strategy.close_all()

Mais.