
L’indice de momentum relatif (RMI) est une stratégie basée sur l’indice de momentum. La stratégie consiste à calculer la dynamique des variations de prix sur une période donnée pour déterminer si le marché est en sur-achat ou en sur-vente afin de saisir les opportunités de retournement.
La formule de calcul de la stratégie RMI est la suivante:
xMom = xPrice - xPrice[Length] //计算Length周期内的价格变动
xMU = 如果xMom >= 0:之前xMU减去xMU/Length加上xMom;否则:之前xMU
xMD = 如果xMom <= 0:之前xMD减去xMD/Length加上xMom的绝对值;否则:0
RM = xMU / xMD
RMI = 100 * (RM / (1 + RM))
La stratégie commence par calculer la variation des prix sur la période de Longueur xMom. Si xMom> = 0, la hausse des prix est exprimée par xMU plus xMom; si xMom < 0, la baisse des prix est exprimée par xMD plus xMom. Le RM est le rapport entre xMU et xMD, représentant la force de baisse.
Lorsque le RMI est supérieur à la zone de dépréciation de SellZone, cela signifie que l’on est en sur-achat et en short; lorsque le RMI est inférieur à la zone de dépréciation de BuyZone, cela signifie que l’on est en sur-vente et que l’on fait plus.
Il est possible de réduire le risque en assouplissant de manière appropriée les points de rupture, en optimisant les combinaisons de paramètres et en les combinant avec les stratégies de tendance.
Les stratégies RMI peuvent être optimisées dans les domaines suivants:
La stratégie RMI est plus sensible que la stratégie RSI et résiste aux chocs. Cependant, la stratégie est toujours exposée au risque d’être ajustée et doit optimiser les paramètres et être utilisée en conjonction avec la stratégie de tendance pour être efficace.
/*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")