Esta estratégia constrói uma estratégia de negociação baseada no indicador Bollinger Bands para alcançar a negociação automatizada em futuros de bitcoin em um período de tempo de 1 minuto.
A estratégia usa o indicador de Bandas de Bollinger com 55 períodos e um coeficiente de largura de banda definido como 4. A linha do meio das Bandas de Bollinger é a média móvel simples de 55 dias, e as linhas superior e inferior são a linha do meio +4 vezes o desvio padrão e a linha do meio -4 vezes o desvio padrão, respectivamente. Quando o preço cai abaixo da linha inferior, vá longo; quando o preço sobe acima da linha superior, vá curto.
Após o sinal longo ser acionado, a estratégia irá definir uma ordem de stop loss no preço da linha inferior.
A estratégia utiliza a capacidade do indicador Bollinger Bands de determinar condições de sobrecompra e sobrevenda para determinar razoavelmente o momento da entrada. O coeficiente de largura de banda é definido em 4 para evitar negociações excessivamente frequentes. Os resultados dos testes de retorno mostram que no prazo de 1 minuto do bitcoin, a estratégia alcança uma probabilidade lucrativa de mais de 80%, com efeito significativo.
Em comparação com outros indicadores, o indicador Bollinger Bands adapta-se muito bem às flutuações do mercado e pode ajustar automaticamente a largura de banda para capturar a volatilidade em diferentes períodos.
Além disso, a estratégia baseia-se exclusivamente no indicador Bollinger Bands, que é muito simples e satisfaz os requisitos para a negociação quantitativa.
O principal risco desta estratégia reside no fato de que o efeito do indicador Bollinger Bands de julgar as condições de mercado sobrecompradas e sobrevendidas pode ser afetado por grandes movimentos de mercado. Em um mercado de touros, os preços das ações podem ficar altos por um período prolongado, dificultando que o trilho superior forme uma resistência efetiva. Da mesma forma, em um mercado de baixa, os preços das ações podem permanecer baixos por um período prolongado, dificultando que o trilho inferior forneça suporte efetivo. Tudo isso pode levar a sinais de negociação inválidos sendo gerados pela estratégia.
Além disso, a definição do stop loss diretamente nos trilhos superior e inferior das Bandas de Bollinger pode ser muito próxima, não dando espaço suficiente à estratégia e, assim, sendo eliminada pelas flutuações de preços.
A estratégia pode ser otimizada nos seguintes aspectos:
Os indicadores como KDJ e MACD podem ajudar a julgar condições extremas de sobrecompra/supervenda para modificar os sinais comerciais.
Em comparação com o stop loss estático, o trailing stop loss pode ajustar a posição de stop loss adequadamente com base na flutuação do preço.
Otimizar parâmetros. Diferentes períodos e parâmetros de largura de banda de Bollinger Bands podem ser testados para encontrar a combinação ideal de parâmetros. Algoritmos de otimização também podem ser usados para encontrar os parâmetros ideais.
Ajuste os parâmetros de acordo com as condições do mercado. O mercado tem três estados: touro, urso e limite de faixa. Assim, os parâmetros podem ser definidos separadamente com base nas condições do mercado.
Adicionar estratégias avançadas de gestão da alavancagem Gerenciar o perfil de risco da estratégia ajustando dinamicamente a alavancagem.
A maior força desta estratégia é a sua lógica de negociação simples e clara de obter sinais de sobrecompra / sobrevenda do indicador Bollinger Bands. No geral, é uma estratégia quantitativa de curto prazo muito prática.
/*backtest start: 2023-11-27 00:00:00 end: 2023-12-27 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Kozlod - BB Strategy - 1 minute", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100) // // author: Kozlod // date: 2019-05-29 // BB - XBTUDS - Bitmex - 1m // https://www.tradingview.com/u/Kozlod/ // https://t.me/quantnomad // source = close length = input(55, minval=1) mult = input(4, minval=0.001, maxval=50) basis = sma(source, length) dev = mult * stdev(source, length) upper = basis + dev lower = basis - dev plot(upper) plot(lower) buyEntry = crossover(source, lower) sellEntry = crossunder(source, upper) if (crossover(source, lower)) strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="BBandLE") else strategy.cancel(id="BBandLE") if (crossunder(source, upper)) strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="BBandSE") else strategy.cancel(id="BBandSE")