Stratégie de l'indice de dynamique relative

Auteur:ChaoZhang est là., Date: 2023-11-02 17:21:45 Je vous en prie.
Les étiquettes:

img

Résumé

La stratégie relative de l'indice de dynamique (RMI) est une version améliorée basée sur l'indice de dynamique.

La logique de la stratégie

La formule de calcul de l'IMR est la suivante:

xMom = xPrice - xPrice[Length]  // Price change over Length periods
xMU = If xMom >= 0: previous xMU minus xMU/Length plus xMom; else: previous xMU
xMD = If xMom <= 0: previous xMD minus xMD/Length plus absolute value of xMom; else: 0 
RM = xMU / xMD
RMI = 100 * (RM / (1 + RM))

Comptez d'abord la variation de prix xMom sur des périodes de longueur. Si xMom>=0, ce qui signifie que le prix augmente, accumulez-le en xMU; si xMom<0, ce qui signifie que le prix chute, accumulez sa valeur absolue en xMD. RM est le rapport entre xMU et xMD, représentant l'élan des hauts et des bas.

Lorsque le RMI est supérieur au seuil SellZone, le marché est suracheté, allez court.

Les avantages

  • Comparé au RSI, le RMI est plus sensible et peut saisir les opportunités de renversement plus tôt.
  • L'IMR mesure la dynamique des hausses et des baisses, moins affectée par la consolidation.
  • Sur la base de la dynamique, le RMI peut mieux déterminer le statut de surachat/survente.

Les risques

  • Comme les autres stratégies d'inversion, le RMI risque d'être arrêté par des tendances fortes.
  • Les paramètres RMI doivent être optimisés pour différents produits, sinon les résultats peuvent être médiocres.
  • Les seuils de surachat/de survente doivent être fixés de manière raisonnable, faute de quoi il peut y avoir trop de faux signaux.

Les risques peuvent être réduits en élargissant le stop loss, en optimisant les paramètres, en les combinant avec des stratégies de tendance, etc.

Amélioration

La stratégie RMI peut être améliorée par les aspects suivants:

  • Optimiser le paramètre Longueur pour maximiser le retour.
  • Optimiser les seuils de surachat/survente pour réduire les faux signaux.
  • Ajouter un stop loss pour contrôler une seule perte.
  • Combinez avec des stratégies de suivi de tendance ou de moyenne mobile pour augmenter le taux de gain.
  • Sélectionner les sessions de négociation appropriées en fonction des caractéristiques du produit pour améliorer la stabilité.

Conclusion

La stratégie RMI capte les opportunités de rebond à court terme en mesurant les changements de dynamique des prix. Par rapport au RSI, le RMI est plus sensible et plus robuste à la consolidation. Mais il existe des risques d'arrêt. Les paramètres doivent être optimisés et combinés avec des stratégies de tendance pour maximiser les performances.


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/10/2017
// 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".   
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Relative Momentum Index", shorttitle="RMI")
xPrice = close
Length = input(20, minval=1)
BuyZone = input(40, minval=1)
SellZone = input(70, minval=1)
reverse = input(false, title="Trade reverse")
// hline(0, color=gray, linestyle=dashed)
// hline(SellZone, color=red, linestyle=line)
// hline(BuyZone, color=green, linestyle=line)
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))) 
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)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )  
plot(nRes, color=blue, title="RMI")

Plus de