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.
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.
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.
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.
A estratégia pode ser otimizada nos seguintes aspectos:
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.
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.
Combine com outros indicadores
Adicionar restrições de tempo. Apenas a negociação durante um determinado período de tempo pode reduzir os riscos overnight.
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 )