Estratégia de Negociação de Bandas de Desvio VWAP e Filtro de Volatilidade

VWAP ATR 偏差带 波动性过滤
Data de criação: 2025-04-07 11:57:02 última modificação: 2025-04-07 11:57:10
cópia: 0 Cliques: 510
2
focar em
319
Seguidores

Estratégia de Negociação de Bandas de Desvio VWAP e Filtro de Volatilidade Estratégia de Negociação de Bandas de Desvio VWAP e Filtro de Volatilidade

Visão geral

A estratégia de negociação VWAP de bandas de desvio com filtragem de volatilidade é um sistema de negociação diária baseado na média ponderada de volume de transação (VWAP) e no canal de desvio padrão. A estratégia usa o VWAP como ponto central de referência para os preços, combina a forma de reversão H1/H2 e L1/L2 de Al Brooks e filtra o ambiente de baixa volatilidade através do filtro de volatilidade ATR, formando uma estrutura de decisão de negociação estruturada.

Princípio da estratégia

A estratégia baseia-se nos seguintes componentes:

  1. Calculação do VWAP para cada dia de transação: Refazer o cálculo do VWAP no início de cada dia de negociação, garantindo que os pontos de referência de preços estejam intimamente relacionados com a atividade de negociação do dia. A estratégia usa a diferença padrão para criar uma faixa de flutuação acima e abaixo do VWAP, definida por padrão como 2 vezes a diferença padrão.

  2. Entradas de sinal de disparo

    • H1/H2): quando o preço abre abaixo da faixa de desvio de 2x menor que o desvio padrão, mas fecha acima desta faixa de desvio, com a mesma intensidade suficiente.
    • Entradas em branco ((L1/L2)): quando o preço de abertura é superior a 2 vezes a banda de desvio padrão superior, mas o fechamento é inferior a essa banda de desvio, e ao mesmo tempo tem a intensidade de branco suficiente.
  3. Filtro de flutuação

    • ATR 14 para medir a volatilidade do mercado
    • Salte o sinal de negociação quando o intervalo de desvio padrão é muito pequeno (< 3x ATR) para evitar entradas erradas em ambientes de baixa volatilidade
  4. Configurações de parada

    • Multi-cabeça: ponto baixo do poste de sinalização menos a zona de amortecimento
    • Cabeça vazia: Ponto alto do poste de sinalização mais uma zona de amortecimento
  5. Estratégias para ganhar dinheiro

    • Diferentes logicas de saída podem ser configuradas independentemente para a direção multi-espaço
    • As opções incluem: regressar ao VWAP, atingir um objetivo de banda de desvio específico ou desativar o ganho automático
  6. Mecanismo de saída segura

    • Ativar a saída de segurança quando um número predeterminado de colunas invertidas aparecem em sequência
    • Multi-cabeças: X pilares consecutivos
    • Cabeça vazia: X colunas solares em seqüência

A estratégia implementa um conjunto completo de mecanismos de cálculo de intensidade de sinal, avaliando a qualidade de cada sinal, calculando a posição relativa do preço de fechamento na faixa de pontos altos e baixos. O sinal de entrada só é considerado válido quando a intensidade do sinal atinge o mínimo de limiar (default 0.7).

Vantagens estratégicas

