1. 추세 지표의 오랜 딜레마를 깨다: HMA의 탄생
주식 시장에서 이동평균선을 연구하다 보면 피할 수 없는 딜레마에 빠지게 됩니다. 선을 부드럽게 만들어 가짜 신호(노이즈)를 없애려면 계산 기간을 늘려야 하는데, 그러면 차트의 반응이 늦어지는 '후행성(Lagging)'이 치명적으로 커집니다. 반대로 후행성을 없애려고 기간을 짧게 하거나 가중치를 강하게 주면, 선이 톱니바퀴처럼 요동쳐 끝없는 휩쏘(거짓 신호)에 당하게 됩니다.
2005년, 호주의 트레이더이자 수학자인 앨런 헐(Alan Hull)은 이 오랜 모순을 깨기 위해 독창적인 수식을 고안했습니다. 007번 가중 이동평균선(WMA)의 특성과 제곱근을 활용하여, "최근 가격에 극도로 민감하게 반응하여 지연이 거의 없으면서도, 곡선의 형태는 기가 막히게 부드러운" 헐 이동평균선(Hull Moving Average, HMA)을 탄생시킨 것입니다.
2. 수리적 원리와 계산 구조
HMA는 과거 데이터의 비중을 덜어내고 최근 가격에 가중치를 몰아주는 3단계의 정교한 수리적 과정을 거칩니다.
Step 1. 최근 데이터에 극단적 가중치 부여 (반주기 WMA)
전체 기간($N$)의 절반($N/2$)에 해당하는 가중 이동평균(WMA)을 구한 뒤, 여기에 2를 곱하여 최근 데이터에 대한 반응성을 폭발적으로 끌어올립니다.
Step 2. 과거 데이터의 무게 상쇄 (전체 주기 WMA 차감)
위에서 구한 값에 전체 기간($N$)의 일반 가중 이동평균(WMA)을 빼줍니다. 이 과정을 통해 오래된 과거 데이터가 멱살을 잡고 끌어내리는 고질적인 '후행성'이 수학적으로 완벽히 제거됩니다.
Step 3. 제곱근을 통한 평활화 (노이즈 제거)
반응성은 극대화되었지만 선이 너무 거칠어졌으므로, 전체 기간($N$)의 제곱근($\sqrt{N}$)을 계산 기간으로 삼아 한 번 더 WMA로 평활화(Smoothing)를 진행합니다.
3. 실전 매매 활용법 (이동평균선 3종 특성 비교)
우리가 지금까지 배운 3대 핵심 이동평균선은 각자의 뚜렷한 목적과 수학적 성질을 가지고 있습니다.
| 구분 | 단순 이동평균 (SMA) | 지수 이동평균 (EMA) | 헐 이동평균 (HMA) |
|---|---|---|---|
| 반응 속도 | 가장 느림 (후행성 큼) | 빠름 | 가장 빠름 (지연 거의 없음) |
| 곡선의 부드러움 | 부드러움 | 다소 거침 (노이즈 존재) | 매우 부드러움 (유려한 곡선) |
| 주 활용 목적 | 장기적인 대추세 확인 (예: 120일 경기선) |
단기 타점 및 골든 크로스 포착 (예: 20일 세력선) |
즉각적인 추세 전환 방향 판독 및 스윙 진입/청산 |
4. 차트에서 나타나는 수리적 특성: 나무가(A190510) 분석 사례
속도와 부드러움의 차이가 시각적으로 어떻게 드러나는지 나무가의 차트를 통해 완벽하게 비교해 보겠습니다.

