NOONOO TRADING봇에서 시작하기

헐 이동평균(HMA) — 지연을 줄인 이동평균의 계산법과 한계

이동평균은 노이즈를 걸러 주는 대신 항상 늦습니다. 기간을 길게 잡으면 매끄럽지만 더 늦고, 짧게 잡으면 빠르지만 들쭉날쭉합니다. 헐 이동평균(Hull Moving Average, HMA)은 이 둘 사이의 교환 관계를 계산으로 비틀어, 매끄러움을 크게 잃지 않으면서 지연을 줄이도록 만든 이동평균입니다. 공식은 짧지만 왜 빨라지는지, 대신 무엇을 잃는지를 함께 알아야 제대로 쓸 수 있습니다.

이동평균이 늦는 이유

이동평균선은 과거 n개 가격의 평균입니다. 평균은 창의 한가운데 시점을 대표하므로, 가격이 일정하게 오르는 구간에서는 이동평균이 현재가보다 일정 간격 뒤처집니다. 이 간격을 지연(lag)이라고 부릅니다.

단순이동평균(SMA)은 모든 가격에 같은 가중치를 주므로 지연이 (n − 1) ÷ 2 봉입니다. 가중이동평균(WMA)은 최근 가격에 1, 2, 3 … n 의 선형 가중치를 줘서 무게중심을 앞으로 당기고, 지연이 (n − 1) ÷ 3 봉으로 줄어듭니다. 지수이동평균(EMA)도 같은 발상으로 최근 값에 무게를 더 줍니다. 차이는 EMA와 SMA 비교 글에서 다뤘습니다.

지연 비교 (가정 · 가격이 봉마다 정확히 +1씩 오르는 직선 추세)

기간 n = 16
SMA 지연 = (16 − 1) ÷ 2 = 7.5봉
WMA 지연 = (16 − 1) ÷ 3 = 5봉

현재가 159 일 때
 SMA(16) = 151.5  (7.5 아래)
 WMA(16) = 154.0  (5 아래)

─────────────
가중치를 앞으로 옮겨도 지연은 줄 뿐 사라지지 않는다

가중치 조정만으로는 한계가 있습니다. 앨런 헐(Alan Hull)이 2005년에 제안한 HMA는 여기서 한 걸음 더 나아가, 지연의 크기를 계산으로 추정해 되돌려 더하는 방식을 씁니다.

HMA 공식 — 세 단계

HMA(n) 계산 순서

① A = WMA(가격, n ÷ 2)
② B = WMA(가격, n)
③ 원시값 R = 2 × A − B
④ HMA = WMA(R, √n)

n ÷ 2 와 √n 이 정수가 아니면 보통 내림(정수부)을 쓴다
예: n = 16 → 8, 4  /  n = 20 → 10, 4  /  n = 9 → 4, 3

핵심은 ③입니다. 짧은 WMA(A)는 덜 늦고, 긴 WMA(B)는 더 늦습니다. 둘의 차이 A − B 는 "짧은 평균이 긴 평균보다 얼마나 앞서 있는가", 즉 최근 추세의 크기에 비례합니다. 이 차이를 A에 한 번 더 더하면(2A − B = A + (A − B)) 지연을 상쇄하는 방향으로 값이 앞당겨집니다.

그런데 R은 앞당기는 과정에서 노이즈도 함께 키웁니다. 그래서 마지막에 짧은 기간 √n 의 WMA로 한 번 더 다듬습니다. 기간이 짧아 지연은 조금만 다시 생기고, 들쭉날쭉함은 상당 부분 정리됩니다.

4기간 예시로 직접 계산하기

손으로 따라갈 수 있도록 n = 4 로 계산해 봅니다. n ÷ 2 = 2, √4 = 2 입니다. WMA(2)의 가중치는 1·2(합 3), WMA(4)의 가중치는 1·2·3·4(합 10)입니다.

종가 (가정)
100 · 102 · 104 · 103 · 107 · 110 · 108

6번째 봉 (종가 110)
A = WMA(2) = (107×1 + 110×2) ÷ 3 = 327 ÷ 3 = 109.0
B = WMA(4) = (104×1 + 103×2 + 107×3 + 110×4) ÷ 10 = 1071 ÷ 10 = 107.1
R = 2 × 109.0 − 107.1 = 110.9

7번째 봉 (종가 108)
A = (110×1 + 108×2) ÷ 3 = 326 ÷ 3 = 108.667
B = (103×1 + 107×2 + 110×3 + 108×4) ÷ 10 = 1079 ÷ 10 = 107.9
R = 2 × 108.667 − 107.9 = 109.433

