1. 상승 에너지와 하락 에너지를 분리하여 해부하다: DMI의 탄생
우리가 앞서 살펴본 001번 단순 이동평균선(SMA)이나 일반적인 모멘텀 지표들은 시장의 평균적인 방향을 '단일한 선'으로 뭉뚱그려 보여줍니다. 하지만 천재적인 지표 개발자 웰스 와일더(J. Welles Wilder)는 시장의 본질을 다르게 보았습니다. 시장은 결국 매수세(Bulls)와 매도세(Bears)가 벌이는 끝없는 줄다리기입니다.
방향성 지수(Directional Movement Index, DMI)는 주가를 위로 끌어올리려는 상승 에너지인 +DI(Positive Directional Indicator)와, 아래로 짓누르려는 하락 에너지인 -DI(Negative Directional Indicator)를 각각 완벽히 분리하여 계산합니다. 이 두 선이 엎치락뒤치락하며 교차하는 지점을 관찰함으로써, 트레이더는 현재 시장의 주도권을 누가 쥐고 있는지 투명하게 판독해 낼 수 있습니다.
2. 수리적 원리와 계산 구조
DMI는 당일 주가의 움직임이 전일 대비 어느 방향으로 더 많이 확장되었는지를 측정하여 방향성(DM)을 도출하고, 이를 전체 변동폭(TR)으로 나누어 0~100 사이의 백분율로 규격화합니다.
Step 1. 진정한 변동폭(TR) 및 방향적 움직임(DM) 추출
먼저 024번 ATR 지표에서 다루었던 진정한 변동폭(True Range, TR)을 구하여 캔들 하나가 가진 전체 에너지를 측정합니다. 그 후, 전일 고가 대비 당일 고가가 더 올랐다면 상승 방향성(+DM)으로, 전일 저가 대비 당일 저가가 더 내렸다면 하락 방향성(-DM)으로 엄격하게 분류합니다.
Step 2. 지수 평활 및 방향성 지수(+DI, -DI) 도출
추출된 +DM과 -DM, 그리고 TR을 지정된 기간(기본 14일) 동안 002번 지수 이동평균선(EMA) 방식으로 부드럽게 평활화(Smoothing)합니다. 마지막으로 평활화된 방향성을 평활화된 전체 변동폭으로 나누어 지수를 완성합니다.
3. 실전 매매 활용법 (크로스오버 전략)
분리된 두 개의 힘(+DI와 -DI)이 만들어내는 위치와 교차점은 가장 직관적이고 훌륭한 매매 시그널을 제공합니다.
| 시그널 형태 | 현상 설명 | 실전 매매 대응 (Action) |
|---|---|---|
| +DI 상향 돌파 (골든 크로스) |
+DI가 -DI를 아래에서 위로 뚫고 올라감 | 매수 진입. 상승 에너지가 하락 에너지를 압도하며 새로운 상승 추세가 시작됨을 알립니다. |
| -DI 상향 돌파 (데드 크로스) |
-DI가 +DI를 아래에서 위로 뚫고 올라감 | 매도 및 관망. 매도세가 시장을 완전히 장악했으므로 즉시 현금화하거나 숏(매도) 포지션을 잡습니다. |
| 두 선의 이격 확대 | +DI와 -DI 사이의 간격이 점점 벌어짐 | 추세 홀딩. 현재 진행 중인 추세(상승이든 하락이든)가 극도로 강해지고 있음을 뜻하므로 포지션을 길게 유지합니다. |
| 두 선의 잦은 교차 (뱀처럼 꼬임) |
두 선이 좁은 구간에서 지속적으로 엉킴 | 매매 보류. 상승과 하락의 힘이 팽팽한 횡보장(박스권)입니다. 방향성이 나올 때까지 무조건 관망해야 합니다. |
4. 차트에서 나타나는 수리적 특성: 데브시스터즈(A194480) 분석 사례
시장을 억누르던 거대한 매도세가 꺾이고 새로운 힘이 탄생하는 순간을 데브시스터즈의 차트로 확인해 보겠습니다.

