Estratégia composta de reversão do momento

Autora:ChaoZhang, Data: 2024-01-05 14:06:21
Tags:

img

Resumo

A estratégia reversal momentum compound combina uma estratégia de reversão e uma estratégia de momentum. Utilizando tanto sinais de reversão de preço quanto sinais de indicador de momentum, ela captura pontos de virada do mercado com mais precisão e entra no mercado de maneira oportuna à medida que o preço começa a reverter.

Estratégia lógica

A estratégia consiste em duas partes:

  1. 123 Estratégia de reversão: Ir longo quando o fechamento é maior do que o fechamento anterior por 2 dias consecutivos após 2 dias de fechamento inferior e a linha lenta K de 9 dias está abaixo de 50; Ir curto quando o fechamento é menor do que o fechamento anterior por 2 dias consecutivos após 2 dias de fechamento superior e a linha rápida K de 9 dias está acima de 50.

  2. DAPD Momentum Breakout Strategy: DAPD é a diferença média entre o máximo de 21 dias e o mínimo de 21 dias. Determine pontos de entrada e saída com base no breakout DAPD.

Um sinal de entrada é gerado quando duas estratégias dão sinais alinhados.

Vantagens

A estratégia combina os méritos das estratégias de inversão e de impulso, capturando com mais precisão os pontos de virada.

  1. O filtro duplo aumenta a fiabilidade do sinal, aumenta a taxa de sucesso quando os sinais se alinham.

  2. O padrão 123 reduz o risco de arremessos.

  3. Impulso DAPD adequado para produtos de tendência.

Riscos

  1. Os sinais de duas estratégias podem não se alinhar perfeitamente.

  2. Dificuldade de ajuste de parâmetros, difícil de otimizar dois conjuntos de parâmetros juntos.

  3. Risco de duplicação dos custos de transacção.

Optimização

  1. Otimizar o alinhamento do sinal de duas estratégias.

  2. Eficácia dos ensaios de diferentes conjuntos de parâmetros em diferentes produtos.

  3. Só levem sinais de alta convicção para filtrar os mais fracos.

Conclusão

A estratégia reversal momentum composto capta o preço reversão em tempo hábil, combinando os méritos de reversão e estratégias de momento. filtros duplos aumentam a taxa de sucesso.


/*backtest
start: 2023-12-28 00:00:00
end: 2024-01-04 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 10/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
// This indicator is similar to Bollinger Bands. It based on DAPD - Daily
// Average Price Delta. DAPD is based upon a summation for each of the
// highs (hod) for the 21 days prior to today minus the summation for
// each of the lows (lod) for the last 21 days prior to today. The result
// of this calculation would then be divided by 21.
// It will be buy when high above previos DAPD high and sell if low below previos DAPD low
//
// 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

DAPD(Length) =>
    pos = 0.0
    xHighSMA = sma(high, Length)
    xLowSMA = sma(low, Length)        
    nDAPD = xHighSMA - xLowSMA
    nTop = high + nDAPD
    nBottom = low - nDAPD
    pos :=  iff(high > nTop[1], 1,
    	     iff(low < nBottom[1], -1, nz(pos[1], 0)))    
    pos

strategy(title="Combo Backtest 123 Reversal & DAPD", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDAPD = input(21, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDAPD = DAPD(LengthDAPD)
pos = iff(posReversal123 == 1 and posDAPD == 1 , 1,
	   iff(posReversal123 == -1 and posDAPD == -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.