HMA (7번째 봉) = WMA(R, 2)
= (110.9×1 + 109.433×2) ÷ 3 = 329.767 ÷ 3 = 109.922

같은 봉의 SMA(4) = (103 + 107 + 110 + 108) ÷ 4 = 107.0

종가가 108 로 한 봉 밀렸는데도 HMA는 109.9 에 있습니다. 직전까지의 상승 흐름을 반영해 SMA보다 약 2.9 높은 자리, 즉 최근 가격 쪽에 붙어 있습니다. 이 "앞당김"이 HMA의 장점이자 아래에서 볼 약점의 원인입니다.

지연이 얼마나 줄어드나

같은 직선 추세(봉마다 +1)에 n = 16 HMA를 적용하면 결과는 다음과 같습니다.

n = 16 · 직선 추세 · 현재가 159 (가정)

A = WMA(8)  지연 (8−1)÷3 = 2.333봉
B = WMA(16) 지연 5봉
R = 2A − B  → 지연 2×2.333 − 5 = −0.333봉 (오히려 앞섬)
HMA = WMA(R, 4) → WMA(4) 지연 1봉 추가
 최종 지연 = −0.333 + 1 = 약 0.667봉

SMA(16) 151.5 · WMA(16) 154.0 · HMA(16) 158.333

─────────────
지연: SMA 7.5봉 → WMA 5봉 → HMA 약 0.7봉

직선 추세라는 이상적인 조건에서는 HMA가 현재가와 거의 붙어 다닙니다. 실제 차트는 직선이 아니므로 이 정도로 줄지는 않지만, 같은 기간의 SMA·EMA보다 방향 전환이 빨리 보이는 경향은 일반적으로 유지됩니다.

대가 — 급변 구간의 오버슈트

HMA는 "최근 흐름이 계속된다"는 가정으로 값을 앞당깁니다. 가격이 갑자기 뛰고 멈추면 그 가정이 틀리고, HMA는 실제 가격을 지나쳐 버립니다. 이것을 오버슈트라고 합니다.

계단형 변화 · n = 16 (가정)

가격이 100 에서 머물다 한 봉 만에 110 으로 뛰고, 이후 110 에서 그대로 멈춘다

변화 후   SMA(16)  WMA(16)  HMA(16)
0봉      100.62   101.18   101.31
3봉      102.50   104.26   108.12
5봉      103.75   105.96   111.28
7봉      105.00   107.35   112.51 ← 최고점
11봉     107.50   109.26   111.14

가격은 110 에서 멈췄는데 HMA는 112.51 까지 올라간다
오버슈트 = 2.51 ÷ 10 = 계단 크기의 약 25%

HMA는 4~5봉 만에 110 에 도달해 SMA·WMA보다 훨씬 빨리 새 가격대를 반영합니다. 하지만 곧이어 가격이 없는 112 대까지 올라갔다가 천천히 내려옵니다. 이 구간에서 HMA를 지지선처럼 보거나, HMA와 가격의 교차를 신호로 쓰면 실제로는 없는 움직임에 반응하게 됩니다. 급등락 뒤 횡보가 잦은 코인 차트에서는 이런 장면이 자주 나옵니다.

매매에 쓰는 방식

  1. 기울기(방향) 신호. 가장 흔한 사용법입니다. HMA가 직전 봉보다 오르면 상승, 내리면 하락으로 봅니다. 가격과의 교차보다 신호가 덜 잦습니다. 다만 오버슈트 뒤 되돌아오는 구간에서도 기울기가 꺾이므로, 위 계단 예시에서는 7봉 이후 "하락 전환"처럼 보이는 가짜 신호가 생깁니다.
  2. 두 HMA의 교차. 짧은 HMA와 긴 HMA의 교차를 골든크로스·데드크로스처럼 씁니다. SMA 교차보다 빨리 나오지만 그만큼 횡보장에서 교차가 많아집니다.
  3. 추세 필터로만 쓰기. 진입 판단은 다른 근거로 하고, HMA 기울기는 "그 방향으로만 거래한다"는 필터로 씁니다. 추세의 강도는 ADX처럼 방향과 별개로 재는 지표와 함께 보는 편이 낫습니다. 노이즈 대비 추세 비율을 재는 카우프만 효율 비율도 같은 목적으로 쓸 수 있습니다.

