Estratégia de Engolfo de Alta Sistema de Negociação Quantitativa para Gerenciamento de Risco de Bandas de Bollinger

BB SMA
Data de criação: 2025-02-25 10:57:40 última modificação: 2025-02-25 10:57:40
cópia: 0 Cliques: 430
2
focar em
319
Seguidores

Estratégia de Engolfo de Alta Sistema de Negociação Quantitativa para Gerenciamento de Risco de Bandas de Bollinger Estratégia de Engolfo de Alta Sistema de Negociação Quantitativa para Gerenciamento de Risco de Bandas de Bollinger

Visão geral

Esta estratégia é um sistema de negociação quantitativa baseado em análise técnica, que utiliza principalmente a absorção de bullish como sinal de entrada e combina com o indicador de volatilidade da faixa de Brin para gerenciamento de risco e controle de posição. Após identificar a absorção de bullish, a estratégia determina o índice de risco ® baseado no intervalo de flutuação calculado pela faixa de Brin, e calcula o tamanho exato da posição com base na proporção fixa do valor total da conta ® (0,75%), e, finalmente, gerencia a negociação, definindo um objetivo de ganho de stop loss e um índice de retorno de risco fixo (4R).

Princípio da estratégia

A lógica central desta estratégia é dividida em três partes principais: geração de sinais, gerenciamento de posições e condições de saída.

Em primeiro lugar, a geração de sinais é baseada em um padrão de absorção de luz, que deve satisfazer as seguintes condições:

  1. O preço de fechamento atual da linha K é mais alto do que o preço de abertura (linha solar)
  2. O preço de fechamento da linha K anterior é menor do que o preço de abertura (linha negativa)
  3. O preço de fechamento atual da linha K é maior do que o preço de abertura da linha K anterior
  4. O preço de abertura da linha K atual é inferior ao preço de fechamento da linha K anterior
  5. O volume de transação deve ser maior do que o valor mínimo definido (o padrão é 1.000.000)

Em segundo lugar, o gerenciamento de posições é realizado através das seguintes etapas:

  1. Computação de ascensão e descensão com 40 ciclos e 2,5 padrões de diferença de banda de Brin
  2. R = 0,4 * (1 - (carril de baixo / carril de cima))
  3. Usando 0,75% do total do portfólio como o montante de risco por transação
  4. O tamanho exato da posição é calculado com base na distância de parada (valor R) e no preço de entrada

Por fim, as condições de saída são:

  1. Stop Loss: Sair quando o preço de entrada diminui R%
  2. Lucro: Sair quando o preço sobe para o preço de entrada mais 4R%

Vantagens estratégicas

  1. Controle de risco é preciso e dinâmico: a estratégia não usa um ponto de parada fixo, mas ajusta dinamicamente os parâmetros de risco de acordo com a volatilidade atual do mercado (computação via Brinks) para que o sistema possa se adaptar a diferentes condições de mercado.

  2. Gerenciamento de risco de proporção fixa: apenas 0,75% da conta de risco de cada transação. É eficaz na prevenção de perdas excessivas em transações individuais e na estabilidade da gestão de fundos a longo prazo.

  3. Cálculo de posição preciso: o tamanho da posição de cada transação é calculado com precisão com base na volatilidade da faixa de Brin e na quantidade de risco, garantindo a manutenção de uma exposição ao risco consistente em diferentes condições de mercado.

  4. Risco-retorno definido: fixação de objetivos de lucro usando os 4Rs, garantindo que o retorno potencial de cada transação seja 4 vezes o risco potencial, de acordo com os requisitos de retorno de risco de negociação profissional.

  5. Visualização de transações: ajuda os comerciantes a entender intuitivamente o desempenho das transações, marcando os sinais de entrada e traçando quadros de intervalos de negociação.

Risco estratégico

  1. Risco de tempo de eficácia: O padrão de absorção de borracha é um sinal de reversão de preços de curto prazo, que pode não prever mudanças de tendência de médio e longo prazo, podendo levar a uma entrada prematura em mercados de forte tendência.

  2. Restrições de condições de mercado: a estratégia pode não funcionar bem em mercados de alta volatilidade ou falta de liquidez, especialmente quando o BRI expande ou contrai anormalmente.

  3. Condições de entrada limitadas: A dependência de um único modelo de absorção de espectador pode causar sinais escassos ou perder outras oportunidades de entrada válidas.

  4. Risco de multiplicador fixo: o uso de um fator fixo de 0,4 para calcular o valor de R pode não ser suficientemente flexível em certas condições de mercado e não ser adequadamente adaptado a um ambiente de mercado extremo.

  5. Problemas de potencial deslizamento: Em mercados de alta volatilidade, o preço de execução de stop loss pode ter um deslizamento significativo, afetando o efeito de controle de risco real.