Depois de analisar o código em profundidade, a estratégia tem as seguintes vantagens significativas:

  1. Entrada baseada na estrutura do mercadoA estratégia não é simplesmente seguir a oscilação dos preços, mas sim procurar uma reversão específica dos preços perto da zona de desvio, o que significa que a negociação é feita seguindo a vantagem estatística de um regresso ao valor médio.

  2. Mecanismo de filtragem múltiplaFiltragem de sinais de negociação em vários níveis através de filtros de volatilidade, exigências de intensidade de sinal e configurações de preços específicas, reduzindo significativamente os sinais de erro.

  3. Gestão de Riscos FlexívelA estratégia oferece uma variedade de ferramentas de controle de risco, incluindo um stop loss apertado baseado em um pilar de sinais, um objetivo de lucro ajustável e um mecanismo de saída segura, permitindo que os comerciantes ajusten os parâmetros de risco de acordo com diferentes condições de mercado.

  4. Configuração multi-espaço independenteA estratégia permite que os traders configurarem independentemente as condições de entrada e saída de negociações multihead e no headless, o que é muito valioso para otimizar o desempenho em mercados com preferência direcional.

  5. Auxílio visualA estratégia inclui opções de visualização abundantes, como VWAP, Display de Banda de Desvios e Alto brilho em Áreas de Baixa Volatilidade, para ajudar os comerciantes a entender melhor o estado do mercado e os sinais potenciais.

  6. Sessão marcada para VWAP: O VWAP é recalculado a cada dia de negociação, garantindo que os pontos de referência de preços estejam sempre relacionados com a atividade atual do mercado, evitando o problema de usar pontos de referência desatualizados.

  7. Enfatizando a qualidade do sinalA estratégia foca em sinais de inversão de alta qualidade, não apenas em cruzamentos mecânicos de preços com bandas de desvio, através da computação da intensidade do sinal.

Risco estratégico

Apesar da estratégia ser bem concebida, existem os seguintes riscos potenciais:

  1. Risco de reversão no mercado de tendênciasComo uma estratégia baseada em regressão de média, pode frequentemente desencadear sinais de contra-corrente em mercados de forte tendência, resultando em interrupções contínuas. Método de Solução: Em ambientes de forte tendência, pode desativar a negociação na direção contrária ou aumentar as condições de filtragem.

  2. Sensibilidade do parâmetroO desempenho da estratégia é altamente dependente de vários parâmetros-chave, como o múltiplo da diferença padrão, o tamanho do stop loss e o limiar de intensidade do sinal. O método de solução: realizar uma otimização completa dos parâmetros e análise de sensibilidade para encontrar um conjunto de parâmetros robusto em diferentes condições de mercado.

  3. Falta de tempo para filtrarA estratégia não leva em consideração as características do período de negociação, podendo gerar sinais enganosos em períodos de alta volatilidade, como aberturas e fechamentos de mercados. Solução: Adicionar filtros de tempo para evitar negociações em períodos de mercado específicos.

  4. Risco de perda fixaO método de solução: Considere o uso de stop loss dinâmico baseado no ATR para adaptar o stop loss à volatilidade do mercado atual.

  5. Falta de filtragem de volumeEstratégia: Apesar de usar o VWAP, não há filtragem direta de ambientes de baixo volume de transações, o que pode levar a sinais não confiáveis em situações de falta de liquidez. Solução: Adicionar condições de depreciação de volume de transações para garantir que as transações sejam feitas apenas em ambientes de liquidez suficiente.

  6. A questão do tempo para uma saída seguraA solução: Considere um mecanismo de saída de segurança dinâmico, combinando a amplitude de flutuação dos preços com a quantidade de colunas.

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

Com base na análise do código, as seguintes são as possíveis direções de otimização:

  1. Diferenças dinâmicas multiplicadasA estratégia atual usa um padrão de diferença de 2x fixo como condição de entrada. Pode-se considerar o ajuste deste padrão de acordo com a dinâmica de volatilidade do mercado, usando um padrão maior em mercados de alta volatilidade e um padrão menor em mercados de baixa volatilidade, para se adaptar a diferentes condições de mercado.

  2. Adicionando um filtro de tempoFiltragem de transações em períodos específicos, evitando períodos de volatilidade como aberturas, fechamentos e horários de almoço, ou concentrando-se em períodos de negociação eficientes.

  3. Análise de estrutura de mercado integradaA análise de tendências em quadros de tempo mais elevados é adotada para negociar apenas em direções que coincidem com tendências maiores ou para usar condições de filtragem mais rigorosas em sinais de contra-trend.

  4. Otimizar o mecanismo de saída seguraA saída segura atual é baseada em um número fixo de colunas invertidas. Pode ser considerada em combinação com a amplitude do movimento do preço, como quando a retirada do preço excede a porcentagem específica do movimento mais vantajoso após a entrada.

  5. Confirmação de volume de transaçãoA introdução de condições de confirmação de volume de transação no momento da formação de um sinal de entrada, assegurando que o sinal seja acompanhado de uma participação de mercado suficiente para aumentar a confiabilidade do sinal.

  6. Implementação de gestão de stop loss dinâmicaO sistema de paradas de pontos fixos pode ser substituído por paradas dinâmicas baseadas em ATR, ou pode ser implementado com paradas móveis para proteger os lucros já obtidos.

  7. Adicionar filtro de lucro-perdaA taxa de meta potencial para o stop loss é calculada antes da entrada e só é executada em operações com um lucro ou perda suficiente.

  8. Integração de efeitos sazonais e de calendário: Analisar e aproveitar os padrões sazonais e os efeitos do calendário de um determinado mercado, aumentando a transação em períodos estatisticamente mais favoráveis ou reduzindo a transação em períodos desfavoráveis.

