Uma estratégia de negociação de índices de impulso de inversão dupla

Autora:ChaoZhang, Data: 2024-02-06 09:29:34
Tags:

img

Resumo

A estratégia de Índice de Momentum de Reversão Dupla combina uma estratégia de Reversão 123 e uma estratégia de Índice de Momentum Relativo (RMI).

Princípio da estratégia

A estratégia consiste em duas partes:

  1. 123 Estratégia de reversão

    • Long quando o fechamento de ontem é menor que os dias anteriores e o fechamento de hoje é maior que os dias anteriores, e o Slow K de 9 dias é menor que 50
    • Curto quando o fechamento de ontem é maior do que os dias anteriores e o fechamento de hoje é menor do que os dias anteriores, e o Fast K de 9 dias é superior a 50
  2. Estratégia do Índice de Impulso Relativo (RMI)

    • O RMI é uma variação do RSI com um componente de momento adicionado.
    • Long quando o RMI é inferior à linha de sobrecompra; Short quando o RMI é superior à linha de sobrevenda

A estratégia só gera sinais de negociação quando o 123 Reversal e o RMI dão sinais duplos alinhados.

Análise das vantagens

As vantagens desta estratégia incluem:

  1. Melhoria da precisão do sinal com indicadores duplos
  2. Técnicas de reversão adequadas para mercados de intervalo
  3. RMI sensível para identificar pontos de virada de tendências fortes

Análise de riscos

Há também alguns riscos:

  1. Os filtros duplos podem perder algumas oportunidades comerciais
  2. Os sinais de reversão podem ter erros de julgamento
  3. Configurações incorretas dos parâmetros do RMI podem afetar a eficiência

Estes riscos poderiam ser reduzidos através do ajustamento dos parâmetros e da otimização dos cálculos dos indicadores.

Orientações de otimização

A estratégia pode ser melhorada através de:

  1. Teste de diferentes combinações de parâmetros para encontrar o óptimo
  2. Tentar diferentes combinações de indicadores de reversão, por exemplo, KDJ, MACD
  3. Ajuste da fórmula do IMR para torná-la mais sensível
  4. Adição de mecanismos de stop loss para controlar perdas únicas
  5. Combinar o volume de negociação para evitar falsos sinais

Conclusão

A estratégia do Índice de Momentum de Reversão Dupla pode efetivamente melhorar a precisão das decisões de negociação e reduzir a chance de sinais errados através da filtragem dupla de sinais e otimização de parâmetros.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 07/06/2021
// 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 Relative Momentum Index (RMI) was developed by Roger Altman. Impressed 
// with the Relative Strength Index's sensitivity to the number of look-back 
// periods, yet frustrated with it's inconsistent oscillation between defined 
// overbought and oversold levels, Mr. Altman added a momentum component to the RSI.
// As mentioned, the RMI is a variation of the RSI indicator. Instead of counting 
// up and down days from close to close as the RSI does, the RMI counts up and down 
// days from the close relative to the close x-days ago where x is not necessarily 
// 1 as required by the RSI). So as the name of the indicator reflects, "momentum" is 
// substituted for "strength". 
//
// 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


RMI(Length,BuyZone, SellZone) =>
    pos = 0.0
    xMU = 0.0
    xMD = 0.0
    xPrice = close
    xMom = xPrice - xPrice[Length]
    xMU := iff(xMom >= 0, nz(xMU[1], 1) - (nz(xMU[1],1) / Length) + xMom, nz(xMU[1], 1))
    xMD := iff(xMom <= 0, nz(xMD[1], 1) - (nz(xMD[1],1) / Length) + abs(xMom), nz(xMD[1], 0))
    RM = xMU / xMD
    nRes = 100 * (RM / (1+RM))
    pos:= iff(nRes < BuyZone, 1,
    	   iff(nRes > SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Relative Momentum Index", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Relative Momentum Index ----")
LengthRMI = input(20, minval=1)
BuyZone = input(40, minval=1)
SellZone = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRMI = RMI(LengthRMI,BuyZone, SellZone)
pos = iff(posReversal123 == 1 and posRMI == 1 , 1,
	   iff(posReversal123 == -1 and posRMI == -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.