Estratégia de divergência do oscilador de tendência de volatilidade,

WT VWAP
Data de criação: 2024-05-28 17:43:54 última modificação: 2024-05-28 17:43:54
cópia: 0 Cliques: 721
1
focar em
1617
Seguidores

Estratégia de divergência do oscilador de tendência de volatilidade,

Visão geral

A estratégia combina o indicador de tendência WaveTrend (WT) com o preço médio ponderado por volume de transação (VWAP) para capturar oportunidades potenciais de reversão de tendência através da identificação de preços e desvios do indicador. A estratégia usa o ATR (Average True Range) para determinar a posição de parada e ajustar dinamicamente a escala de posição de acordo com a porcentagem de risco da conta.

Princípio da estratégia

  1. Calcular o indicador de oscilação WaveTrend ((WT): gerar um indicador de oscilação de dinâmica, comparando o preço atual com a diferença entre o seu canal e a média.
  2. Calculação do volume de transações preço médio ponderado ((VWAP): Usando o volume de transações como peso para calcular o preço médio móvel.
  3. Identificar o desvio entre o preço e o indicador WT: quando o preço cria um novo alto/novo baixo e o indicador não consegue criar um novo alto/novo baixo, isso indica que uma reversão de tendência pode ocorrer.
  4. Condições de entrada: abrir uma posição maior quando se reconhece que o leitor está se afastando; e fechar uma posição menor quando se reconhece que o leitor está se afastando.
  5. Parar: configuração de parada dinâmica baseada no ATR (Average True Range).
  6. Dimensão de posição: Dimensão de posição para cada transação ajustada dinamicamente de acordo com a porcentagem de risco da conta e a distância de parada.
  7. Cor de fundo: Altera a cor do fundo de acordo com o nível de sobrecompra/excesso de venda do indicador, fornecendo uma dica visual adicional.

Análise de vantagens

  1. Seguimento de tendências: Identificando desvios de preços e indicadores, a estratégia permite capturar oportunidades potenciais de reversão de tendências.
  2. Gerenciamento de risco: o uso de stop loss dinâmico baseado no ATR e o ajuste do tamanho da posição de acordo com a porcentagem de risco ajudam a controlar os perdas potenciais.
  3. Dica visual: a cor do fundo varia de acordo com o estado de sobrecompra/sobrevenda do indicador, fornecendo um sinal visual adicional para o comerciante.
  4. Flexibilidade: Os parâmetros da estratégia (como o comprimento do canal, o comprimento médio, os níveis de sobrecompra/sobrevenda) podem ser ajustados de acordo com diferentes condições de mercado e estilos de negociação.

Análise de Riscos

  1. Mercado em choque: A estratégia pode sofrer perdas contínuas em condições de mercado sem uma clara tendência.
  2. Optimização de parâmetros: O desempenho da estratégia depende muito da escolha dos parâmetros, e a configuração inadequada dos parâmetros pode levar a resultados sub-ótimos.
  3. Excesso de negociação: sinais de entrada e saída frequentes podem levar a custos de negociação mais elevados, afetando o desempenho geral da estratégia.

Direção de otimização

  1. Filtragem de tendências: quando ocorrem desvios, introduzir indicadores adicionais de confirmação de tendências (como a média móvel) para filtrar potenciais falsos sinais.
  2. Parâmetros dinâmicos: Parâmetros do indicador ajustados de acordo com a volatilidade do mercado, com canais e comprimentos médios mais curtos quando a volatilidade é baixa e com parâmetros mais longos quando a volatilidade é alta.
  3. Stop-loss: introdução de um stop-loss dinâmico baseado na taxa de retorno do risco ou no preço-alvo para melhor gerenciar posições lucrativas.
  4. Filtragem multi-espaço: Filtra os sinais de negociação de acordo com a direção da tendência geral do mercado (como a média móvel de longo prazo) e negocia apenas na direção da tendência.

Resumir

A WaveTrend Oscillator Divergence Strategy combina um indicador de tendência flutuante e um preço médio ponderado por volume de transação para identificar oportunidades potenciais de reversão de tendência. A vantagem da estratégia reside na sua capacidade de acompanhamento de tendências e medidas de gerenciamento de risco, mas pode ser arriscada em mercados turbulentos.

Código-fonte da estratégia
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("PipShiesty Swagger", overlay=true)

// WaveTrend Oscillator (WT)
n1 = input.int(10, "Channel Length")
n2 = input.int(21, "Average Length")
obLevel1 = input.float(60.0, "Overbought Level 1")
obLevel2 = input.float(53.0, "Overbought Level 2")
osLevel1 = input.float(-60.0, "Oversold Level 1")
osLevel2 = input.float(-53.0, "Oversold Level 2")

ap = hlc3
esa = ta.ema(ap, n1)
d = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ta.ema(ci, n2)

// VWAP
vwap = ta.vwma(close, n1)

// Signal Line
wt1 = tci
wt2 = ta.sma(wt1, 4)

// Bullish and Bearish Divergences
bullishDivergence = (ta.lowest(close, 5) > ta.lowest(close[1], 5)) and (wt1 < wt1[1]) and (close > close[1])
bearishDivergence = (ta.highest(close, 5) < ta.highest(close[1], 5)) and (wt1 > wt1[1]) and (close < close[1])

// Plot WaveTrend Oscillator
plot(wt1, title="WT1", color=color.blue)
plot(wt2, title="WT2", color=color.red)

// Plot Divergences
plotshape(series=bullishDivergence, location=location.belowbar, color=color.green, style=shape.labelup, title="Bullish Divergence")
plotshape(series=bearishDivergence, location=location.abovebar, color=color.red, style=shape.labeldown, title="Bearish Divergence")

// Risk Management Parameters
riskPercentage = input.float(1, title="Risk Percentage per Trade", minval=0.1, step=0.1) / 100
stopLossATR = input.float(1.5, title="Stop Loss ATR Multiplier", minval=0.5, step=0.1)

// ATR Calculation
atr = ta.atr(14)

// Position Size Calculation
calculatePositionSize(stopLoss) =>
    riskAmount = strategy.equity * riskPercentage
    positionSize = riskAmount / stopLoss
    positionSize

// Entry and Exit Logic with Stop Loss
if bullishDivergence
    stopLoss = low - atr * stopLossATR
    positionSize = calculatePositionSize(close - stopLoss)
    strategy.entry("Buy", strategy.long, qty=positionSize)
    strategy.exit("Sell", from_entry="Buy", stop=stopLoss)

if bearishDivergence
    strategy.close("Buy")

// Plot VWAP
plot(vwap, title="VWAP", color=color.orange)

// Background color to indicate Overbought/Oversold conditions
bgcolor(wt1 > obLevel1 ? color.new(color.red, 90) : na, title="Overbought Level 1")
bgcolor(wt1 < osLevel1 ? color.new(color.green, 90) : na, title="Oversold Level 1")
bgcolor(wt1 > obLevel2 ? color.new(color.red, 70) : na, title="Overbought Level 2")
bgcolor(wt1 < osLevel2 ? color.new(color.green, 70) : na, title="Oversold Level 2")