O recurso está a ser carregado... Carregamento...

Bollinger Breakout com reversão média 4H Estratégia de negociação quantitativa

Autora:ChaoZhang, Data: 2024-12-12 11:24:28
Tags:BANCO DE BANCOSMAS.D.TPSL

img

Resumo

Esta estratégia é um sistema de negociação quantitativo de 4 horas baseado em Bandas de Bollinger, combinando os conceitos de negociação de breakout de tendência e reversão média. A estratégia capta o impulso do mercado através de breakouts de Bandas de Bollinger, enquanto usa a reversão da média de preço para obter lucro e implementa stop-loss para controle de risco.

Princípios de estratégia

A lógica central baseia-se nos seguintes elementos-chave:

  1. Utiliza a média móvel de 20 períodos como faixa média, com 2 desvios-padrão para o intervalo de volatilidade
  2. Sinais de entrada: Longos quando o corpo da vela (média de abertura e fechamento) se rompe acima da faixa superior, curtos quando se rompe abaixo da faixa inferior
  3. Sinais de saída: fechar posições longas quando duas velas consecutivas têm preços de abertura e fechamento abaixo da faixa superior e fechar abaixo da abertura; lógica inversa para posições curtas
  4. Controlo de risco: define o stop-loss nos pontos altos/baixos da vela atual para garantir perdas controladas por transação

Vantagens da estratégia

  1. Lógicas de negociação claras: combina abordagens de negociação de tendência e reversão para um bom desempenho em várias condições de mercado
  2. Controlo abrangente do risco: implementa um stop-loss dinâmico baseado na volatilidade da vela para um controlo eficaz da retirada
  3. Filtragem de sinal falso: confirma breakouts usando a posição do corpo da vela em vez de apenas o preço de fechamento para reduzir perdas de breakout falso
  4. Gestão de fundos sólida: ajusta dinamicamente o tamanho da posição com base no património líquido da conta, nos retornos de equilíbrio e no risco

Riscos estratégicos

  1. Risco de mercado lateral: pode desencadear sinais de ruptura falsos frequentes em mercados variados, levando a paradas consecutivas
  2. Risco de alavancagem: a alavancagem 3x pode causar perdas significativas durante a volatilidade extrema
  3. Risco de definição de stop-loss: a utilização de pontos altos/baixos da vela para paradas pode ser demasiado frouxa, aumentando as perdas por transação
  4. Dependência do prazo: o prazo de 4 horas pode reagir demasiado lentamente em determinadas condições de mercado, perdendo oportunidades

Orientações para a otimização da estratégia

  1. Implementar filtro de tendência: adicionar indicadores de tendência de longo prazo ao comércio na direção da tendência primária
  2. Otimizar a abordagem de stop-loss: considerar a utilização de ATR ou largura de banda de Bollinger para distâncias dinâmicas de stop-loss
  3. Melhorar a gestão de posições: ajustar dinamicamente a alavancagem com base na volatilidade ou na força da tendência
  4. Adicionar análise das condições de mercado: Incorporar indicadores de volume ou volatilidade para identificar os estados de mercado para a entrada seletiva

Resumo

Esta estratégia combina as características de Bollinger Bands de tendência e inversão da média, alcançando retornos estáveis em mercados de tendência e variáveis através de condições de entrada/saída rígidas e medidas de controle de risco.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger 4H Follow", overlay=true, initial_capital=300, commission_type=strategy.commission.percent, commission_value=0.04)
// StartYear = input(2022,"Backtest Start Year") 
// StartMonth = input(1,"Backtest Start Month") 
// StartDay = input(1,"Backtest Start Day")

// testStart = timestamp(StartYear,StartMonth,StartDay,0,0)

// EndYear = input(2023,"Backtest End Year")
// EndMonth = input(12,"Backtest End Month")
// EndDay = input(31,"Backtest End Day")

// testEnd = timestamp(EndYear,EndMonth,EndDay,0,0)

lev = 3

// Input parameters
length = input.int(20, title="Bollinger Band Length")
mult = input.float(2.0, title="Bollinger Band Multiplier")

// Bollinger Bands calculation
basis = ta.sma(close, length)
upperBand = basis + mult * ta.stdev(close, length)
lowerBand = basis - mult * ta.stdev(close, length)

// Conditions for Open Long
openLongCondition = strategy.position_size == 0 and close > open and (close + open) / 2 > upperBand

// Conditions for Open Short
openShortCondition = strategy.position_size == 0 and close < open and (close + open) / 2 < lowerBand

// Conditions for Close Long
closeLongCondition = strategy.position_size > 0 and strategy.position_size > 0 and (close < upperBand and open < upperBand and close < open)

// Conditions for Close Short
closeShortCondition = strategy.position_size < 0 and strategy.position_size < 0 and (close > lowerBand and open > lowerBand and close > open)


// Long entry
if openLongCondition
    strategy.entry("Long", strategy.long, qty=strategy.equity * lev / close)
    strategy.exit("Long SL", from_entry="Long", stop=low)  // Set Stop-Loss

// Short entry
if openShortCondition
    strategy.entry("Short", strategy.short, qty=strategy.equity * lev / close)
    strategy.exit("Short SL", from_entry="Short", stop=high)  // Set Stop-Loss

// Long exit
if closeLongCondition
    strategy.close("Long", comment = "TP")

// Short exit
if closeShortCondition
    strategy.close("Short", comment = "TP")

// Plot Bollinger Bands
plot(upperBand, color=color.yellow, title="Upper Band")
plot(lowerBand, color=color.yellow, title="Lower Band")

Relacionados

Mais.