Essas otimizações podem melhorar a robustez e a rentabilidade das estratégias, especialmente a adaptabilidade em diferentes cenários de mercado.

Resumir

A estratégia de negociação de bandas de desvio VWAP com filtragem de volatilidade é um sistema de negociação diária bem projetado, que combina vários conceitos-chave da análise técnica. Utiliza o VWAP como ponto de referência central do preço, calcula as bandas de desvio através do desvio padrão e captura oportunidades de negociação quando o preço rebota a partir dessas bandas. O principal benefício da estratégia reside em seu mecanismo de filtragem em vários níveis e no sistema de gerenciamento de risco flexível, que a permite adaptar-se a diferentes ambientes de mercado.

Apesar de existirem alguns riscos potenciais, como o risco de reversão em mercados de forte tendência e a sensibilidade de parâmetros, estes podem ser mitigados por meio de uma otimização adicional. As direções de otimização incluem o ajuste dinâmico do múltiplo da banda de desvios, a adição de filtros de tempo, a integração de uma análise de maior período de tempo e a melhoria do gerenciamento de prejuízos.

Em geral, trata-se de uma estrutura estratégica sólida, adequada para a customização e melhoria de operadores experientes. Com a otimização para mercados específicos e estilos de negociação, tem potencial para ser uma ferramenta de negociação diária confiável, especialmente em ambientes de mercado onde a volatilidade é moderada e há uma tendência de retorno de valor.

