Estratégia de duplo equilíbrio de touros e ursos

Autora:ChaoZhang, Data: 2023-10-30 10:31:17
Tags:

img

Resumo

A estratégia de duplo equilíbrio de touros e ursos é uma estratégia combinada que incorpora a estratégia de reversão 123 e o indicador de balanço de touros e ursos.

Princípios

A estratégia consiste em duas sub-estratégias:

  1. 123 Estratégia de reversão. Gera sinais quando os dois últimos preços de fechamento mostram reversão, ou seja, vai longo quando os dois preços de fechamento anteriores estavam em queda enquanto o terceiro preço de fechamento aumenta, e vai curto quando os dois preços de fechamento anteriores estavam em alta enquanto o terceiro preço de fechamento diminui.

  2. Estratégia de indicador de balanço. Ele julga a tendência do mercado calculando o equilíbrio entre as forças de alta e baixa. Especificamente, ele usa a diferença entre o preço de fechamento atual e o preço de abertura, bem como a diferença entre o dia atual e o anterior para determinar as forças de alta e baixa. Quanto maior a diferença entre as forças de alta e baixa, mais pronunciada a tendência.

A estratégia combinada origina seus sinais de negociação a partir dos sinais gerados pelas duas sub-estratégias. Ele só vai tomar um sinal, por exemplo, ir longo, quando as duas sub-estratégias dão sinais consistentes, ou seja, ambos o sinal para ir longo. Se os sinais das duas sub-estratégias diferem, a estratégia combinada vai ignorar esse sinal e permanecer em margem.

Vantagens

A maior vantagem da estratégia de Touros e Ursos Dual Balanced é sua alta confiabilidade. Ao exigir sinais consistentes de ambas as sub-estratégias antes de entrar em um comércio, ele serve como um mecanismo de verificação para evitar sinais falsos. Além disso, com as duas sub-estratégias aproveitando oportunidades dos lados de reversão e tendência, respectivamente, a estratégia oferece diversificação para mitigar os riscos de uma única estratégia.

A estratégia de reversão pode capturar oportunidades de reversão de curto prazo no mercado. A estratégia de balanço de touros e ursos pode determinar a direção da tendência de longo prazo. Usando ambos permite capturar reversões, mantendo a tendência principal, filtrando sinais de reversão mais fracos e aumentando a taxa de vitória.

Riscos

O maior risco é que a probabilidade de sinais errados das sub-estratégias dobrem. Embora a estratégia combinada exija sinais consistentes, se ambas as sub-estratégias derem sinais errados ao mesmo tempo, a estratégia combinada ainda entrará no comércio, incorrendo em perdas duplicadas.

Além disso, conflitos podem surgir entre as sub-estratégias, com um sinalizando para ir longo enquanto o outro curto. A estratégia combinada então perderá oportunidades. Conflitos prolongados podem impedir que a estratégia combinada entre por um longo tempo, diminuindo a eficiência do capital.

Optimização

Considere incorporar uma estratégia de reversão de tendência como uma terceira subestratégia. Pode ajudar a determinar a tendência de longo prazo e dar sinais quando a tendência se inverte. Adicionar uma estratégia para julgar a tendência do mercado pode filtrar ainda mais os falsos sinais e aumentar a estabilidade.

Outra direcção consiste no ajustamento dos parâmetros das sub-estratégias para sinais mais alinhados, por exemplo, o ajustamento dos parâmetros limiares da estratégia Balanço Boi e Urso para capturar tendências mais fracas e complementar a estratégia de reversão.

O tratamento de conflitos prolongados entre as sub-estratégias também pode ser pesquisado. Por exemplo, definir um nível máximo de tolerância para conflitos, após o qual o sinal de uma sub-estratégia individual será tomado. Isso pode aliviar a perda de oportunidades até certo ponto.

Conclusão

A estratégia de duplo equilíbrio de touros e ursos combina a estratégia de reversão 123 e a estratégia de equilíbrio de touros e ursos para alcançar a verificação dupla dos sinais de negociação e efetivamente filtrar sinais falsos e aumentar a estabilidade. Enquanto isso, a combinação de estratégias de reversão e tendência fornece diversificação para reduzir riscos. A estratégia pode ser ainda mais otimizada ajustando parâmetros, adicionando uma terceira estratégia, etc., para melhorar o alinhamento e a eficiência do capital.


/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/07/2019
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
//    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. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

BullAndBearBalance(SellLevel, BuyLevel) =>
    pos = 0
    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
    pos := iff(nBBB < SellLevel, -1,
    	   iff(nBBB >= BuyLevel, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Bull And Bear Balance", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
SellLevel = input(-15, step=0.01)
BuyLevel = input(15, step=0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBullAndBearBalance = BullAndBearBalance(SellLevel, BuyLevel)
pos = iff(posReversal123 == 1 and posBullAndBearBalance == 1 , 1,
	   iff(posReversal123 == -1 and posBullAndBearBalance == -1, -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)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Mais.