
Visão geral
A estratégia baseia-se no indicador de Bollinger Bands, e a principal ideia é esperar que o preço volte para o interior da Bollinger Bands depois de quebrar a Bollinger Bands para entrar ou sair do trilho, e depois estabelecer uma posição na mesma direção que a quebra no ponto de retorno. A estratégia utiliza a característica de que o preço costuma reverter em regiões extremas para capturar os pontos de reversão do mercado através de uma combinação de condições de quebra e retorno da Bollinger Bands, com a intenção de obter uma maior taxa de vitória.
Princípio da estratégia
- Calcule a média, a média superior e a média inferior da faixa de Bryn. A média é a média móvel, a média superior e a média inferior são a média, somada e subtraída de uma certa diferença padrão.
- Determine se o preço quebrou a linha de alta ou baixa da faixa de Brin. Se o preço de fechamento ultrapassou a linha de alta, é considerado um salto para cima; se o preço de fechamento caiu na linha de baixa, é considerado um salto para baixo.
- Se ocorrer uma ruptura para cima, o preço mais alto da linha K de ruptura é registrado como o pico. Se ocorrer uma ruptura para baixo, o preço mais baixo da linha K de ruptura é registrado como o pico. O pico é usado posteriormente para determinar se o preço regressou.
- Depois de uma ruptura, espere que o preço volte para o interior da faixa de Brin. Se o preço de fechamento estiver entre o caminho superior e o caminho inferior, considere que o preço voltou.
- Na regressão do preço, se a linha K anterior for para cima, a ruptura é[1]and inside), a linha K abre uma linha múltipla; se a linha K anterior for uma ruptura para baixo (break_down)[1]E dentro), com a cabeça vazia.
- Gerenciamento de posições: se houver várias posições, o preço de fechamento cruza o meio da trajetória, então é igual; se houver uma posição vazia, o preço de fechamento cruza o meio da trajetória, então é igual.
Análise de vantagens
- O Brin possui uma grande capacidade de adaptação, sendo capaz de se adaptar dinamicamente às flutuações de preços, o que é útil para capturar tendências e oscilações.
- Em comparação com a simples estratégia de ruptura da faixa de Brin, o aumento das condições de retorno permite evitar, em certa medida, a perseguição de altos e baixos, aumentando a qualidade de entrada.
- As condições de equilíbrio baseiam-se na linha de referência, são simples e fáceis de usar, e podem proteger melhor os lucros.
- Os parâmetros de Brinbel podem ser personalizados, como comprimento, múltiplo de desvio, etc., com grande flexibilidade.
Análise de Riscos
- A escolha incorreta dos parâmetros da faixa de Bryn pode levar a entrada prematura ou tardia, afetando o desempenho da estratégia. Pode ser mitigado por parâmetros de otimização.
- A tendência para a abertura de posições frequentes pode ocorrer quando os preços se movem na zona de Brin, o que aumenta os custos de transação.
- Se a tendência for forte e o preço não retornar para o interior da faixa de Bryn por um longo período de tempo, poderá perder o lucro da tendência.
- O uso do indicador de faixa de Bryn por si só pode não funcionar para certas variedades ou em certas situações, e precisa ser combinado com outros sinais.
Direção de otimização
- Pode-se considerar a introdução de mais condições de filtragem, como o preço de operação acima da faixa de Brin por um período de tempo e depois romper mais confiável, ou MA ângulo, ADX e outros indicadores de determinação de tendência para auxiliar o julgamento.
- Para evitar a abertura de posições às cegas, pode-se aumentar a lista de limites e o cronômetro em caso de um tremor.
- O equilíbrio pode ser combinado com o ATR ou a linha média para controlar o tempo de partida.
- Optimização de parâmetros e análise de características de diferentes padrões e períodos, seleção de padrões e períodos de negociação adequados.
- Pode-se considerar a inclusão de gestão de posição, como aumentar a posição quando a taxa de flutuação se contrair, reduzir a posição quando a taxa de flutuação se aumentar.
Resumir
A estratégia de negociação de retorno de ruptura de Brin é uma estratégia de negociação quantitativa simples e prática. Utiliza a reação do preço a situações extremas, cria condições de abertura de posição através de ferramentas de Brin, consegue capturar até certo ponto os pontos de início e fim da tendência e controlar a frequência de negociação.
Código-fonte da 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")