
A estratégia de filtragem de breakouts e flutuações da faixa de Bollinger é uma estratégia de negociação baseada nos indicadores da faixa de Bollinger. Ela usa o Bollinger para determinar a posição e a volatilidade do preço em relação à média móvel, para decidir sobre a abertura e a suspensão de uma posição. Uma característica única da estratégia é que ela usa um filtro de flutuação para evitar a entrada de negociação em momentos de grande flutuação do mercado, detectando a queda e queda de linhas K contínuas.
O núcleo da estratégia é o cálculo do indicador das faixas de Bollinger. As faixas de Bollinger são compostas por três linhas: a média central é a média móvel simples, e as faixas superiores e inferiores adicionam e subtraem um determinado diferencial padrão com base na média central. O tamanho do diferencial padrão é controlado pelo parâmetro mult.
A estratégia de abertura de posição é baseada na posição do preço de fechamento em relação à faixa de Bollinger. Se a direção de negociação for definida como alta (tradeDirection> = 0), e o preço de fechamento cair abaixo da trajectória por uma certa proporção (lower_breakout_pct), a abertura de posição é maior; Se a direção de negociação for definida como baixa (tradeDirection< = 0), e o preço de fechamento romper a trajetória por uma certa proporção (upper_breakout_pct), a abertura de posição é menor.
Por outro lado, se os acréscimos e quedas de duas linhas K consecutivas ultrapassarem o limiar de volatilidade esperado (Volatility), a estratégia não abrirá uma nova posição, considerando que o mercado atual é muito flutuante. Este filtro de volatilidade pode evitar, em certa medida, um ambiente de mercado muito flutuante.
No que diz respeito à posição horizontal, se o preço de fechamento de uma posição multi-cabeça tocar na área superior*long_win_pct), ou o preço de fechamento de uma posição em aberto tocou perto da trajectória inferior*short_win_pct), a estratégia liquida a posição correspondente com lucro. Além disso, se a perda flutuante da posição for superior à taxa de retirada máxima prevista (max_drawdown_percent), a estratégia também liquida a posição.
O Bollinger Band é um indicador técnico bem desenvolvido e amplamente utilizado, que combina informações sobre as médias móveis e a volatilidade dos preços. Usando o Bollinger Band para criar estratégias de negociação, pode-se capturar as mudanças de tendências e flutuações.
A estratégia contém a lógica de abrir e fechar simultaneamente, permitindo a flexibilidade de aproveitamento de oportunidades em mercados binários em aberto. A configuração do ponto de ruptura da faixa de Bollinger faz com que o ponto de entrada da estratégia seja mais confirmatório.
O filtro de volatilidade evita a abertura de posições em mercados altamente voláteis, reduzindo, em certa medida, o risco de negociação frequente e de alavancagem.
A estratégia usa um mecanismo de stop loss e stop loss para controlar ativamente as posições, eliminando as posições quando o preço retrocede para a posição crítica. Isso ajuda a proteger os lucros e controlar a retração.
As Bollinger Bands são, em essência, um indicador de atraso, com um certo atraso na reação do mercado. No momento crítico de uma mudança de tendência ou mudança de rumo, a estratégia pode perder o melhor momento de entrada.
A configuração de parâmetros da estratégia não se aplica necessariamente a diferentes condições de mercado. Por exemplo, a configuração do limiar do filtro de taxa de flutuação pode exigir uma diferença em situações de tendência e de choque. Os parâmetros fixos podem causar a impossibilidade de abrir posições ou abrir posições com muita frequência em certas situações.
Embora existam medidas de parada de perdas, quando o mercado apresenta brechas de salto, a estratégia pode não ser executada ao preço predeterminado, resultando em maiores perdas.
A estratégia não estabelece um stop-loss móvel ou um stop-loss de acompanhamento após a abertura da posição, o que pode levar a um retorno parcial dos lucros.
Pode-se considerar a introdução de mais indicadores técnicos ou de avaliação do estado do mercado, como ATR, indicadores de tendência, indicadores de volatilidade, etc., como condições de filtragem da estratégia, para melhorar a qualidade e a capacidade de tempo de abrir posições.
Para os filtros de taxa de flutuação, pode-se tentar o uso de valores de limiar dinâmicos, que se adaptam de acordo com diferentes variedades ou diferentes períodos de tempo, para melhorar a eficácia da filtragem.
No que diz respeito ao stop loss, pode-se introduzir um mecanismo de stop loss móvel ou de rastreamento de stop loss, para que a estratégia mantenha a posição quando a tendência continua, em vez de liquidar prematuramente. Além disso, pode-se considerar a configuração de diferentes proporções de stop loss para otimizar a relação risco-receita.
A gestão de posições pode ser ainda mais otimizada, ajustando a taxa de abertura de posição de acordo com a intensidade da tendência, a volatilidade e a dinâmica dos indicadores de risco, controlando a retirada. Além disso, também é possível usar melhor o capital através de operações como ativos e perdas.
A estratégia de filtragem de ruptura e volatilidade da faixa de Bollinger usa o desenho da faixa de Bollinger sobre a posição e a volatilidade dos preços para construir uma estratégia de negociação bidirecional. A singularidade da estratégia é que o filtro de volatilidade evita a negociação em mercados altamente flutuantes e, ao mesmo tempo, configura condições de parada e perda mais simples.
/*backtest
start: 2024-02-29 00:00:00
end: 2024-03-07 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("[Oppen Chow] Super BBS 1.0", default_qty_type = strategy.percent_of_equity, default_qty_value =100, initial_capital=500, commission_type=strategy.commission.percent, commission_value=0.08, pyramiding=2 )
// Input parameters
length = 20
mult = 2
max_drawdown_percent = input(5.5, "Maximum Acceptable Drawdown") / 100
upper_breakout_pct = input(50, "Short Entry Breakout Percentage") / 100
lower_breakout_pct = input(25, "Long Entry Breakout Percentage") / 100
tradeDirection = input(1, title="Trade Direction")
Volatility = input(0.5, title="Volatility") / 100
long_win_pct = input(-0.15, title = "Long Settlement Rate Near Boll Upper Limit")
short_win_pct = input(0.4, title = "Short Settlement Rate Near Boll Lower Limit")
// Bollinger Bands calculation
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev
area = upper - lower
// Calculate the rate of change for two consecutive candlesticks
var float change1 = na
var float change2 = na
change1 := change2
change2 := ((close - open) / open)
// Check for two or more consecutive candlesticks with a change rate greater than 0.5%
var bool highVolatility = false
highVolatility := change2 > Volatility
// Trading logic
var float highestPriceSinceOpen = na
var float lowestPriceSinceOpen = na
var int profitableDrawbackCount = 1
// Entry logic - In the absence of high volatility
if not highVolatility and strategy.position_size == 0
if (tradeDirection >= 0) and (close < lower - area * lower_breakout_pct)
strategy.entry("Long", strategy.long)
highestPriceSinceOpen := close
profitableDrawbackCount := 0
if (tradeDirection <= 0) and (close > upper + area * upper_breakout_pct)
strategy.entry("Short", strategy.short)
lowestPriceSinceOpen := close
profitableDrawbackCount := 0
if strategy.position_size > 0 and close > upper - area * long_win_pct
strategy.close("Long", comment = "Take Profit")
if strategy.position_size < 0 and close < lower + area * short_win_pct
strategy.close("Short", comment = "Take Profit")
// Stop loss logic - Based on drawdown percentage
if strategy.position_size > 0
if (strategy.position_avg_price - close)/strategy.position_avg_price >= max_drawdown_percent
strategy.close("Long", comment = "Drawdown Stop Loss")
else if strategy.position_size < 0
if (close - strategy.position_avg_price)/strategy.position_avg_price >= max_drawdown_percent
strategy.close("Short", comment = "Drawdown Stop Loss")