- 지연 없는 찰진 밀착력: 2025년 12월 하순, 주가가 가파른 랠리를 시작할 때 붉은색 굵은 선인 HMA 20을 보십시오. 과거 데이터에 발목이 잡힌 주황색 SMA 20이나 한 박자 늦게 따라오는 파란색 EMA 20과 달리, HMA는 캔들의 상승 궤적에 마치 그림자처럼 찰싹 달라붙어 지연(Lag) 없이 가파르게 솟구칩니다.
- 가장 빠른 변곡점 포착: 2026년 1월 중순, 주가가 단기 고점을 찍고 꺾이는 찰나의 순간이 압권입니다. SMA는 여전히 위를 향해 바보같이 올라가고 있고 EMA도 서서히 눕기 시작하지만, HMA만이 즉각적으로 기울기를 아래로 꺾으며 가장 먼저 하락 변곡점을 잡아내어 완벽한 청산(매도) 시그널을 제공합니다.
5. 장점 및 한계
- 장점: 가격 변동의 찰나를 잡아내는 속도 면에서는 현존하는 이동평균선 중 감히 최고 수준이라 할 수 있습니다. 캔들의 움직임을 즉각적으로 따라가면서도 스무딩(Smoothing) 처리가 완벽하여, 추세 방향의 전환(위에서 아래로, 아래에서 위로)을 시각적으로 파악하기가 매우 수월합니다.
- 한계: 반응 속도를 극한으로 끌어올린 대가는 혹독할 수 있습니다. 주가가 거대한 상승 추세를 타는 도중 단 하루이틀만 조정을 받으며 쉬어가도, HMA는 즉각적으로 밑으로 꺾여버립니다. 이로 인해 거대한 상승 랠리를 끝까지 먹지 못하고 너무 일찍 팔아버리는 '조기 청산(Premature Exit)'의 함정에 빠질 수 있으므로, 단기 트레이딩 위주로 사용하거나 더 긴 주기의 추세 지표와 결합해야 합니다.
6. 파이썬 구현 (WMA 헬퍼 함수와 제곱근 연산)
판다스(Pandas)에는 내장된 HMA 함수가 없으므로, 먼저 가중 이동평균(WMA)을 계산하는 calculate_wma 헬퍼 함수를 선언한 뒤 이를 3번 호출하여 HMA를 우아하게 조립해 내는 알고리즘입니다.
import pandas as pd
import numpy as np
# WMA(가중 이동평균)를 계산하는 헬퍼 함수
def calculate_wma(series, period):
weights = np.arange(1, period + 1)
# np.dot을 활용한 백터 내적으로 가중 평균을 초고속 연산합니다.
return series.rolling(window=period).apply(lambda x: np.dot(x, weights) / weights.sum(), raw=True)
def calculate_hma(df, period=20):
# 1. 반주기(N/2) WMA 계산 (최근 데이터 가중치 극대화)
half_length = int(period / 2)
wma_half = calculate_wma(df['close'], half_length)
# 2. 전체 주기(N) WMA 계산
wma_full = calculate_wma(df['close'], period)
# 3. 원시 HMA 산출 (후행성 수학적 제거)
raw_hma = (2 * wma_half) - wma_full
# 4. 제곱근 주기(sqrt(N)) WMA로 최종 스무딩(노이즈 제거)
sqrt_length = int(np.sqrt(period))
df[f'HMA_{period}'] = calculate_wma(raw_hma, sqrt_length)
return df
7. 실전 Tip 및 요약
HMA를 활용한 가장 직관적이고 승률 높은 기법은 '기울기 변환(Slope Change) 전략'입니다. HMA 선이 아래를 향하며 하락하던 종목이, 기울기가 평평해지고 위로 고개를 드는(상승 전환) 바로 그 곡선의 변곡점에서 매수하십시오. 지연(Lag)이 거의 없기 때문에 다른 트레이더들이 SMA나 EMA의 느릿느릿한 골든 크로스를 기다리는 동안, 당신은 바닥에서 가장 먼저 턴어라운드하는 진입 타점을 기민하게 선점할 수 있습니다.
'기술지표' 카테고리의 다른 글
| 역사적 변동성(HV) 지표 수식 및 옵션/파생상품 리스크 측정 [지표 백과 040] (0) | 2026.03.12 |
|---|---|
| 스토캐스틱 RSI (Stoch RSI) 실전 활용법: 지표의 지표로 타점 좁히기 [지표 백과 039] (0) | 2026.03.11 |
| EOM(Ease of Movement) 지표: 적은 거래량으로 급등하는 종목 찾기 [지표 백과 037] (0) | 2026.03.09 |
| 촙피니스 인덱스(CHOP) 지표: 횡보장 가짜 신호(휩쏘) 피하는 법 [지표 백과 036] (1) | 2026.03.08 |
| ROC(Rate of Change) 지표를 활용한 주가 모멘텀(속도) 분석 [지표 백과 035] (0) | 2026.03.07 |