Strategi Indeks Momentum Relatif

Penulis:ChaoZhang, Tarikh: 2023-11-02 17:21:45
Tag:

img

Ringkasan

Strategi Indeks Momentum Relatif (RMI) adalah versi yang lebih baik berdasarkan indeks momentum. Ia mengira momentum harga dalam tempoh untuk menentukan sama ada pasaran terlalu banyak dibeli atau terlalu banyak dijual, untuk menangkap peluang pembalikan.

Logika Strategi

Formula pengiraan RMI adalah seperti berikut:

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))

Mula-mula mengira perubahan harga xMom dalam tempoh Panjang. Jika xMom>=0, yang bermaksud harga meningkat, akumulasikan ke dalam xMU; jika xMom<0, yang bermaksud harga turun, akumulasi nilai mutlaknya ke dalam xMD. RM adalah nisbah antara xMU dan xMD, yang mewakili momentum kenaikan dan penurunan. RMI menormalkan RM ke dalam julat 0-100.

Apabila RMI lebih tinggi daripada ambang SellZone, pasaran overbought, pergi pendek.

Kelebihan

  • Berbanding dengan RSI, RMI lebih sensitif dan dapat menangkap peluang pembalikan lebih awal.
  • RMI mengukur momentum kenaikan dan penurunan, kurang dipengaruhi oleh penyatuan.
  • Berdasarkan momentum, RMI dapat menentukan status overbought/oversold dengan lebih baik.

Risiko

  • Seperti strategi pembalikan lain, RMI mempunyai risiko dihentikan oleh trend yang kuat. Isyarat panjang boleh dilanggar.
  • Parameter RMI perlu dioptimumkan untuk produk yang berbeza, jika tidak, hasilnya mungkin buruk.
  • Sempadan overbought/oversold perlu ditetapkan dengan munasabah, jika tidak, terlalu banyak isyarat palsu boleh berlaku.

Risiko boleh dikurangkan dengan memperluaskan stop loss, mengoptimumkan parameter, menggabungkan dengan strategi trend dll.

Peningkatan

Strategi RMI boleh ditingkatkan dari aspek berikut:

  • Mengoptimumkan parameter Length untuk memaksimumkan pulangan.
  • Mengoptimumkan ambang overbought / oversold untuk mengurangkan isyarat palsu.
  • Tambah stop loss untuk mengawal kerugian tunggal.
  • Gabungkan dengan strategi mengikut trend atau purata bergerak untuk meningkatkan kadar kemenangan.
  • Pilih sesi dagangan yang sesuai berdasarkan ciri produk untuk meningkatkan kestabilan.

Kesimpulan

Strategi RMI menangkap peluang mundur jangka pendek dengan mengukur perubahan momentum harga. Berbanding dengan RSI, RMI lebih sensitif dan kuat terhadap penyatuan. Tetapi risiko dihentikan ada. Parameter perlu dioptimumkan dan digabungkan dengan strategi trend untuk memaksimumkan prestasi.


/*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")

Lebih lanjut