Estratégia de reversão do impulso com dupla confirmação

Autora:ChaoZhang, Data: 2024-02-20 15:27:02
Tags:

img

Resumo

A estratégia do Momentum de Reversão combina sinais de reversão de preços e sinais de reversão de volatilidade para implementar a negociação de tendências. Ele usa principalmente o padrão 123 para determinar pontos de reversão de preços, enquanto usa a volatilidade do Canal Donchian como um filtro para falsos sinais. Esta estratégia é adequada para a detenção de médio a longo prazo.

Princípio da estratégia

A parte de reversão de preço usa o padrão 123 para julgar. Este padrão significa que os preços das duas primeiras linhas K se movem em direções opostas (para cima ou para baixo), e a terceira linha K reverte novamente (para baixo ou para cima). Portanto, ele é chamado de padrão 123. Quando um preço aparece com três linhas K revertendo, geralmente sinaliza que uma tendência de curto prazo está prestes a virar. Para verificar ainda mais a confiabilidade das reversões de preços, esta estratégia também usa um indicador estocástico para desencadear negociações apenas quando o indicador estocástico também reverte (a linha rápida cai ou sobe rapidamente).

A parte de reversão de volatilidade usa a volatilidade do canal de Donchian. O canal de Donchian reflete principalmente a faixa de flutuação de preços. Quando a volatilidade de preços aumenta, a largura do canal de Donchian também se expande; quando a volatilidade de preços diminui, a largura do canal de Donchian também se estreita. A volatilidade do canal de Donchian (largura) pode medir efetivamente o grau de flutuação do mercado e o nível de risco. Esta estratégia usa a reversão da volatilidade do canal de Donchian para filtrar sinais falsos, emitindo apenas sinais de negociação quando a volatilidade e os preços se revertem ao mesmo tempo, evitando ser pego em operações de callback.

Em resumo, esta estratégia garante a fiabilidade dos sinais de negociação e controla os riscos através da validação de reversão dupla, tornando-a uma estratégia de tendência relativamente robusta.

Vantagens

  • Mecanismo de filtragem dupla garante a fiabilidade dos sinais de negociação e evita falsos breakouts
  • Controla os riscos e reduz a probabilidade de perdas
  • Adequado para a detenção a médio e longo prazo, evita o ruído do mercado e capta rendimentos excessivos
  • Grande espaço de otimização para parâmetros que podem ser ajustados para o estado ideal
  • O estilo único funciona bem em combinação com indicadores técnicos comuns

Riscos

  • Confia na otimização de parâmetros, parâmetros inadequados afetam o desempenho da estratégia
  • A estratégia de stop loss necessita de um reforço adicional, o controlo máximo da retirada precisa de ser melhorado
  • A frequência de negociação pode ser baixa, não pode adaptar-se à negociação algorítmica de alta frequência
  • Requer a selecção de produtos adequados e prazos, âmbito de aplicação limitado
  • O aprendizado de máquina pode ser usado para encontrar parâmetros ideais

Orientações de otimização

  • Aumentar o módulo de stop loss adaptativo para reduzir significativamente o drawdown máximo
  • Introduzir um indicador de volume de negociação para garantir a entrada em breakouts de alto volume
  • Otimizar parâmetros para melhor estabilidade
  • Experimente diferentes produtos e prazos para encontrar o mais adequado
  • Tente combinar com outros indicadores ou estratégias de sinergia 1+1>2

Resumo

A estratégia de Momentum de Reversão consegue um bom controle de risco através da confirmação dupla da reversão de preços e reversão de volatilidade. Em comparação com indicadores únicos, ele filtra muito ruído e tem melhor estabilidade. Ao melhorar a otimização de parâmetros, módulos de stop loss, introduzindo volume, etc., esta estratégia pode melhorar ainda mais a qualidade do sinal e a estabilidade de lucro. É adequado como componente de estratégias de médio a longo prazo para ações, criptomoedas, etc., e pode obter bons retornos excessivos quando combinado adequadamente com outros módulos.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 06/03/2020
// 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 Donchian Channel was developed by Richard Donchian and it could be compared 
// to the Bollinger Bands. When it comes to volatility analysis, the Donchian Channel 
// Width was created in the same way as the Bollinger Bandwidth technical indicator was.
//
// As was mentioned above the Donchian Channel Width is used in technical analysis to measure 
// volatility. Volatility is one of the most important parameters in technical analysis. 
// A price trend is not just about a price change. It is also about volume traded during this 
// price change and volatility of a this price change. When a technical analyst focuses his/her 
// attention solely on price analysis by ignoring volume and volatility, he/she only sees a part 
// of a complete picture only. This could lead to a situation when a trader may miss something and 
// lose money. Lets take a look at a simple example how volatility may help a trader:
//
//    Most of the price based technical indicators are lagging indicators.
//    When price moves on low volatility, it takes time for a price trend to change its direction and 
// it could be ok to have some lag in an indicator.
//    When price moves on high volatility, a price trend changes its direction faster and stronger. 
// An indicator's lag acceptable under low volatility could be financially suicidal now - Buy/Sell signals could be generated when it is already too late.
//
// Another use of volatility - very popular one - it is to adapt a stop loss strategy to it:
//    Smaller stop-loss recommended in low volatility periods. If it is not done, a stop-loss could 
// be generated when it is too late.
//    Bigger stop-loss recommended in high volatility periods. If it is not done, a stop-loss could 
// be triggered too often and you may miss good trades.
//
// 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

DCW(length, smoothe) =>
    pos = 0.0
    xUpper = highest(high, length)
    xLower = lowest(low, length)
    xDonchianWidth = xUpper - xLower
    xSmoothed = sma(xDonchianWidth, smoothe)
    pos := iff(xDonchianWidth > xSmoothed, -1,
              iff(xDonchianWidth < xSmoothed, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Donchian Channel Width", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDCW = input(20, minval=1)
SmootheSCW = input(22, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDCW = DCW(LengthDCW, SmootheSCW)
pos = iff(posReversal123 == 1 and posDCW == 1 , 1,
	   iff(posReversal123 == -1 and posDCW == -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.