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

Estratégia de divergência do oscilador WaveTrend

Autora:ChaoZhang, Data: 2024-05-28 17:43:54
Tags:WTVWAP

img

Resumo

Esta estratégia combina o WaveTrend Oscillator (WT) e o Volume Weighted Average Price (VWAP) para capturar oportunidades potenciais de reversão de tendência, identificando divergências entre o preço e o indicador. A estratégia usa o Average True Range (ATR) para determinar os níveis de stop-loss e ajusta dinamicamente o dimensionamento de posições com base na porcentagem de risco da conta. Os principais pontos fortes da estratégia estão em suas capacidades de seguir tendências e medidas de gerenciamento de risco, mas pode sofrer perdas em mercados agitados. As direções de otimização incluem adicionar filtros adicionais e melhorar as regras de entrada e saída.

Princípios de estratégia

  1. Calcular o oscilador WaveTrend (WT): gerar um oscilador de momento comparando o preço atual com seu canal e média.
  2. Calcular o preço médio ponderado por volume (VWAP): Calcular um preço médio móvel ponderado por volume.
  3. Identificar as divergências entre o preço e o indicador WT: Uma reversão potencial da tendência é indicada quando o preço alcança uma nova alta/baixa enquanto o indicador não o faz.
  4. Condições de entrada: abrir uma posição longa quando for identificada uma divergência de alta; fechar a posição quando for identificada uma divergência de baixa.
  5. O valor da posição em risco deve ser calculado em função da posição em risco.
  6. O valor da posição deve ser ajustado de forma dinâmica para cada operação, com base na percentagem de risco da conta e na distância de stop-loss.
  7. Cor de fundo: alterar a cor de fundo com base nos níveis de sobrecompra/supervenda do indicador, fornecendo pistas visuais adicionais.

Análise das vantagens

  1. Seguimento da tendência: Ao identificar divergências entre o preço e o indicador, a estratégia pode capturar potenciais oportunidades de reversão da tendência.
  2. Gerenciamento de riscos: a utilização de stop-loss dinâmicos baseados em ATR e o dimensionamento de posições com base na percentagem de risco ajudam a controlar as perdas potenciais.
  3. Indicações visuais: A cor de fundo muda com base no estado de sobrecompra/supervenda do indicador, fornecendo sinais visuais adicionais aos traders.
  4. Flexibilidade: Os parâmetros da estratégia (por exemplo, comprimento do canal, comprimento médio, níveis de sobrecompra/supervenda) podem ser ajustados para se adequarem às diferentes condições de mercado e estilos de negociação.

Análise de riscos

  1. Mercados agitados: em condições de mercado sem tendências claras, a estratégia pode sofrer perdas consecutivas.
  2. Optimização de parâmetros: o desempenho da estratégia depende em grande parte da escolha de parâmetros, e configurações de parâmetros subótimas podem levar a resultados abaixo da média.
  3. O excesso de negociação: os sinais de entrada e saída frequentes podem resultar em custos elevados de negociação, afetando o desempenho geral da estratégia.

Orientações de otimização

  1. Filtros de tendência: introduzir indicadores de confirmação de tendência adicionais (por exemplo, médias móveis) quando ocorrem divergências para filtrar potenciais falsos sinais.
  2. Parâmetros dinâmicos: ajustar os parâmetros do indicador com base na volatilidade do mercado, utilizando canais mais curtos e comprimentos médios durante a baixa volatilidade e parâmetros mais longos durante a alta volatilidade.
  3. Tome lucro: introduzir níveis dinâmicos de tomar lucro baseados em rácios risco/recompensa ou preços-alvo para gerir melhor as posições rentáveis.
  4. Filtros longo/curto: Filtra os sinais de negociação com base na direção geral da tendência do mercado (por exemplo, médias móveis de longo prazo) para negociar apenas na direção da tendência.

Resumo

A estratégia de divergência do oscilador WaveTrend combina o indicador WaveTrend e o preço médio ponderado por volume para identificar oportunidades potenciais de reversão de tendência. Os pontos fortes da estratégia estão em suas capacidades de seguir tendências e medidas de gerenciamento de risco, mas pode enfrentar riscos em mercados agitados. A estratégia pode ser otimizada ainda mais através da introdução de filtros adicionais, ajustes de parâmetros dinâmicos e melhorias nas regras de entrada e saída.


/*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")


Relacionados

Mais.