Código-fonte da estratégia
/*backtest
start: 2025-03-30 00:00:00
end: 2025-03-31 20:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("VWAP Strategy", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1, initial_capital=2000)

// === Inputs ===
src = input.source(hlc3, "Source")
stopPoints = input.float(20.0, "Stop Buffer (Points from Signal Bar High/Low)", step=0.25)

exitModeLong = input.string("VWAP", "Long Exit Rule", options=["VWAP", "Deviation Band", "None"])
exitModeShort = input.string("VWAP", "Short Exit Rule", options=["VWAP", "Deviation Band", "None"])
targetLongDeviation = input.float(2.0, "Long Target Deviation", step=0.1)
targetShortDeviation = input.float(2.0, "Short Target Deviation", step=0.1)

enableSafetyExit = input.bool(true, "Enable Safety Exit")
numOpposingBars = input.int(3, "Opposing Bars for Safety Exit", minval=1)

allowLongs = input.bool(true, "Allow Long Trades")
allowShorts = input.bool(true, "Allow Short Trades")

minStrength = input.float(0.7, "Minimum Signal Strength (0-1)", step=0.05)

showVWAP = input.bool(true, "Show VWAP")
showBands = input.bool(true, "Show Entry Bands")
showLowVolZones = input.bool(true, "Highlight Low Vol Zones")

// === VWAP Session Logic ===
var float sumSrc = na
var float sumVol = na
var float sumSrcSqVol = na

newSession = ta.change(time("D"))
if newSession or na(sumSrc)
    sumSrc := 0.0
    sumVol := 0.0
    sumSrcSqVol := 0.0

sumSrc += src * volume
sumVol += volume
sumSrcSqVol += math.pow(src, 2) * volume

vwap = sumSrc / sumVol
variance = (sumSrcSqVol / sumVol) - math.pow(vwap, 2)
stdev = math.sqrt(variance)

// === Deviation Bands ===
bandEntryMult = 2.0
entryUpper = vwap + stdev * bandEntryMult
entryLower = vwap - stdev * bandEntryMult

targetUpperLong = vwap + stdev * targetLongDeviation
targetLowerShort = vwap - stdev * targetShortDeviation

// === ATR-Based Volatility Filter ===
atrVal = ta.atr(14)
isVolTooLow = stdev * 2 < atrVal * 3
bgcolor(showLowVolZones and isVolTooLow ? color.new(color.orange, 85) : na, title="Low Volatility Zone")

// === Signal Strength Calculations ===
barRange = high - low
bullStrength = barRange > 0 ? (close - low) / barRange : 0
bearStrength = barRange > 0 ? (high - close) / barRange : 0

// === Entry Triggers with Strength Filter ===
isH1H2 = open < entryLower and close > entryLower and bullStrength >= minStrength
isL1L2 = open > entryUpper and close < entryUpper and bearStrength >= minStrength

plotshape(isH1H2, title="H1/H2", location=location.belowbar, color=color.lime, style=shape.triangleup, size=size.tiny)
plotshape(isL1L2, title="L1/L2", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)

// === Signal Bar Stop Tracking ===
var float signalLow = na
var float signalHigh = na

// === Entry Logic ===
longCondition = allowLongs and isH1H2 and strategy.position_size == 0 and not isVolTooLow
shortCondition = allowShorts and isL1L2 and strategy.position_size == 0 and not isVolTooLow

if longCondition
    strategy.entry("Long", strategy.long)
    signalLow := low

if shortCondition
    strategy.entry("Short", strategy.short)
    signalHigh := high

// === Reset Signal Bar Info
if strategy.position_size == 0
    signalLow := na
    signalHigh := na

// === Apply Signal-Bar-Based Stop
if strategy.opentrades > 0
    if strategy.position_size > 0 and not na(signalLow)
        strategy.exit("Long SL", from_entry="Long", stop=signalLow - stopPoints)
    if strategy.position_size < 0 and not na(signalHigh)
        strategy.exit("Short SL", from_entry="Short", stop=signalHigh + stopPoints)

// === Target Exits (Independent per side)
exitLongVWAP = strategy.position_size > 0 and exitModeLong == "VWAP" and high >= vwap
exitLongDev  = strategy.position_size > 0 and exitModeLong == "Deviation Band" and high >= targetUpperLong
exitShortVWAP = strategy.position_size < 0 and exitModeShort == "VWAP" and low <= vwap
exitShortDev  = strategy.position_size < 0 and exitModeShort == "Deviation Band" and low <= targetLowerShort

if exitModeLong != "None" and (exitLongVWAP or exitLongDev)
    strategy.close("Long", comment="Target Exit")

if exitModeShort != "None" and (exitShortVWAP or exitShortDev)
    strategy.close("Short", comment="Target Exit")

// === Safety Exit
bullishBar(i) => close[i] > open[i]
bearishBar(i) => close[i] < open[i]

bullCount = 0
bearCount = 0
for i = 0 to numOpposingBars - 1
    bullCount += bullishBar(i) ? 1 : 0
    bearCount += bearishBar(i) ? 1 : 0

exitSafetyLong = enableSafetyExit and strategy.position_size > 0 and bearCount == numOpposingBars
exitSafetyShort = enableSafetyExit and strategy.position_size < 0 and bullCount == numOpposingBars

if exitSafetyLong
    strategy.close("Long", comment="Safety Exit")

if exitSafetyShort
    strategy.close("Short", comment="Safety Exit")

// === Plotting ===
plot(showVWAP ? vwap : na, color=color.blue, title="VWAP")
pUpper = plot(showBands ? entryUpper : na, color=color.green, title="Upper Entry Band")
pLower = plot(showBands ? entryLower : na, color=color.red, title="Lower Entry Band")
fill(pUpper, pLower, color=color.new(color.gray, 85))