
Strategi Relative Momentum Index (RMI) adalah strategi penyesuaian berdasarkan indeks momentum. Strategi ini menilai apakah pasaran berada dalam keadaan overbought atau oversold dengan mengira dinamik perubahan harga dalam jangka masa tertentu untuk menangkap peluang berbalik.
Formula pengiraan untuk strategi RMI adalah seperti berikut:
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))
Strategi ini mula mengira perubahan harga dalam tempoh Length xMom. Jika xMom> = 0, harga naik, maka xMU ditambah xMom; jika xMom < 0, harga turun, maka xMD ditambah xMom. Nilai mutlak.
Apabila RMI lebih tinggi daripada nilai terendah SellZone, ia menunjukkan overbuy, shorting; apabila RMI lebih rendah daripada nilai terendah BuyZone, ia menunjukkan oversell, melakukan lebih banyak.
Risiko boleh dikurangkan dengan cara yang sesuai untuk melonggarkan titik berhenti, mengoptimumkan kombinasi parameter, dan menggabungkan strategi trend.
Strategi RMI boleh dioptimumkan dalam beberapa aspek:
Strategi RMI dengan mengukur perubahan dinamik harga, melakukan operasi pembalikan, dapat menangkap peluang pemulihan garis pendek dengan berkesan. Berbanding dengan strategi RSI, strategi RMI lebih sensitif dan tidak terjejas oleh guncangan.
/*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")