본문 바로가기
기술지표

RMI(Relative Momentum Index) 지표: RSI의 한계를 극복한 모멘텀 매매 [지표 백과 064]

by 흔한트리이더 2026. 4. 5.
반응형

1. RSI의 잦은 휩쏘를 잠재우다: 로저 알트만의 해법

전 세계 트레이더들이 가장 사랑하는 지표인 [지표 백과 003] RSI(상대보조지수)는 치명적인 약점을 하나 가지고 있습니다. 바로 '1일 전(전일)' 대비 가격 변화만을 계산하기 때문에 자잘한 노이즈에 너무 민감하다는 것입니다. 강한 추세장에서는 70(과매수) 위에서 수시로 꺾이며 트레이더에게 성급한 익절(가짜 매도 신호)을 강요하곤 합니다.

로저 알트만(Roger Altman)은 1993년, 이 RSI 계산식에 '모멘텀 기간(Momentum Period)'이라는 변수를 추가하여 RMI(Relative Momentum Index)를 개발했습니다. 단순히 하루 전과의 가격을 비교하는 것이 아니라, 'm일 전(예: 3일 또는 5일 전)'과의 가격 차이를 비교함으로써, 자잘한 잔파도는 무시하고 시장의 굵직한 파동만을 우아하게 그려내는 진화형 RSI를 탄생시켰습니다.

2. 수리적 원리와 계산 구조

RMI는 RSI의 계산식과 99% 동일하지만, 딱 하나, 기준이 되는 과거 가격의 시점($m$)이 다릅니다. 보통 기간($n$)은 14일, 모멘텀($m$)은 3일에서 5일을 주로 사용합니다.

Step 1. 모멘텀(Momentum) 산출

현재 종가($Close_t$)에서 $m$일 전의 종가($Close_{t-m}$)를 뺍니다. (참고로 기존 RSI는 이 값이 무조건 $m=1$입니다.)

$$M_t = Close_t - Close_{t-m}$$

Step 2. 상승분(U)과 하락분(D)의 지수 평균

산출된 모멘텀 값 중 상승한 폭($U$)과 하락한 폭($D$)을 분리하여, 각각 $n$일 동안의 지수 이동평균(EMA)을 구합니다.

$$U_t = \max(M_t, 0), \quad D_t = \max(-M_t, 0)$$

$$AvgU = EMA(U_t, n), \quad AvgD = EMA(D_t, n)$$

Step 3. RMI 오실레이터 산출

평균 상승폭을 평균 하락폭으로 나눈 상대 강도(RS)를 구한 뒤, 0~100 사이의 오실레이터 값으로 정규화합니다.

$$RMI = 100 - \left[ \frac{100}{1 + \frac{AvgU}{AvgD}} \right]$$

3. 실전 매매 활용법 (노이즈가 제거된 모멘텀 판독 테이블)

잔파도를 걸러낸 RMI는 한 번 30이나 70을 뚫고 들어가거나 나올 때, 그 추세가 진짜일 확률이 RSI보다 압도적으로 높습니다.

시그널 형태 현상 설명 (지표의 움직임) 실전 매매 대응 전략 (Action)
과매도 탈출
(Oversold Breakout)
RMI가 30(과매도) 아래로 깊게 파고들었다가 30을 상향 돌파 확실한 바닥 매수 타점. 노이즈가 제거된 RMI가 30을 돌파했다는 것은 굵직한 하락 파동이 완전히 끝났음을 의미합니다.
과매수 이탈
(Overbought Breakdown)
RMI가 70(과매수) 위로 올라가 둥근 천장을 만들고 70을 하향 이탈 고점 매도 및 익절. RSI였다면 진작에 발생했을 가짜 신호를 모두 무시하고, 진짜 꼭대기에서 꺾일 때 나오는 가장 신뢰도 높은 탈출 신호입니다.
진성 다이버전스
(Divergence)
주가는 고점을 높이는데 RMI는 부드러운 산을 그리며 고점을 낮춤 강력한 추세 반전 경고. RMI는 궤적이 둥글고 부드러워 다이버전스 포착에 특화되어 있습니다. 캔들의 속임수에 당하지 않게 해 줍니다.

