Estratégia de negociação de bandas de Bollinger Span


Data de criação: 2023-12-19 14:08:45 última modificação: 2023-12-19 14:08:45
cópia: 0 Cliques: 639
1
focar em
1621
Seguidores

Estratégia de negociação de bandas de Bollinger Span

Visão geral

A estratégia é baseada no trajeto ascendente e descendente da faixa de Bryn, julgando que o preço faz mais quando ele quebra a faixa de Bryn e fica vazio quando ele quebra a faixa de Bryn.

Princípio da estratégia

A estratégia usa a trajetória média, a trajetória superior e a trajetória inferior nas faixas de Bryn para determinar os limites extremos dos preços. A trajetória média é a média móvel simples dos preços de fechamento dos últimos 25 períodos, e a trajetória superior e inferior é a distância entre a linha de trajetória média e a seguinte distância padrão.

Se o preço estiver abaixo da linha de queda, compre mais; se o preço estiver acima da linha de queda, venda a zero. Se o preço estiver acima da linha de queda, configure a linha de parada como o preço de entrada multiplicado pelo fator de parada, e a linha de parada como o preço de entrada multiplicado pelo fator de parada.

A estratégia também incluiu algumas regras auxiliares, como a de permitir apenas um sinal em 24 horas, para evitar transações desnecessárias.

Vantagens estratégicas

  1. O uso de bandas de Brin para determinar um intervalo de preços anormal é uma estratégia de rastreamento de tendências que permite capturar tendências de preços.
  2. Parâmetros de controle de perdas individuais de acordo com o princípio de stop loss
  3. Além disso, algumas regras auxiliares foram adicionadas para evitar a repetição de sinais e transações sem sentido.

Risco estratégico

  1. A faixa de Brin não representa a tendência do preço, podendo gerar sinais errados
  2. A escolha inadequada do momento do sinal de ruptura pode causar prejuízos.
  3. Mercados em tendência A duração e oscilação de um mercado sem tendência são difíceis de prever e podem levar a compras desnecessárias

Medidas de controle de risco:

  1. Ajustar os parâmetros da faixa de Bryn para otimizar o tempo do sinal de ruptura
  2. Combinando outros indicadores para avaliar grandes tendências
  3. De acordo com a variedade e as condições do mercado, definir o limiar de parada de perda

Direção de otimização da estratégia

  1. Os parâmetros da faixa de brinquedos podem ser considerados como uma otimização de adaptação para aproximar a faixa de brinquedos do estado atual do mercado
  2. Pode ser combinado com outros indicadores para avaliar a confiabilidade dos sinais de tendência e evitar sinais errados
  3. O que você pode fazer é combinar modelos de aprendizado de máquina para identificar automaticamente os melhores momentos de compra e venda.

Resumir

A estratégia em geral é uma estratégia de acompanhamento de tendências simples, usando bandas de Bryn para determinar anomalias de preços e acompanhar tendências. Há espaço para otimização em termos de otimização de parâmetros, controle de risco e filtragem de sinais, mas a idéia central é simples e clara, adequada para o aprendizado de estratégias.

Código-fonte da estratégia
/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("I11L OIL Bot",overlay=true, initial_capital=1000000,default_qty_value=1000000,default_qty_type=strategy.cash,commission_type=strategy.commission.percent,commission_value=0.00)

leverage = input.float(1,"Leverage (x)",step=1)
SL_Factor = 1 - input.float(1,"Risk Capital per Trade (%)", minval=0.1, maxval=100, step=0.05) / 100 / leverage
TP_Factor = input.float(2, step=0.1)
invertBuyLogic = input.bool(false)
 
lookbackDistance = input.int(25)
devMult = input.float(2,step=0.1)

var lastSellHour = 0
var disableAdditionalBuysThisDay = false


if(time > lastSellHour + 1000 * 60 * 60 * 6)
    disableAdditionalBuysThisDay := false
if(strategy.position_size != strategy.position_size[1])
    disableAdditionalBuysThisDay := true
    lastSellHour := time

source = close

//Trade Logic
basis = ta.sma(source, lookbackDistance)
dev = devMult * ta.stdev(source, lookbackDistance)
upper = basis + dev
lower = basis - dev
isBuy = ta.crossunder(source, upper)
isBuyInverted = ta.crossover(source, lower)

plot(upper, color=color.white)
plot(lower, color=color.white)

strategy.initial_capital = 50000

if((invertBuyLogic ? isBuyInverted : isBuy) and not(disableAdditionalBuysThisDay))
    strategy.entry("Long", strategy.long, (strategy.initial_capital / close) * leverage)

if(strategy.position_size > 0)
    strategy.exit("SL Long", "Long", stop=strategy.position_avg_price * SL_Factor)
    strategy.close("Long",  when=close > strategy.position_avg_price * (1 + (1 - SL_Factor) * TP_Factor), comment="TP Long")