- Quadrado
- Estratégia de negociação de reentrada de breakout Bollinger Bands
Estratégia de negociação de reentrada de breakout Bollinger Bands
Autora:
ChaoZhang, Data: 2024-03-08 14:08:53
Tags:
Resumo
Esta estratégia é baseada no indicador Bollinger Bands. A ideia principal é esperar que o preço entre novamente nas Bollinger Bands depois de sair da faixa superior ou inferior, e depois estabelecer uma posição na mesma direção que a quebra no ponto de reentrada. A estratégia aproveita a característica de que os preços geralmente se invertem quando estão em áreas extremas. Combinando as condições da quebra e reentrada da Bollinger Band, visa capturar pontos de virada do mercado e alcançar uma taxa de vitória maior.
Princípios de estratégia
- Calcule as bandas média, superior e inferior das Bandas de Bollinger. A banda do meio é a média móvel, e as bandas superior e inferior são a banda do meio mais ou menos um certo número de desvios padrão.
- Determine se o preço rompe a faixa superior ou inferior de Bollinger. Se o preço de fechamento exceder a faixa superior, é considerado uma quebra ascendente; se o preço de fechamento cair abaixo da faixa inferior, é considerado uma quebra descendente.
- Se ocorrer uma ruptura ascendente, registre o preço mais alto dessa vela de ruptura como o pico. Se ocorrer uma ruptura descendente, registre o preço mais baixo dessa vela de ruptura como o pico.
- Se o preço de fechamento estiver entre as faixas superior e inferior neste momento, o preço é considerado ter entrado novamente.
- Quando o preço voltar a entrar, se a vela anterior foi uma ruptura ascendente (break_up [1] e dentro), vá longo; se a vela anterior foi uma ruptura descendente (break_down [1] e dentro), vá curto.
- Gerenciamento de posições: se estiver numa posição longa e o preço de encerramento ultrapassar a faixa média, fechar a posição longa; se estiver numa posição curta e o preço de encerramento ultrapassar a faixa média, fechar a posição curta.
Análise das vantagens
- As bandas de Bollinger têm uma forte adaptabilidade e podem ajustar-se dinamicamente de acordo com as flutuações de preços, o que é útil para capturar tendências e volatilidade.
- Em comparação com uma estratégia simples de ruptura de Bollinger Band, a adição da condição de reentrada pode evitar, até certo ponto, a perseguição de máximos e a venda de mínimos e melhorar a qualidade da entrada.
- A condição de saída utiliza a faixa média como referência, que é simples e fácil de usar e pode proteger os lucros relativamente bem.
- Os parâmetros das Bandas de Bollinger, tais como o multiplicador de comprimento e desvio, podem ser personalizados, proporcionando uma elevada flexibilidade.
Análise de riscos
- A selecção inadequada dos parâmetros da Banda de Bollinger pode levar a entradas prematuras ou tardias, afetando o desempenho da estratégia.
- Quando o preço oscila perto das Bandas de Bollinger, podem ocorrer aberturas e encerramentos frequentes de posições, resultando em custos de transação aumentados.
- Se a tendência for muito forte e o preço não voltar a entrar nas Bandas de Bollinger por um longo tempo, os lucros da tendência podem ser perdidos.
- A utilização do indicador Bollinger Band sozinho pode não ser eficaz para alguns instrumentos ou condições de mercado, podendo ser necessário utilizá-lo em conjunto com outros sinais.
Orientações de otimização
- Considere a introdução de mais condições de filtragem. Por exemplo, um breakout pode ser mais confiável se o preço estiver correndo acima das Bandas de Bollinger por um período de tempo, ou usar indicadores de determinação de tendência, como ângulo MA e ADX para assistência.
- Para os mercados oscilantes, podem ser adicionadas ordens limitadas e cronogramas para evitar entradas às cegas.
- Para as saídas, a ATR ou as médias móveis podem ser combinadas para controlar o calendário de saída.
- Realizar a otimização de parâmetros e a análise das características para diferentes ativos e prazos subjacentes, a fim de selecionar objetivos e prazos de negociação adequados.
- Considerar a possibilidade de acrescentar a gestão de posições, como aumentar o tamanho da posição quando a volatilidade se contrair e reduzir o tamanho da posição quando a volatilidade se expandir.
Resumo
A Estratégia de Negociação de Reentrada de Breakout de Bandas de Bollinger é uma estratégia quantitativa de negociação simples e prática. Utiliza a reação dos preços a situações extremas e constrói condições de entrada e saída através da ferramenta de Bandas de Bollinger, que pode capturar pontos de início e fim da tendência até certo ponto e controlar a negociação frequente. Ao mesmo tempo, essa estratégia também tem problemas como seleção de parâmetros, baixo desempenho em mercados oscilantes e captura de tendência insuficiente. Através da otimização de detalhes e combinação com outros sinais, espera-se melhorar ainda mais a adaptabilidade e robustez desta estratégia.
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-27 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(shorttitle="BB", title="Bollinger Bands", overlay=true)
length = input.int(20, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(1.7, minval=0.001, maxval=50, title="StdDev")
ma(source, length, _type) =>
switch _type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))
break_up = close > upper
break_down = close < lower
inside = close > lower and close < upper
sell_condition = break_up[1] and inside
buy_condition = break_down[1] and inside
// Conditions to close trades
close_sell_condition = close > basis
close_buy_condition = close < basis
trade_condition = sell_condition or buy_condition
// Tracking the high of the breakout candle
var float peak = na
if (not trade_condition)
peak := close
if (break_up and peak < high)
peak := high
if (break_down and peak > low)
peak := low
// Entering positions
if (buy_condition)
strategy.entry("Buy", strategy.long)
if (sell_condition)
strategy.entry("Sell", strategy.short)
// Exiting positions when close crosses the basis
if (strategy.position_size > 0 and close_sell_condition) // If in a long position and close crosses above basis
strategy.close("Buy")
if (strategy.position_size < 0 and close_buy_condition) // If in a short position and close crosses below basis
strategy.close("Sell")
Mais.