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.
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.
Esta estratégia tem as seguintes vantagens:
A filtragem de indicadores duplos aumenta a fiabilidade dos sinais e evita sinais de divergência falsa de um único indicador.
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.
Os sinais de divergência apresentam uma boa sustentabilidade e um maior potencial de lucro.
A definição de stop loss perto do suporte ou resistência chave reduz a possibilidade de grandes perdas individuais.
Esta estratégia tem também alguns riscos:
As condições para a dupla filtragem são menos frequentemente cumpridas, possivelmente perdendo algumas oportunidades comerciais.
A divergência não é um sinal 100% fiável, podendo ocorrer perdas em algumas situações individuais.
A definição de parâmetros para as bandas de Bollinger pode resultar em um stop loss demasiado frouxo ou demasiado apertado.
Esta estratégia pode ser otimizada de várias maneiras:
Ajustar os parâmetros do ciclo para julgar a divergência para otimizar os parâmetros dos sinais de divergência.
Teste diferentes métodos de stop loss, tais como trailing stop ou stop loss dinâmico.
Aumentar a filtragem por outros indicadores, como o volume de negociação, para melhorar ainda mais a fiabilidade do sinal.
Considerar de forma abrangente tendências, suporte/resistência e outros fatores para identificar a qualidade dos sinais de divergência.
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)