Estratégia de equilíbrio touro e urso

Autora:ChaoZhang, Data: 2023-11-02 17:12:40
Tags:

img

Resumo

A Estratégia de Equilíbrio de Touro e Urso é uma estratégia de tendência aprimorada. Analisa o equilíbrio entre as forças de alta e baixa com base na relação entre a barra atual e a barra anterior, e gera sinais de negociação quando o equilíbrio é quebrado.

Estratégia lógica

O indicador central desta estratégia é o nBBB, que reflete o equilíbrio entre as forças de alta e baixa da barra atual em relação à barra anterior.

nBBB = valor2 - valor

O valor e o valor2 calculam as forças de alta e baixa da barra atual e da barra anterior, respectivamente. O cálculo é bastante complexo, envolvendo julgamentos sobre a relação entre preços fechados, abertos, altos e baixos. Mas, em geral, o valor mede as forças de touro / urso da barra atual e o valor2 mede a da barra anterior. Sua diferença reflete a mudança no saldo touro / urso.

Quando o nBBB cai abaixo do limite SellLevel, um sinal curto é gerado. Quando o nBBB sobe acima do limite BuyLevel, um sinal longo é gerado. Os limites podem ser ajustados através de parâmetros.

Vantagens

As principais vantagens desta estratégia são:

  1. Com base nos sinais de reversão dos candelabros, pode identificar fortes pontos de virada da tendência.

  2. Ao medir o equilíbrio touro/urso, os sinais são mais precisos e confiáveis.

  3. A comparação da barra atual com a barra anterior filtra algum ruído para sinais mais claros.

  4. Aplicável a diferentes prazos com boa flexibilidade.

  5. O indicador nBBB é intuitivo e os sinais são simples e claros.

Riscos

Alguns riscos a ter em conta:

  1. O nBBB pode gerar sinais falsos, exigindo confirmação de preços.

  2. Confiar unicamente no nBBB tem pontos cegos, é melhor incorporar outros indicadores.

  3. Os parâmetros SellLevel e BuyLevel afetam diretamente o desempenho e necessitam de uma otimização cuidadosa.

  4. Os sinais podem atrasar-se durante a volatilidade extrema, exigindo uma avaliação do risco.

  5. Mais adequado para o médio/longo prazo, a curto prazo pode ser cortado.

Melhorias

Algumas formas de melhorar a estratégia:

  1. Otimizar SellLevel e BuyLevel com base em backtests históricos para melhor ajuste.

  2. Incorporar mecanismos de stop loss como trailing stop loss para controlar os riscos.

  3. Adicionar outros indicadores como volume, estocástico etc. para melhorar a precisão da decisão.

  4. Introduzir aprendizado de máquina para otimizar automaticamente parâmetros e gerar melhores sinais.

  5. Optimização de parâmetros separados para diferentes produtos e prazos.

Conclusão

A Estratégia de Balanço Touro e Urso julga as inversões de tendência medindo mudanças na força touro/urso, tornando-se uma estratégia de tendência relativamente simples e prática. Ela tem certas vantagens, mas também riscos. Com otimização de parâmetros, stop losses, indicadores adicionais, etc., pode ser melhorada ainda mais.


/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/02/2017
//    This new indicator analyzes the balance between bullish and
//    bearish sentiment.
//    One can cay that it is an improved analogue of Elder Ray indicator.
//    To get more information please see "Bull And Bear Balance Indicator" 
//    by Vadim Gimelfarb. 
////////////////////////////////////////////////////////////
strategy(title = "Bull And Bear Balance Strategy")
SellLevel = input(-15, step=0.01)
BuyLevel = input(15, step=0.01)
reverse = input(false, title="Trade reverse")
hline(SellLevel, color=red, linestyle=line)
hline(BuyLevel, color=green, linestyle=line)
value =  iff (close < open , 
          iff (close[1] > open ,  max(close - open, high - low), high - low), 
           iff (close > open, 
             iff(close[1] > open, max(close[1] - low, high - close), max(open - low, high - close)), 
              iff(high - close > close - low, 
               iff (close[1] > open, max(close[1] - open, high - low), high - low), 
                 iff (high - close < close - low, 
                  iff(close > open, max(close - low, high - close),open - low), 
                   iff (close > open, max(close[1] - open, high - close),
                     iff(close[1] < open, max(open - low, high - close), high - low))))))

value2 = iff (close < open , 
          iff (close[1] < open ,  max(high - close[1], close - low), max(high - open, close - low)), 
           iff (close > open, 
             iff(close[1] > open,  high - low, max(open - close[1], high - low)), 
              iff(high - close > close - low, 
               iff (close[1] < open, max(high - close[1], close - low), high - open), 
                 iff (high - close < close - low, 
                  iff(close[1] > open,  high - low, max(open - close, high - low)), 
                   iff (close[1] > open, max(high - open, close - low),
                     iff(close[1] < open, max(open - close, high - low), high - low))))))
nBBB = value2 - value
nBBBc = nBBB < 0 ? red : green
pos = iff(nBBB < SellLevel, -1,
	   iff(nBBB >= BuyLevel, 1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nBBB, style=line, linewidth=1, color=nBBBc)
plot(nBBB, style=histogram, linewidth=1, color=gray)


Mais.