- 하락장의 완벽한 포착: 2025년 9월 하순부터 12월 말까지 이어진 기나긴 하락장을 보십시오. 하단 패널을 보면 푸른색 -DI 선이 붉은색 +DI 선 위를 완벽하게 압도하며 시장을 짓누르고 있습니다. 푸른색 배경 영역이 지속되는 이 기간은 매도세(Bears)가 주도권을 장악한 상태로, 절대 섣불리 매수에 가담해서는 안 되는 위험 구간임을 수리적으로 경고합니다.
- 추세의 반전과 매수 타점(골든 크로스): 2025년 12월 말에서 2026년 1월 초, 바닥을 다진 주가가 반등을 시작할 때 하단 패널에서 극적인 변화가 일어납니다. 붉은색 +DI 선이 푸른색 -DI 선을 아래에서 위로 강하게 뚫고 솟구치는 가장 확실한 '골든 크로스' 매수 시그널이 발생합니다. 이후 붉은색 영역(+DI 우위)이 넓게 확장되며 주가가 단숨에 랠리를 이어가는 폭발적인 에너지를 확인할 수 있습니다.
5. 장점 및 한계
- 장점: 상승 추세와 하락 추세 중 어느 쪽이 압도적인지 한눈에 직관적으로 파악할 수 있습니다. +DI가 -DI 위에 머물러 있다면, 시장은 굳건한 상승장이며 섣부른 익절보다는 매수 포지션을 여유 있게 홀딩해야 할 수학적 근거가 됩니다.
- 한계: 뚜렷한 추세가 없는 횡보장에서는 최악의 단점이 나타납니다. 주가가 좁은 박스권에 갇혀 있을 때 두 선은 마치 뱀처럼 서로 수시로 꼬이며 끝없는 가짜 신호(휩쏘)를 만들어냅니다. 따라서 시장에 '추세' 자체가 존재하는지 판독해 주는 ADX(Average Directional Index) 지표와의 결합이 필수적이며, 이는 추후 별도의 지표 백과에서 상세히 다룰 예정입니다.
6. 파이썬 구현 (조건부 벡터 연산과 지수 평활)
판다스와 넘파이를 활용하여 상승폭과 하락폭 중 어느 것이 더 큰지 np.where 로직으로 정밀하게 분류하고, 이를 ewm()으로 평활화하여 두 개의 에너지를 분리해 내는 알고리즘 트레이딩 코드입니다.
import pandas as pd
import numpy as np
def calculate_dmi(df, period=14):
# 1. 상승 변동폭(up_move)과 하락 변동폭(down_move) 계산
up_move = df['high'] - df['high'].shift(1)
down_move = df['low'].shift(1) - df['low']
# 2. +DM 및 -DM 엄격한 조건부 추출
df['+DM'] = np.where((up_move > down_move) & (up_move > 0), up_move, 0)
df['-DM'] = np.where((down_move > up_move) & (down_move > 0), down_move, 0)
# 3. TR(True Range) 산출
tr1 = df['high'] - df['low']
tr2 = (df['high'] - df['close'].shift(1)).abs()
tr3 = (df['low'] - df['close'].shift(1)).abs()
df['TR'] = pd.concat([tr1, tr2, tr3], axis=1).max(axis=1)
# 4. 14일 지수 평활 적용 후 +DI, -DI 산출 (0~100 백분율)
ema_plus_dm = df['+DM'].ewm(span=period, adjust=False).mean()
ema_minus_dm = df['-DM'].ewm(span=period, adjust=False).mean()
ema_tr = df['TR'].ewm(span=period, adjust=False).mean()
df['+DI'] = 100 * (ema_plus_dm / ema_tr)
df['-DI'] = 100 * (ema_minus_dm / ema_tr)
return df
7. 실전 Tip 및 요약
DMI에서 명심해야 할 것은 단 하나, "누가 위에 있는가?"입니다. 시장의 수많은 호재 뉴스와 주변 사람들의 추천이 쏟아져도, 여러분의 HTS 차트에서 푸른색 -DI 선이 붉은색 +DI 선 위에서 군림하고 있다면 그 주식은 쳐다보지도 마십시오. 시장의 절대적인 힘은 하락을 가리키고 있기 때문입니다. 방향성 지수는 여러분의 계좌를 무너지는 하락장으로부터 지켜주는 가장 냉정한 파수꾼입니다.
'기술지표' 카테고리의 다른 글
| 촙피니스 인덱스(CHOP) 지표: 횡보장 가짜 신호(휩쏘) 피하는 법 [지표 백과 036] (1) | 2026.03.08 |
|---|---|
| ROC(Rate of Change) 지표를 활용한 주가 모멘텀(속도) 분석 [지표 백과 035] (0) | 2026.03.07 |
| 포스 인덱스(Force Index) 차트 설정 및 가격과 거래량 융합 분석 [지표 백과 033] (0) | 2026.03.05 |
| 돈치안 채널(Donchian Channel) 파이썬 백테스트 및 터틀 트레이딩 [지표 백과 032] (0) | 2026.03.04 |
| 윌리엄스 %R 지표 단기 과매도/과매수 헌팅 실전 매매 기법 [지표 백과 031] (1) | 2026.03.03 |