Direção de otimização da estratégia

  1. Adicionar condições de filtragem: pode-se considerar a adição de indicadores de confirmação de tendência (como a média móvel), garantindo que apenas se negocia na direção da tendência principal, evitando a forma de absorção de pessimistas.

  2. Análise de múltiplos prazos: introdução de análise de estrutura de mercado em prazos mais elevados, executando negociações somente quando a tendência dos prazos mais elevados é consistente, aumentando a qualidade do sinal.

  3. Parâmetros de risco de ajuste dinâmico: define um índice de risco fixo de 0,75% e um fator de R de 0,4 como parâmetros ajustáveis, ajustando-se automaticamente de acordo com a volatilidade do mercado, aumentando o risco em mercados de baixa volatilidade e reduzindo o risco em mercados de alta volatilidade.

  4. Otimização da estratégia de saída: pode-se considerar a adição de stop loss móvel ou condições de saída dinâmicas baseadas em indicadores, em vez de depender apenas de níveis fixos de stop loss e ganho.

  5. Aumentar a confirmação de vários indicadores: a combinação do padrão de absorção de pessimistas com outros indicadores técnicos (como RSI, MACD ou análise de volume de transação) aumenta a confiabilidade do sinal de entrada.

Resumir

O sistema de negociação de negociação de quantificação de estratégia de absorção de leitores com gerenciamento de risco de Brin é um sistema de negociação completo que combina a identificação de padrões de gráficos de curvatura tradicionais com métodos modernos de gerenciamento de risco. A estratégia ajusta os parâmetros de risco de forma dinâmica com o Brin, controla o tamanho da posição de cada transação com precisão e define um objetivo de lucro usando uma taxa de retorno de risco fixa. Esta abordagem, ao mesmo tempo em que mantém a disciplina de negociação, também oferece adaptabilidade à volatilidade do mercado.

Embora a estratégia tenha apresentado um excelente desempenho em termos de gerenciamento de riscos, ainda há espaço para otimização, especialmente em termos de qualidade dos sinais de entrada e flexibilidade da estratégia de saída. A estratégia pode melhorar ainda mais a adaptabilidade e a lucratividade em diferentes cenários de mercado, adicionando condições de filtragem adicionais, análise de múltiplos quadros temporais e ajuste de parâmetros de risco dinâmico.

Em suma, é um sistema de negociação completo com características de gerenciamento de risco profissional, adequado para os comerciantes que dão importância à gestão de fundos e controle de risco. Com otimização razoável e ajuste de parâmetros, a estratégia pode ser uma ferramenta de negociação estável a longo prazo.

Código-fonte da estratégia
/*backtest
start: 2024-02-26 00:00:00
end: 2025-02-23 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

//@version=5
strategy("Bullish Engulfing Strategy with BB Risk", overlay=true)

// Input parameters for customization (optional, can be adjusted in Strategy Tester)
minVolume = input.int(1000000, "Minimum Volume", minval=1)  // Optional filter for liquidity

// Calculate Bollinger Bands (length=40, StdDev=2.5) for R
length = 40
mult = 2.5
basis = ta.sma(close, length)  // Middle Band (40-period SMA of close)
dev = mult * ta.stdev(close, length)  // Standard deviation multiplied by 2.5
upperBB = basis + dev  // Upper Bollinger Band
lowerBB = basis - dev  // Lower Bollinger Band

// Define R as 0.4 times the Bollinger Bands spread: R = 0.4 * ((1 - (lowerBB / upperBB)) * 100)
R = 0.4 * (1 - (lowerBB / upperBB))  // Percentage value, scaled by 0.4

// Define Bullish Engulfing pattern with optional volume filter
isBullishEngulfing() => close > open and close[1] < open[1] and close > open[1] and open < close[1] and close[1] < open[1] and close > open and volume > minVolume

bullishEngulfing = isBullishEngulfing()

// Track position and entry details
var bool inPosition = false
var float entryPrice = 0.0
var int entryBar = 0
var int exitBar = 0  // Track exit bar (added here to fix undeclared variable)
var float exitPrice = 0.0  // Track exit price

// Enter long position on the next bar after Bullish Engulfing, with position size risking 0.75% of portfolio
if (bullishEngulfing and not inPosition)
    // Calculate position size to risk 0.75% of portfolio
    portfolioValue = strategy.equity  // Current portfolio equity
    riskPerTrade = portfolioValue * 0.0075  // 0.75% of portfolio
    stopLossDistance = R  // R% of entry price (stop-loss distance)
    entryPrice := close
    positionSize = riskPerTrade / stopLossDistance / entryPrice  // Position size in units (contracts/shares)
    
    // Ensure positionSize is rounded to a practical number (e.g., whole shares)
    positionSize := math.round(positionSize)
    
    // Enter long position with calculated size
    strategy.entry("Long", strategy.long, limit = entryPrice, qty=positionSize)
    inPosition := true
    entryBar := bar_index

// Exit logic: Stop-loss or Take-profit
if (inPosition)
    // Stop-loss: Exit if price drops below entryPrice - R%
    stopLossLevel = entryPrice * (1 - R)
    if (low <= stopLossLevel)
        strategy.close("Long")
        inPosition := false
        exitBar := bar_index
        exitPrice := close
    
    // Take-profit: Exit if price rises above entryPrice + 4R%
    takeProfitLevel = entryPrice * (1 + 4 * R)
    if (high >= takeProfitLevel)
        strategy.close("Long")
        inPosition := false
        exitBar := bar_index
        exitPrice := close

// Optional: Plot signals and R for visualization
if (bullishEngulfing)
    label.new(bar_index, high, "Bullish Engulfing", yloc=yloc.abovebar, color=color.green, style=label.style_label_down, textcolor=color.white)

plot(R, title="R (BB Spread %)", color=color.blue, style=plot.style_histogram)