어떤 방식이든 HMA 자체가 손절 위치를 알려 주지는 않습니다. 손절은 변동성 기준으로 따로 정합니다. 예를 들어 ATR 트레일링 스탑처럼 최근 변동폭에 비례해 거리를 두는 방법이 HMA의 빠른 반응과 충돌하지 않습니다.

기간 고르기와 휩쏘

HMA는 같은 기간의 SMA보다 빠르므로, SMA에서 쓰던 기간을 그대로 옮기면 체감상 훨씬 짧은 지표가 됩니다. 반대로 빠르기를 SMA 수준으로 맞추려고 기간을 늘리면 HMA를 쓰는 의미가 줄어듭니다.

휩쏘 비용 감각 (가정)

횡보장에서 HMA 기울기가 하루 6번 바뀐다고 가정
신호마다 포지션을 뒤집고, 왕복 수수료 0.10% 라고 하면

하루 비용 = 6 × 0.10% = 0.60%
30일 = 18% (복리 무시)

─────────────
빠른 지표의 신호 수는 그대로 수수료 부담이 된다

신호가 잦아지면 수수료와 슬리피지가 누적됩니다. 지표를 바꿀 때는 승률만 보지 말고 신호 개수와 거래 비용을 같이 계산해야 합니다. 여러 기간을 돌려 결과가 가장 좋은 하나를 고르는 방식은 과최적화로 이어지기 쉬우므로, 고른 기간은 따로 떼어 둔 구간에서 한 번 더 확인합니다.

흔한 오해

  1. "HMA는 지연이 없다." 직선 추세에서도 약 0.7봉(n = 16)의 지연이 남고, 실제 차트에서는 더 큽니다. 줄어든 것이지 사라진 것이 아닙니다.
  2. "빠르면 더 정확하다." 빠르다는 것은 방향 전환을 빨리 반영한다는 뜻이고, 노이즈와 가짜 전환도 빨리 반영한다는 뜻입니다. 정확도는 시장 상태에 따라 달라집니다.
  3. "HMA 선은 지지·저항이다." 오버슈트 구간에서 HMA는 가격이 한 번도 가지 않은 자리에 있습니다. 거래가 쌓인 가격대가 아니므로 지지·저항으로 해석할 근거가 약합니다.

정리

① 이동평균의 지연: SMA (n−1)/2 · WMA (n−1)/3
② HMA = WMA( 2×WMA(n/2) − WMA(n), √n )
③ 2A − B 는 짧은 평균이 앞선 만큼을 한 번 더 더해 지연을 상쇄한다
④ 마지막 √n WMA 는 앞당기며 커진 노이즈를 다듬는다
⑤ n = 16 직선 추세: SMA 7.5봉 → WMA 5봉 → HMA 약 0.7봉 (예시)
⑥ 계단형 변화에서 목표값을 약 25% 넘어서는 오버슈트 (예시)
⑦ 기울기 신호가 기본, 교차는 횡보장에서 잦아진다
⑧ 추세 강도·손절은 다른 도구로 따로 정한다
⑨ 신호 수 × 왕복 비용을 같이 계산한다

한 줄로 줄이면 이렇습니다. HMA는 지연을 줄인 대가로 급변 뒤에 가격을 지나치는 성질을 얻은 이동평균입니다.

주의

본문의 종가 100~110, 기간 4·16, 지연 7.5봉·5봉·약 0.667봉, HMA 109.922·158.333, 오버슈트 112.51(약 25%), 하루 신호 6회, 왕복 수수료 0.10%, 하루 0.60%·30일 18% 등 모든 숫자는 계산 방식을 설명하기 위한 가정 예시이며 특정 종목·특정 계좌의 실제 측정값이 아닙니다. 지연 수치는 가격이 일정하게 오르는 직선 추세에서만 정확히 성립하고, 실제 차트에서는 달라집니다. 플랫폼마다 n ÷ 2 와 √n 의 반올림 방식이 달라 같은 기간이라도 값이 조금씩 다를 수 있습니다. 이 글은 교육 정보이며 특정 종목의 매수·매도 권유나 특정 수익을 보장하는 내용이 아닙니다. 레버리지 거래는 원금 손실 위험이 있고, 매매 판단과 그 결과는 본인 책임입니다.

NOONOO TRADING 무료 채팅방에서 실시간 트레이딩을 같이 보세요.

봇에서 시작하기

📈 OKX 신규 가입 시 거래 수수료 할인

OKX 수수료 할인 가입 →