4. 차트에서 나타나는 수리적 특성: 조광피혁(A004700) 분석 사례

RSI의 지저분한 휩쏘를 완벽하게 다림질해 버리는 조광피혁의 RMI 비교 분석 사례입니다.

  • 가짜 하락 신호(휩쏘) 필터링: 하단 패널을 보십시오. 2025년 10월 말부터 11월 중순까지의 강한 상승 구간에서, 회색 점선인 RSI(1일 모멘텀)는 캔들의 작은 음봉 하나에도 화들짝 놀라며 70선 아래로 수시로 꺾여 가짜 매도 신호를 연발합니다. 하지만 보라색 실선의 RMI(5일 모멘텀)는 자잘한 잔파도를 모두 무시하고 과매수권(70 이상)에서 묵직한 둥근 산봉우리를 그리며 추세를 끝까지 끌고 갑니다.
  • 매끄러운 바닥 탈출: 2025년 12월 말의 하락장 끝자락을 보면, RSI는 톱니바퀴처럼 흔들리지만, RMI는 과매도권(30 이하)에서 완벽하고 매끄러운 'U자형' 계곡을 파낸 뒤 30선을 힘차게 뚫고 올라오며 진짜 바닥 타점을 정확히 짚어냅니다.

5. 장점 및 한계

  • 장점: RSI의 훌륭한 속성을 그대로 가져오면서도, 자잘한 휩쏘(가짜 신호)를 획기적으로 줄여주어 스윙 매매의 신뢰도를 극대화합니다. 지표의 곡선이 매우 매끄러워 초보자도 다이버전스를 맨눈으로 쉽게 찾을 수 있습니다.
  • 한계: 모멘텀 비교 기간($m$)을 너무 길게(예: 10일 이상) 설정할 경우, 지표가 가격 변화에 너무 둔감해져 심각한 후행성(Lagging)이 발생합니다. 진입 타점이 한 박자 늦어질 수 있으므로 스윙 트레이더에게는 $m=3$이나 $m=5$ 정도의 설정이 가장 이상적입니다.

6. 파이썬 구현 (RSI와 RMI 벡터 연산 비교)

판다스(Pandas)의 diff(periods=m)을 사용하여 모멘텀 변수를 동적으로 통제하는 깔끔한 퀀트 코드입니다. clip() 함수로 상승과 하락 에너지를 분리하고, 지수 이동평균(ewm)을 거쳐 우아한 RMI 선을 계산해 냅니다.

import pandas as pd

def calculate_rmi(df, period=14, momentum=5):
    # 1. m일 전 종가와의 차이 (Momentum)
    diff = df['close'].diff(periods=momentum)
    
    # 2. 상승분(Up)과 하락분(Down) 분리
    up = diff.clip(lower=0)
    down = -1 * diff.clip(upper=0)
    
    # 3. 각각의 지수 이동평균(EMA) 계산
    ema_up = up.ewm(span=period, adjust=False).mean()
    ema_down = down.ewm(span=period, adjust=False).mean()
    
    # 4. RS 및 RMI 산출
    rs = ema_up / ema_down
    df[f'RMI_{period}_{momentum}'] = 100 - (100 / (1 + rs))
    
    return df

7. 실전 Tip 및 요약

전문 트레이더들은 RMI의 중심선(50선) 돌파를 매우 중요하게 생각합니다. RMI가 50선을 상향 돌파했다는 것은 과거 $m$일 전 가격 대비 상승 모멘텀이 하락 모멘텀을 완전히 압도하기 시작했다는 강력한 매수 우위의 증거입니다. RSI보다 잔파도가 적은 RMI가 50선을 돌파할 때 거래량이 실린 종목을 공략하면 높은 승률을 거둘 수 있습니다.


*본 포스팅은 기술적 지표의 수리적 이해를 돕기 위한 참고 자료이며, 투자 결과에 대한 책임은 투자자 본인에게 있습니다.*
반응형