Confirmação da estratégia de divergência

Autora:ChaoZhang, Data: 2024-01-15 15:19:56
Tags:

img

Resumo

A estratégia de divergência confirmada utiliza os sinais de divergência dupla do indicador RSI e do Awesome Oscillator para determinar pontos de entrada mais confiáveis. Quando os preços formam novos máximos ou mínimos, enquanto os indicadores RSI e AO formam inversões de máximos ou mínimos, é um sinal de divergência. Esta estratégia requer divergência de ambos os indicadores ao mesmo tempo para filtrar alguns falsos sinais e melhorar a eficácia da entrada.

Princípio da estratégia

Esta estratégia avalia os pontos de compra e venda com base na divergência entre a magnitude das subidas e quedas de preços e os valores dos indicadores RSI e AO. Os métodos de julgamento específicos são os seguintes:

Divergência de alta: os preços formam uma baixa mais recente enquanto o RSI e o AO formam altas mais recentes, ou seja, os preços caem enquanto o RSI e o AO aumentam, constituindo um sinal de divergência de alta.

Divergência de baixa: os preços formam uma alta mais recente, enquanto o RSI e o AO formam mínimas mais recentes, ou seja, os preços aumentam enquanto o RSI e o AO caem, constituindo um sinal de divergência de baixa.

A estratégia exige que ambos os indicadores cumpram simultaneamente os critérios de divergência para evitar sinais errôneos de falsa divergência de um único indicador.

Análise das vantagens

Esta estratégia tem as seguintes vantagens:

  1. A filtragem de indicadores duplos aumenta a fiabilidade dos sinais e evita sinais de divergência falsa de um único indicador.

  2. A utilização das características de divergência dos indicadores para determinar os pontos de compra e venda tem uma probabilidade relativamente pequena de retrocesso.

  3. Os sinais de divergência apresentam uma boa sustentabilidade e um maior potencial de lucro.

  4. A definição de stop loss perto do suporte ou resistência chave reduz a possibilidade de grandes perdas individuais.

Análise de riscos

Esta estratégia tem também alguns riscos:

  1. As condições para a dupla filtragem são menos frequentemente cumpridas, possivelmente perdendo algumas oportunidades comerciais.

  2. A divergência não é um sinal 100% fiável, podendo ocorrer perdas em algumas situações individuais.

  3. A definição de parâmetros para as bandas de Bollinger pode resultar em um stop loss demasiado frouxo ou demasiado apertado.

Orientações de otimização

Esta estratégia pode ser otimizada de várias maneiras:

  1. Ajustar os parâmetros do ciclo para julgar a divergência para otimizar os parâmetros dos sinais de divergência.

  2. Teste diferentes métodos de stop loss, tais como trailing stop ou stop loss dinâmico.

  3. Aumentar a filtragem por outros indicadores, como o volume de negociação, para melhorar ainda mais a fiabilidade do sinal.

  4. Considerar de forma abrangente tendências, suporte/resistência e outros fatores para identificar a qualidade dos sinais de divergência.

Resumo

A estratégia de divergência confirmada determina os pontos de entrada através dos sinais de divergência dupla de RSI e AO. O mecanismo de filtragem dupla reduz efetivamente os falsos sinais e aumenta a lucratividade. A estratégia também define stop loss em níveis-chave para controlar riscos, com boas características de risco-recompensa. Por meio da otimização de parâmetros, aumento da filtragem de sinais, etc., a estabilidade e o efeito de negociação da estratégia podem ser ainda melhorados.


/*backtest
start: 2023-12-15 00:00:00
end: 2024-01-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Confirmed Divergence Strategy", overlay=true)
source = close
length = input(30, minval=1)
mult = input(2.0, minval=0.001, maxval=50)
// SETTING UP VARIABLES //

src = close

// RSI //
rsiprd = input(title="RSI period",defval=14)
rv = rsi(src,rsiprd)
ob = input(title="Overbought Level",  defval=70)
os = input(title="Oversold Level",  defval=30)
lengthAO1=input(title="Awesome Short MA", defval=5, minval=1) //5 periods
lengthAO2=input(title="Awesome Long MA", defval=34, minval=1) //34 periods


//Awesome//

AO = sma((high+low)/2, lengthAO1) - sma((high+low)/2, lengthAO2)

// look back periods //
x = input(title = "short lookback period",defval=5)
z = input(title = "long lookback period",defval=25)


// END SETUP //

////////////////////////
// BULLISH DIVERGENCE //
////////////////////////

// define lower low in price //

srcLL = src > lowest(src,x) and  lowest(src,x)<lowest(src,z)[x]

// define higher low in rsi //

rsiHL = rv>lowest(rv,x) and lowest(rv,x) > lowest(rv,z)[x] and lowest(rv,z)<os

// define higher low in AO //


aoHL = AO > lowest(AO,x) and lowest(AO,x) > lowest(AO,z)[x] and lowest(AO, x) < 0



BullishDiv = srcLL and rsiHL and aoHL


////////////////////////
// BEARISH DIVERGENCE //
////////////////////////

// define higher high in price //

srcHH = src < highest(src,x) and  highest(src,x)>highest(src,z)[x]

// define lower high in RSI //

rsiLH = rv<highest(rv,x) and highest(rv,x) < highest(rv,z)[x] and highest(rv,z)>ob

// define lower high in AO //
aoLH = AO<highest(AO,x) and highest(AO,x) < highest(AO,z)[x] and highest(AO, x) > 0

BearishDiv = srcHH and rsiLH and aoLH


basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev



if (BullishDiv)
    strategy.entry("DivLE", strategy.long, stop=lower, oca_name="BullishDiv",comment="DivLE")
else
    strategy.cancel(id="DivLE")
    
if (crossover(close, lower))
    strategy.close("DivSE")
    
if (crossunder(close, upper))
    strategy.close("DivLE")

if (BearishDiv)
    strategy.entry("DivSE", strategy.short, stop=upper, oca_name="BearishDiv",comment="DivSE")
else
    strategy.cancel(id="DivSE")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)


Mais.