Estratégia de reversão do ciclo de tendência após retrocesso

Autora:ChaoZhang, Data: 2023-11-15 17:13:18
Tags:

img

Resumo

Esta estratégia combina dois indicadores: a reversão da média móvel e o oscilador de desorientação de preços para gerar sinais de negociação e capturar a tendência de rebote após reversões do ciclo.

Princípios

Esta estratégia utiliza principalmente os seguintes dois indicadores técnicos para o julgamento dos sinais de negociação:

  1. Reversão da média móvel

    Ele calcula a tendência de alta ou baixa do preço nos últimos dois dias combinado com o valor da linha rápida K para determinar se ocorre um sinal de reversão. Quando o preço continua subindo nos últimos dois dias e o valor da linha rápida K é menor que o valor da linha lenta K, um sinal de compra é gerado. Quando o preço continua caindo nos últimos dois dias e o valor da linha rápida K é maior que o valor da linha lenta K, um sinal de venda é gerado.

  2. Oscilador de tendência de preços

    O Detrend Price Oscillator desenha uma linha média móvel horizontal e identifica ciclos de preços com base na relação entre o preço e a linha. Ele filtra tendências mais longas que o período de cálculo, revelando assim flutuações ocultas de curto prazo. Quando o preço está acima da linha média móvel, é um sinal de compra. Quando o preço está abaixo da linha, é um sinal de venda.

Esta estratégia combina os sinais dos dois indicadores. Ou seja, quando um sinal de reversão da média móvel aparece e o oscilador de tendência de preços também dá um sinal de reversão confirmador, uma ordem de negociação é gerada. Isso pode filtrar alguns sinais de reversão inválidos e capturar a tendência de rebote após reversões.

Vantagens

A maior vantagem desta estratégia é que utiliza bem os pontos fortes dos dois indicadores de confirmação complementar, que podem efetivamente filtrar sinais inválidos e aumentar a fiabilidade do sinal.

O indicador de reversão da média móvel em si tende a gerar sinais falsos. Confiar apenas nele para julgamentos tende a perseguir tops e atingir fundos. A introdução do oscilador de desaceleração de preços para combinação pode evitar operações de reversão em zonas de oscilação não ideais.

As definições dos parâmetros do oscilador de desaceleração de preços determinam também que ele só identifica flutuações de curto prazo, o que corresponde muito bem com o julgamento da reversão da média móvel e pode identificar um tempo de reversão razoável.

Riscos

Os principais riscos desta estratégia incluem:

  1. Impulso de rebote insuficiente, tende a ficar preso

As inversões da média móvel tendem a ocorrer em intervalos laterais.

  1. Configurações de parâmetros incorretas

Se os parâmetros do oscilador de tendência de preços forem demasiado elevados, ele irá identificar tendências de médio e longo prazo; se for demasiado baixo, ele aumentará os riscos de erro de julgamento.

  1. Falhas de inversão devido a eventos repentinos

Os principais eventos de notícias podem perturbar os julgamentos de tendência existentes, resultando no fracasso dos sinais de reversão.

Orientações de otimização

A estratégia pode ser ainda melhorada nos seguintes aspectos:

  1. Adicionar mecanismos de stop loss

Deverão ser ajustadas de forma razoável as perdas de parada ou as perdas de parada de tempo para controlar as perdas individuais.

  1. Combinar com indicadores de volume

Adicionar confirmação de volume, como emitir sinais somente quando atravessar o volume médio, para evitar avanços ineficazes devido a um momento insuficiente.

  1. Optimização de parâmetros dinâmicos

Otimizar dinamicamente os parâmetros de acordo com as condições do mercado, relaxar os parâmetros adequadamente durante tendências óbvias e apertar os parâmetros durante as consolidações.

  1. Usar métodos de aprendizagem de máquina para otimização dinâmica

Usar métodos de aprendizagem de máquina como floresta aleatória para avaliar e selecionar combinações de parâmetros para alcançar otimização inteligente dinâmica.

Resumo

Esta estratégia combina os pontos fortes de dois indicadores razoavelmente para capturar a tendência de rebote em pontos de reversão. Embora problemas como ficar preso e otimização de parâmetros permaneçam, a ideia geral é clara e lógica. Vale a pena testar e otimizar ainda mais para alcançar lucros estáveis.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/12/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
// The Detrend Price Osc indicator is similar to a moving average, 
// in that it filters out trends in prices to more easily identify 
// cycles. The indicator is an attempt to define cycles in a trend 
// by drawing a moving average as a horizontal straight line and 
// placing prices along the line according to their relation to a 
// moving average. It provides a means of identifying underlying 
// cycles not apparent when the moving average is viewed within a 
// price chart. Cycles of a longer duration than the Length (number 
// of bars used to calculate the Detrend Price Osc) are effectively 
// filtered or removed by the oscillator.
//
// 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

DPO(Length) =>
    pos = 0.0
    xPrice = close
    xsma = sma(xPrice, Length)
    nRes = xPrice - xsma
    pos := iff(nRes > 0, 1,
    	     iff(nRes < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Detrended Price Oscillator", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDPO = input(14, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDPO = DPO(LengthDPO)
pos = iff(posReversal123 == 1 and posDPO == 1 , 1,
	   iff(posReversal123 == -1 and posDPO == -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.