Estratégia de acompanhamento das bandas de Bollinger

Autora:ChaoZhang, Data: 2024-02-27 16:11:44
Tags:

img

Resumo

Esta estratégia usa o indicador Bollinger Band combinado com o rastreamento de stop loss para implementar a negociação de rastreamento de tendência. Ele fica curto quando o preço quebra o trilho superior e fica longo quando o preço quebra o trilho inferior.

Princípio da estratégia

A estratégia calcula primeiro o trilho médio, o trilho superior e o trilho inferior da Banda de Bollinger.

Quando o preço atravessa o trilho superior, vá curto; quando o preço atravessa o trilho inferior, vá longo. Após a posição de abertura, defina o preço stop loss e take profit. O preço stop loss é o valor de entrada Stop, e o preço take profit é o valor de entrada Limit.

Além disso, a estratégia também fornece a opção de abertura de reversão.

Seja abertura de tendência ou abertura de reversão, as configurações para stop loss e take profit são as mesmas.

Análise das vantagens

A estratégia combina o indicador Bollinger Band e o rastreamento de stop loss para controlar efetivamente os riscos enquanto bloqueia os lucros da tendência.

Os trilhos superiores e inferiores da banda de Bollinger podem determinar claramente os avanços de preço. O método de negociação em faixas torna os resultados do PnL claros.

Análise de riscos

O maior risco da estratégia Bollinger Band é a reversão da tendência. Após o curto quando o preço quebra o trilho superior, o preço pode aparecer reversão em forma de V, levando a uma perda rápida.

A abertura de reversão pode perder oportunidades para a continuação da tendência.

Além disso, configurações de parâmetros inadequadas também podem amplificar os riscos. Len e Desvio precisam ser definidos com cuidado, caso contrário o risco de stop loss aumentaria.

Direcção de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Adicionar funcionalidade adaptativa de parâmetros. Len e Desvio podem ser ajustados dinamicamente de acordo com a volatilidade do mercado para tornar a Banda de Bollinger mais próxima do preço.

  2. Adicionar filtros de posição de abertura. Condições adicionais podem ser adicionadas, como aumentos de volume de negociação e aumento de transações comerciais para evitar ser retirado.

  3. Combine com outros indicadores sinais de filtro. Julgue a tendência da tendência usando indicadores como MACD e KDJ para evitar sinais errados ou sinais perdidos.

  4. Adicionar restrições de tempo. Apenas a negociação durante um determinado período de tempo pode reduzir os riscos overnight.

Resumo

A estratégia de rastreamento da banda de Bollinger determina os avanços de preços usando o indicador da banda de Bollinger. Ele bloqueia os lucros através da configuração de stop loss e take profit, e usa o rastreamento stop loss para ajustar riscos. A estratégia é simples e prática. Com base nas condições do mercado, a negociação de tendência ou reversão pode ser selecionada. Ao otimizar parâmetros e adicionar condições de filtro, os riscos podem ser reduzidos ainda mais para obter lucros mais constantes.


/*backtest
start: 2024-02-19 00:00:00
end: 2024-02-26 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="BB Strategy (Basic)",overlay=true, initial_capital=25000, default_qty_value=1, commission_type=strategy.commission.cash_per_contract, commission_value=3.02)
len = input(20, minval=1, title="Length")
src = input(close, title="Source")
mult = input(2.0, "Deviation", minval=0.001, maxval=50)
//price_drop = input(.003, "When price drops (In Ticks) Enter Long", step=.001)
//price_climb = input(.003, "When price climbs (In Ticks) Enter Short", step=.001)
trail = input(true, "Trailing Stop(checked), Market stop(unchecked)")
stop = input(10000, "Stop (in ticks)", step=5)
limit = input(20000, "Limit Out", step=5)
//size = input(1, "Limit Position Size (pyramiding)", minval=1)
revt = input(true, "Reversal Entry(checked, Trend Entry(unchecked)")
timec = input(false, "Limit Time of Day (Buying Side)")

//calculations and plots
revti = if revt==false
    true
basis = wma(src, len)
dev = mult * stdev(src, len)
upper = basis + dev
lower = basis - dev
plot(basis, color=red)
p1 = plot(upper, color=teal)
p2 = plot(lower, color=teal)
fill(p1, p2)
u = crossover(high, upper) 
d = crossunder(low, lower)
//Time Session
sess = input("1600-0500", "Start/Stop trades (Est time)")
t = time(timeframe.period, sess)

//Orders
if(timec)
    strategy.entry("Enterlong", long=revt, when=d and t>1)
else
    strategy.entry("Enterlong", long=revt, when=d)
if(trail)
    strategy.exit("Exit","Enterlong", profit=limit, trail_points = 0, trail_offset = stop )
else
    strategy.exit("Exit","Enterlong", profit=limit, loss = stop )
    
if(timec)
    strategy.entry("Entershort", long=revti, when=u and t>1)
else
    strategy.entry("Entershort", long=revti, when=u)
if(trail)
    strategy.exit("Exit","Entershort", profit=limit, trail_points = 0, trail_offset = stop )
else
    strategy.exit("Exit","Entershort", profit=limit, loss = stop )
  



Mais.