Estratégia de negociação de índices baseada em bandas de Bollinger

Autora:ChaoZhang, Data: 2023-12-08 16:52:24
Tags:

img

Resumo

A estratégia é denominada Quant Trading Strategy Based on Bollinger Bands. É uma estratégia de negociação de índices e ações baseada em um canal melhorado de Bollinger Bands. Ao ajustar os parâmetros de Bollinger Bands, realiza otimização para posições longas e curtas para lucrar em mercados de tendência ascendente e descendente.

Lógica de negociação

A lógica central desta estratégia é baseada no canal de Bollinger Bands, que consiste em linha média, faixa superior e faixa inferior. A linha média é a média móvel do preço de fechamento por n dias. As faixas superior e inferior são desvios acima e abaixo da linha média. Quando o preço se aproxima da faixa superior, ele indica que o mercado pode estar sobreaquecido e pode haver oportunidades curtas. Quando o preço se aproxima da faixa inferior, ele indica que o mercado pode estar subvalorizado e pode haver oportunidades longas.

Esta estratégia usa duas Bandas de Bollinger. A Banda de Bollinger 1 é adequada para negociações longas e a Banda de Bollinger 2 é adequada para negociações curtas. Os parâmetros da Banda de Bollinger 1 são otimizados com comprimento de 25 e desvio de 2,9 vezes. Os parâmetros da Banda de Bollinger 2 são otimizados com comprimento de 36 e desvio de 3,2 vezes. Quando o preço de fechamento cruza acima da banda inferior da Banda de Bollinger 1, ele gerará sinal longo. Quando o preço de fechamento cruza abaixo da banda superior da Banda de Bollinger 2, ele gerará sinal curto.

Análise das vantagens

Em comparação com as estratégias tradicionais de Bollinger Bands, esta estratégia tem as seguintes vantagens:

  1. Realiza uma negociação bidireccional tanto para os lados longos como para os curtos, que podem aproveitar oportunidades de negociação em diferentes fases do mercado.

  2. Os dois conjuntos de parâmetros Bollinger Bands são testados de forma elaborada para gerar efetivamente sinais comerciais.

  3. O método de stop loss móvel pode controlar efetivamente o risco de um lado.

Análise de riscos

Há também alguns riscos potenciais para esta estratégia:

  1. Risco de invalidez das bandas de Bollinger.

  2. Risco de stop loss ser atingido. movendo stop loss pode ser atingido para expandir as perdas. podemos adequadamente ampliar o stop loss ou stop out oportuno para evitar este risco.

  3. Risco elevado de frequência de negociação: parâmetros excessivamente sensíveis podem conduzir a negociações frequentes e a um aumento dos custos de negociação.

Orientações de otimização

Ainda há espaço para uma melhor otimização desta estratégia:

  1. Combine outros indicadores para filtrar sinais e evitar negócios errados quando as Bandas de Bollinger falharem, como padrões de linha K, volume de negociação, etc.

  2. Ajustar dinamicamente os parâmetros para se adequarem às características do mercado de diferentes períodos.

  3. Otimizar os métodos de stop loss utilizando stop loss de trailing ou stop loss de movimentação exponencial para controlar eficazmente os riscos.

  4. Combinar algoritmos de aprendizagem de máquina para otimizar automaticamente os parâmetros.

Resumo

Em resumo, esta estratégia, em geral, otimiza a negociação bidirecional para ambos os lados longos e curtos com base no canal de Bollinger Bands duplo e otimização de parâmetros. Em comparação com as estratégias tradicionais de Bollinger Bands, tem as vantagens de negociação bidirecional e controle de risco. É adequado para aproveitar oportunidades em diferentes estágios do mercado e tem certo valor prático.


/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=4
strategy("BB NDX strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, calc_on_every_tick = true, commission_type = strategy.commission.percent, commission_value = 0.01)

source = close
length = input(25, minval=1, title="Length BB long")
mult = input(2.9, minval=0.001, maxval=50, step=0.1, title="MULT BB long")

length2 = input(36, minval=1, title="Length BB short")
mult2 = input(3.2, minval=0.001, maxval=50, step=0.1, title="MULT BB short")


basis = sma(source, length)
dev = mult * stdev(source, length)
dev2 = mult2 * stdev(source, length2)

upper = basis + dev2
lower = basis - dev

buyEntry = crossover(source, lower)
sellEntry = crossunder(source, upper)

longEntry=input(true)
shortEntry=input(true)

g(v, p) => round(v * (pow(10, p))) / pow(10, p)
risk     = input(100)
leverage = input(1.0, step = 0.5)
c = g((strategy.equity * leverage / open) * (risk / 100), 4)


tplong=input(0.065, step=0.005, title="Take profit % for long")
sllong=input(0.04, step=0.005, title="Stop loss % for long")
tpshort=input(0.025, step=0.005, title="Take profit % for short")
slshort=input(0.04, step=0.005, title="Stop loss % for short")

if(longEntry)
    strategy.entry("long",1,c,when=buyEntry)
    strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT',  alert_message = 'closeshort')
    strategy.close("long",when=sellEntry)
if(shortEntry)
    strategy.entry("short",0,c,when=sellEntry)
    strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT',  alert_message = 'closeshort')
    strategy.close("short",when=buyEntry)




Mais.