지표 목록으로
추세입문

Exponential Moving Average

지수이동평균

EMA는 최근 가격에 기하급수적으로 더 큰 가중치를 부여하는 이동평균으로, SMA보다 가격 변화에 빠르게 반응한다. 1956년 Robert Goodell Brown이 재고 관리의 수요 예측을 위해 체계화했고, 1960년대 초 Pete Haurlan이 JPL에서 미사일 유도 기법을 주식 시장에 최초로 적용했다.

2025년 1월 31일
62분 읽기
참고문헌 13개

개요

Exponential Moving Average (EMA, 지수이동평균)는 최근 데이터에 기하급수적으로 더 큰 가중치를 부여하는 이동평균의 일종이다. SMA가 윈도우 내 모든 가격에 동일 가중치를 부여하는 반면, EMA는 재귀적 평활 공식으로 과거 데이터의 영향력을 지수적으로 감쇠시킨다1.

핵심 아이디어: EMA는 "기억력이 있는" 평균이다. 과거 데이터를 완전히 버리지 않지만, 시간이 지날수록 그 영향력을 기하급수적으로 줄여간다. 이전 추정치에 새 관측을 섞어 넣는 방식이라, 단 하나의 숫자만 기억하면 전체 역사를 함축할 수 있다.

기원과 역사

EMA는 세 갈래의 독립된 계보가 수렴하여 완성된 지표다.

Robert Goodell Brown (1923-2013)과 잠수함 추적: Brown은 WWII 중 미 해군 대잠수함전에 배정되어, 구축함이 독일 U-보트를 추적하는 사격통제시스템의 추적 모델을 개발했다. 폭뢰(depth charge)는 잠수함의 미래 위치를 예측해야 했으므로, 노이즈가 심한 관측 데이터에서 추세를 추출하는 방법이 필요했다. Brown이 고안한 기계식 아날로그 컴퓨터 기반의 혼합(blend) 방식이 사실상 지수평활법의 원형이었다1. 전후 Brown은 Arthur D. Little에서 이 방법론을 재고 관리의 수요 예측에 적용했고, 1956년 Exponential Smoothing for Predicting Demand로 처음 공식화했다2. 1959년의 Statistical Forecasting for Inventory Control3과 1963년의 Smoothing, Forecasting and Prediction of Discrete Time Series1를 통해 이 분야의 기초 교과서를 완성했다.

Charles C. Holt (1921-2010)와 ONR: Carnegie Institute of Technology의 경제학자 Holt는 1957년 Office of Naval Research 메모랜덤(ONR 52)으로 Forecasting Seasonals and Trends by Exponentially Weighted Moving Averages를 작성했다. 추세 없음, 가법 추세, 승법 추세, 계절/비계절 시리즈 등 다양한 경우를 체계적으로 다룬 이 원고는 47년간 미출판 상태였음에도 널리 인용되는 "유령 논문"이었고, 2004년 International Journal of Forecasting에 Holt 자신의 회고와 함께 재출판되었다4.

P.N. "Pete" Haurlan과 JPL: NASA Jet Propulsion Laboratory의 Advanced Technical Studies 섹션 매니저였던 Haurlan은 1960년대 초, 미사일 유도(missile guidance)에 사용되던 지수평활 기법을 야간 유휴 시간에 컴퓨터로 주식 가격 분석에 적용했다. 그는 이를 "Exponential Moving Average"가 아닌 "Trend Values"라 부르고, 평활 상수(smoothing constant)로 지칭했다. 1960년대 중반부터 Trade Levels 뉴스레터를 발행하며 당시로서는 혁신적인 컴퓨터 생성 차트를 제공했다. Haurlan은 지수평활법을 금융 시장에 도입한 최초의 실무자로 평가된다.

한편 품질관리 분야에서는 S.W. Roberts가 1959년 Technometrics에 "Control Chart Tests Based on Geometric Moving Averages"를 발표하여, Brown/Holt의 예측 분야 연구와 독립적으로 EWMA 관리도를 도입했다5. 이후 J.S. Hunter(1986)가 EMA의 IIR 필터 특성과 반감기 등 통계적 성질을 체계화했다6.

시기사건
1944Brown, 해군 대잠수함전 배정 — 지수평활의 원형 착안
1956Brown, Arthur D. Little에서 Exponential Smoothing for Predicting Demand 발표2
1957Holt, ONR Report 52 작성 (2004년 재출판)4
1959Brown, Statistical Forecasting 출판 — 첫 체계적 교과서3
1959Roberts, EWMA 관리도 논문 (품질관리 분야 독립 도입)5
1960년대 초Haurlan, JPL에서 주가 분석에 최초 적용
1963Brown, Smoothing, Forecasting and Prediction — 이론 완성1
1978Wilder, SMMA (α=1/N) 변형 발표7
1979Appel, MACD 개발 — EMA의 가장 유명한 금융 파생 지표8
1985/2006Gardner, 지수평활법 서베이 — 학술적 정당화 완성910
1986Hunter, EMA의 IIR 필터 특성 정리6
1994Mulloy, DEMA/TEMA 발표 — 지연 추가 감소 시도11

수학적 정의

기본 공식

EMA는 재귀적(recursive) 평활 공식으로 정의된다. 시점 tt에서의 EMA는 직전 EMA 값과 현재 관측값의 가중 혼합이다1.

EMAt=αPt+(1α)EMAt1\text{EMA}_t = \alpha \cdot P_t + (1 - \alpha) \cdot \text{EMA}_{t-1}

여기서:

변수정의
PtP_t시점 tt의 종가(Close Price)
EMAt1\text{EMA}_{t-1}직전 시점의 EMA 값
α\alpha평활 계수(smoothing factor), 0<α<10 < \alpha < 1

평활 계수 α\alpha는 기간(period) nn으로부터 다음과 같이 결정된다:

α=2n+1\alpha = \frac{2}{n + 1}

이 관례는 EMA의 "중심(center of mass)"이 SMA와 같아지도록, 즉 가중치의 평균 연령(average age)이 (n1)/2(n-1)/2가 되도록 설정한 것이다16. 예를 들어 n=20n = 20이면 α=2/210.0952\alpha = 2/21 \approx 0.0952이다.

오차 보정 형태 (동치 변환)

위 공식을 정리하면 EMA의 오차 보정(error-correction) 형태를 얻는다:

EMAt=EMAt1+α(PtEMAt1)\text{EMA}_t = \text{EMA}_{t-1} + \alpha \cdot (P_t - \text{EMA}_{t-1})

이 형태는 직관적으로 읽힌다: "이전 추정치에서 출발하여, 예측 오차 (PtEMAt1)(P_t - \text{EMA}_{t-1})α\alpha배만큼 보정한다." Brown이 잠수함 추적에서 착안한 원래 아이디어와 정확히 일치하는 표현이다1.

초기값 설정

EMA는 재귀적이므로 시작점이 필요하다. 관례적으로 최초 nn개 데이터의 단순이동평균(SMA)을 초기값으로 사용한다:

EMAn=SMAn=1ni=1nPi\text{EMA}_n = \text{SMA}_n = \frac{1}{n} \sum_{i=1}^{n} P_i

이후 t=n+1t = n+1부터 재귀 공식을 적용한다. 초기값의 영향은 충분한 데이터가 축적되면 지수적으로 감쇠하여 결과에 거의 영향을 주지 않는다.

단계별 계산

10일 EMA(n=10n = 10, α=2/110.1818\alpha = 2/11 \approx 0.1818)를 예시로 전체 과정을 보인다.

Step 1: 초기값 — SMA 계산

10일간의 종가 데이터:

일자12345678910
종가22.2722.1922.0822.1722.1822.1322.2322.4322.2422.29
EMA10=SMA10=22.27+22.19++22.2910=22.221\text{EMA}_{10} = \text{SMA}_{10} = \frac{22.27 + 22.19 + \cdots + 22.29}{10} = 22.221

Step 2: 재귀 적용

일자 11의 종가가 P11=22.15P_{11} = 22.15일 때:

EMA11=0.1818×22.15+(10.1818)×22.221=4.027+18.181=22.208\text{EMA}_{11} = 0.1818 \times 22.15 + (1 - 0.1818) \times 22.221 = 4.027 + 18.181 = 22.208

오차 보정 형태로도 확인:

EMA11=22.221+0.1818×(22.1522.221)=22.2210.013=22.208\text{EMA}_{11} = 22.221 + 0.1818 \times (22.15 - 22.221) = 22.221 - 0.013 = 22.208

현재 가격(22.15)이 이전 EMA(22.221)보다 낮으므로 EMA가 소폭 하락했다.

Step 3: 가중치 분포 확인

EMA를 무한히 전개하면, 시점 tt에서 kk기간 전 가격 PtkP_{t-k}에 부여되는 가중치는:

wk=α(1α)k,k=0,1,2,w_k = \alpha \cdot (1 - \alpha)^k, \quad k = 0, 1, 2, \ldots

10일 EMA(α=0.1818\alpha = 0.1818)에서 각 과거 가격의 가중치:

kk (과거 기간)0 (현재)12351020
가중치 wkw_k18.18%14.87%12.17%9.96%6.66%2.50%0.34%
누적 가중치18.18%33.06%45.22%55.18%68.17%86.47%98.16%

10기간 전의 가격은 2.5%의 가중치만 가지며, 20기간 전의 가격은 0.34%로 사실상 무시할 수 있다. 이것이 EMA의 지수적 감쇠(exponential decay) 특성이다.

비유적 설명

EMA를 기억력이 있는 체온계로 이해할 수 있다.

일반 체온계(= 현재 가격)는 지금 이 순간의 온도만 보여준다. 단순이동평균(SMA)은 "최근 10일의 체온을 전부 더해서 10으로 나눈 평균"이다 — 11일 전에 40도 고열이 있었다면, 그 데이터가 창(window)에서 빠지는 순간 평균이 갑자기 변한다.

EMA는 다른 방식으로 작동한다. 매일 아침 새 체온을 재면, 어제까지의 기억(이전 EMA)오늘 체온(새 데이터)을 조금 섞어서 업데이트한다. α\alpha는 "새 체온을 얼마나 반영할 것인가"의 비율이다. α\alpha가 크면 최근 체온에 민감하고, 작으면 과거 기록을 더 오래 기억한다. 중요한 것은, 아무리 오래 전 기록이라도 완전히 잊히지는 않는다 — 다만 시간이 갈수록 영향이 기하급수적으로 줄어들 뿐이다.

EMA의 수학적 특성

1. 지수적 감쇠 가중치 (반감기)

EMA의 가중치 wk=α(1α)kw_k = \alpha(1-\alpha)^k는 기하급수적으로 감소하며, 전체 합은 정확히 1이다:

k=0wk=α11(1α)=1\sum_{k=0}^{\infty} w_k = \alpha \cdot \frac{1}{1-(1-\alpha)} = 1

반감기(half-life)는 가중치가 최초의 절반으로 줄어드는 기간이다:

h=ln2ln(1α)h = \frac{-\ln 2}{\ln(1-\alpha)}

n=20n = 20일 때 α=2/21\alpha = 2/21이면 h7.0h \approx 7.0기간. 즉, 7기간 전의 가격은 현재 가격 대비 절반의 가중치를 받는다.

2. 후행성(Lag): SMA와의 이론적/실무적 차이

이동평균의 후행성(lag)은 가중치의 평균 연령(average age)으로 측정한다6.

lagSMA=n12,lagEMA=1αα=n12\text{lag}_{\text{SMA}} = \frac{n - 1}{2}, \quad \text{lag}_{\text{EMA}} = \frac{1 - \alpha}{\alpha} = \frac{n - 1}{2}

α=2/(n+1)\alpha = 2/(n+1)을 대입하면 두 지표의 이론적 lag은 동일하다. 그러나 실무에서 EMA가 SMA보다 "빠르다"고 느끼는 이유는, EMA는 최근 데이터에 가중치가 집중되어 있어 추세 전환 시 반응이 더 민감하기 때문이다. SMA는 nn기간 전의 극단값이 창에서 빠지는 순간 급격한 "윈도우 효과"를 보이지만, EMA에는 이런 불연속이 없다12.

특성SMA(nn)EMA(nn)
이론적 lag(n1)/2(n-1)/2(n1)/2(n-1)/2
가중치 분포균등(rectangular)지수 감쇠(exponential)
추세 전환 반응느림빠름 (가중치 집중)
윈도우 효과있음 (오래된 값 탈락 시 점프)없음 (매끄러운 감쇠)
노이즈 억제강함상대적으로 약함
메모리 사용O(n)O(n)nn개 데이터 저장O(1)O(1) — 현재 EMA 값 하나

3. IIR(Infinite Impulse Response) 필터 특성

디지털 신호처리(DSP) 관점에서 EMA는 1차 IIR 저역통과 필터(first-order IIR low-pass filter)이다6. 전달 함수(z-변환):

H(z)=α1(1α)z1H(z) = \frac{\alpha}{1 - (1-\alpha)z^{-1}}

이 필터의 특성:

  • 저역 통과: 고주파 노이즈(일간 랜덤 변동)를 억제하고, 저주파 성분(추세)을 통과시킨다.
  • 무한 임펄스 응답: 이론적으로 과거의 모든 입력이 출력에 영향을 미친다 (SMA의 FIR 필터와 대조).
  • α\alpha가 작을 때 근사적 차단 주파수: fcα/(2π)f_c \approx \alpha / (2\pi)

SMA와의 주파수 응답 차이: SMA(FIR 필터)는 특정 주파수에서 완전한 소거(null)가 발생하는 반면, EMA(IIR 필터)는 고주파를 점진적으로 감쇠시킨다. 이 때문에 EMA가 더 매끄러운 출력을 내지만, 특정 주기의 노이즈를 완전히 제거하지는 못한다.

4. 메모리: 이론적 무한, 실질적 유한

EMA는 IIR 필터이므로 이론적으로 무한한 과거까지 영향을 미친다. 그러나 실질적 유효 범위(effective window)는 유한하다. 가중치의 누적 합이 99%에 도달하는 기간:

K99=ln0.01ln(1α)1K_{99} = \left\lceil \frac{\ln 0.01}{\ln(1-\alpha)} \right\rceil - 1
nnα\alpha반감기 hhK99K_{99} (99% 범위)실질 메모리
100.18183.524~2.4nn
200.09527.047~2.4nn
500.039217.3116~2.3nn
2000.010069.0460~2.3nn

실무적 의미: EMA(20)을 안정적으로 계산하려면 최소 약 50개의 데이터가 필요하다. 초기값의 영향이 충분히 감쇠하기 전의 EMA 값은 신뢰도가 낮다.

Wilder's SMMA와의 동치 관계

J. Welles Wilder Jr.는 1978년 저서에서 RSI, ADX 등의 내부 평활에 자신만의 평활이동평균(Smoothed Moving Average, SMMA)을 사용했다7. SMMA는 EMA와 동일한 재귀 구조를 가지지만 평활 계수가 다르다.

표준 EMAWilder's SMMA
평활 계수αEMA=2/(n+1)\alpha_{\text{EMA}} = 2/(n+1)αSMMA=1/n\alpha_{\text{SMMA}} = 1/n
n=14n = 14α=0.1333\alpha = 0.1333α=0.0714\alpha = 0.0714

Wilder의 SMMA(nWn_W)와 표준 EMA(nEn_E)가 동일한 결과를 내려면, 두 평활 계수가 같아야 한다:

1nW=2nE+1nE=2nW1\frac{1}{n_W} = \frac{2}{n_E + 1} \quad \Rightarrow \quad n_E = 2n_W - 1

따라서 SMMA(nWn_W) = EMA(2nW12n_W - 1)이다7. 예를 들어 Wilder의 14기간 SMMA는 27기간 표준 EMA와 동일한 결과를 산출한다. 이 관계를 이해하지 못하면 다른 플랫폼 간 RSI/ADX 값 불일치의 원인을 찾지 못할 수 있다.

Wilder SMMA동등 표준 EMA용례
SMMA(14)EMA(27)RSI 기본값
SMMA(14)EMA(27)ADX 기본값
SMMA(14)EMA(27)ATR 기본값

특수 케이스 / 경계값

  • 데이터 수 < nn: 초기 SMA를 계산할 수 없으므로 EMA를 산출하지 않는다(null/NaN 반환).
  • 데이터 수 = nn: 첫 EMA 값은 SMA와 동일하다.
  • 데이터 수 3n\approx 3n 미만: EMA가 계산되지만 초기값(SMA)의 영향이 남아 완전히 "안정화"되지 않았다. 실무적으로 최소 3n3n개 이상의 데이터 이후부터 신뢰한다.
  • α=1\alpha = 1 (또는 n=1n=1): EMAt=Pt\text{EMA}_t = P_t. 평활 없음.
  • α0+\alpha \to 0^+: 극도로 느린 반응. 사실상 장기 평균에 수렴.

파라미터

평활 계수 α = 2/(n+1)의 유래

표준 EMA의 평활 계수 α=2/(n+1)\alpha = 2/(n+1)은 "n기간 SMA와 동등한 평균 연령(average age)을 갖는 지수 가중치"를 만들기 위한 관례다1. SMA의 평균 연령은 (n1)/2(n-1)/2이고, EMA의 평균 연령은 (1α)/α(1-\alpha)/\alpha이다. 이 둘을 같다고 놓으면 α=2/(n+1)\alpha = 2/(n+1)을 얻는다.

이 공식이 "유일한 정답"은 아니다. Brown(1963)은 평활 계수를 임의로 선택할 수 있음을 강조했으며, 이 관례는 SMA 사용자가 EMA로 전환할 때 직관적 비교를 돕기 위한 것이다1. 다만 이 관례가 사실상의 표준(de facto standard)으로 정착하여, 대부분의 차트 소프트웨어와 교과서가 이를 기본값으로 사용한다12.

주요 기간의 의미와 근거

기간α\alpha유래/근거용도
90.200Gerald Appel이 MACD의 Signal Line으로 선정8MACD 시그널선, 초단기 추세
120.154Appel의 MACD 빠른선. 약 2~3주 거래일에 해당8MACD 빠른선, 단기 모멘텀
200.095약 1개월 거래일. Bollinger Bands 중심선 대안단기 추세
260.074Appel의 MACD 느린선. 당시 주 6일 거래 기준 1개월8MACD 느린선, 중기 추세
500.039약 1분기(10주 거래일). 기관 투자자 중기 벤치마크12중장기 추세 확인
2000.010약 1년 거래일. 강세/약세장 구분의 사실상 표준12장기 추세, 시장 레짐

Appel(2005)은 MACD의 12/26 기간이 1970년대 후반 뉴욕 증권거래소의 주 6일 거래 환경에서 선정되었다고 밝혔다. 26일은 당시 약 1개월의 거래일이었다8. Murphy(1999)는 200일 이동평균을 "장기 추세의 바로미터"로 언급하며, 가격이 200 EMA 위에 있으면 강세, 아래에 있으면 약세로 판단하는 것이 기관 투자자 사이에서 광범위하게 사용된다고 서술했다12.

타임프레임별 조정 가이드

타임프레임추세용 EMA모멘텀용 EMA비고
1분~5분 (스캘핑)9, 215, 8노이즈가 극심, 허위 신호 빈번
15분~1시간 (데이트레이딩)20, 509, 12일중 추세 확인에 적합
4시간 (스윙)50, 10012, 26MACD 표준 파라미터 설계점
일봉 (포지션)50, 20012, 26가장 많이 연구된 타임프레임
주봉 (장기)26, 5212, 2652주 = 1년, 기관 투자 기준

Murphy(1999)는 "이동평균의 기간은 분석하려는 사이클의 절반에 맞추는 것이 이상적"이라고 권장했다12. 4시간봉에서 2주 사이클을 추적하려면 2주 = 84개 4시간봉이므로, 그 절반인 42기간 EMA(≈50으로 반올림)가 이론적 근거를 갖는다.

암호화폐 24시간 시장 고려사항

암호화폐 시장은 전통 시장과 구조적으로 다르므로 EMA 파라미터 해석에 주의가 필요하다:

  1. 주 7일 거래: 전통 시장의 일봉 200일 ≈ 약 40주(10개월)이지만, 암호화폐 일봉 200일 ≈ 28.5주(6.6개월). 동일한 200 EMA가 전통 시장보다 짧은 기간을 커버한다. 동등한 시간 커버리지를 원한다면 280일 EMA를 고려할 수 있다(200 × 7/5).
  2. 높은 변동성: 일일 변동폭이 전통 자산 대비 크므로 짧은 기간 EMA(9, 12)에서 Whipsaw가 빈번하다. 추세 확인용으로는 21이나 50 EMA가 더 안정적이다.
  3. 주말/공휴일 갭 부재: 연속 시장이므로 갭 없이 부드러운 EMA 곡선이 형성된다. 이는 EMA의 동적 지지/저항 역할을 더 일관되게 만든다.
  4. 소형 코인의 유동성 문제: 거래량이 적은 알트코인에서는 단일 대형 주문이 가격을 급변시켜 EMA를 왜곡할 수 있다. 유동성이 낮은 자산에서는 더 긴 기간 EMA를 사용하여 노이즈를 필터링해야 한다.
  5. 표준 파라미터의 자기실현 효과: 대부분의 트레이더가 전통 시장 관례를 그대로 50/200 EMA로 사용하므로, 실용적으로 "표준 파라미터를 따르는 것"이 자기실현적 예언 효과를 누릴 수 있다.

해석 방법

원저자 정의: 추세 방향 판단

Brown(1963)은 지수평활법의 핵심 가치를 "노이즈를 평활하면서 추세를 추적하는 것"으로 정의했다1. 금융 시장에 적용된 이후, EMA의 기본 해석은 다음과 같다12:

  • 가격 > EMA: 상승 추세. EMA가 가격 아래에서 동적 지지선(dynamic support) 역할
  • 가격 < EMA: 하락 추세. EMA가 가격 위에서 동적 저항선(dynamic resistance) 역할
  • EMA 기울기: 추세의 방향과 강도를 시각적으로 표시. 기울기가 가파를수록 추세가 강함

Murphy(1999)는 "가격이 이동평균 위에 있으면 상승 추세, 아래에 있으면 하락 추세"를 이동평균의 가장 기본적인 해석으로 설명했다12.

원저자 정의: 동적 지지/저항

EMA는 고정된 수평 지지/저항선과 달리, 가격과 함께 움직이는 동적 지지/저항선으로 기능한다12:

  • 상승 추세: 가격이 EMA로 하락(pullback)한 뒤 반등하는 패턴이 반복됨. 특히 20, 50 EMA가 이 역할을 자주 수행
  • 하락 추세: 가격이 EMA로 상승(rally)한 뒤 재하락하는 패턴이 반복됨
  • EMA 접근 → 반등 반복: 트레이더들이 EMA를 관찰하고 그 근처에서 매수/매도를 실행하므로, 자기실현적 예언(self-fulfilling prophecy)의 성격도 가짐

EMA 교차 (골든크로스/데드크로스)

두 개의 서로 다른 기간 EMA 교차는 추세 전환 신호로 해석된다12:

  • 골든크로스 (Golden Cross): 단기 EMA가 장기 EMA를 상향 돌파. 매수 신호.
  • 데드크로스 (Death Cross): 단기 EMA가 장기 EMA를 하향 돌파. 매도 신호.
Golden Cross at t:EMAshort(t1)<EMAlong(t1) and EMAshort(t)>EMAlong(t)\text{Golden Cross at } t: \quad \text{EMA}_{\text{short}}(t-1) < \text{EMA}_{\text{long}}(t-1) \text{ and } \text{EMA}_{\text{short}}(t) > \text{EMA}_{\text{long}}(t)

Murphy(1999)는 대표적인 교차 조합을 다음과 같이 정리했다12:

조합용도특성
9/21 EMA단기 트레이딩빠른 신호, 높은 Whipsaw 위험
12/26 EMAMACD에 사용Appel이 설계한 모멘텀 측정 조합
50/200 EMA장기 투자느린 신호, 높은 신뢰도. 가장 유명한 골든/데드크로스

후속 발전: 다중 EMA 시스템

Kaufman(2019)은 3개 이상의 EMA를 동시에 사용하는 다중 이동평균 시스템의 유용성을 설명했다13:

EMA 리본 (Ribbon): 여러 기간의 EMA를 동시에 표시(예: 10, 20, 30, 40, 50 EMA). EMA들이 순서대로 정렬(fanning out)되면 강한 추세, 꼬이면(twisting) 추세 전환 또는 횡보를 시사한다.

3중 EMA 시스템: 단기(9), 중기(21), 장기(55) EMA를 사용하여:

  • 3개 모두 같은 방향으로 정렬 → 강한 추세 확인
  • 단기와 중기가 교차하되 장기는 같은 방향 → 일시적 조정
  • 단기와 장기 모두 교차 → 추세 전환 신호

MACD와의 관계

Gerald Appel이 1979년 개발한 MACD는 EMA의 가장 유명한 파생 지표다8:

MACD=EMA12EMA26\text{MACD} = \text{EMA}_{12} - \text{EMA}_{26} Signal=EMA9(MACD)\text{Signal} = \text{EMA}_9(\text{MACD})

MACD는 본질적으로 12일 EMA와 26일 EMA 사이의 수렴(convergence)과 발산(divergence)을 측정한다. 두 EMA가 벌어지면 추세가 강하고, 좁혀지면 추세가 약화되는 것이다. MACD가 양수이면 단기 EMA > 장기 EMA(상승 추세), 음수이면 반대(하락 추세)다.

Appel(2005)은 MACD의 12/26/9 파라미터가 1970년대 후반 시장 조건에서 경험적으로 선정되었으며, 이론적 최적값이 아닌 실용적 선택이었다고 밝혔다8. 그는 시장과 타임프레임에 따라 파라미터를 조정할 수 있다고 권고했으나, 표준 설정이 충분히 범용적이라 대부분의 경우 변경이 불필요하다고 평가했다.


실용적 활용

매매 신호

진입 조건:

신호 유형조건방향신호 강도출처
가격-EMA 돌파가격이 장기 EMA(50/200) 상향 돌파매수보통Murphy (1999)
가격-EMA 이탈가격이 장기 EMA(50/200) 하향 이탈매도보통Murphy (1999)
골든크로스단기 EMA > 장기 EMA 교차매수보통~높음Murphy (1999)
데드크로스단기 EMA < 장기 EMA 교차매도보통~높음Murphy (1999)
EMA 풀백 반등상승 추세에서 EMA(20/50)로 눌림 후 반등매수높음Murphy (1999)
EMA 랠리 저항하락 추세에서 EMA(20/50)로 반등 후 재하락매도높음Murphy (1999)
3중 EMA 정렬단기 > 중기 > 장기 EMA 순서 정렬매수 확인높음Kaufman (2019)

청산 조건:

  1. 반대 교차: 진입 시 사용한 EMA 교차가 반대 방향으로 발생
  2. 가격 EMA 이탈: 진입 후 가격이 기준 EMA를 반대 방향으로 명확히 돌파 (종가 기준)
  3. EMA 기울기 평탄화: 추세 확인에 사용한 EMA의 기울기가 수평으로 전환되면 추세 약화 경고
  4. 사전 설정된 목표/손절 도달: EMA 신호와 무관하게 리스크 관리 규칙 우선

다른 지표와의 조합

RSI + EMA: 추세 내 모멘텀 타이밍

EMA가 추세 방향(큰 그림)을 판단하고, RSI가 추세 내에서 과매수/과매도 타이밍을 잡는다. EMA는 가격의 방향만 알려줄 뿐 "지금 진입해도 되는가"는 알려주지 않는다. RSI가 이 빈 공간을 채운다12.

  • 가격이 200 EMA 위 (상승 추세 확인) + RSI가 40~50에서 반등 → 추세 방향 매수 진입
  • 가격이 200 EMA 아래 (하락 추세 확인) + RSI가 50~60에서 하락 → 추세 방향 매도 진입
  • EMA 추세와 반대 방향의 RSI 신호는 무시

EMA(추세 지표)와 RSI(모멘텀 오실레이터)는 서로 다른 수학적 기반으로 시장을 측정한다. 두 지표가 같은 방향을 가리킬 때, 서로 다른 관점에서의 합의가 이루어진 것이므로 신뢰도가 높아진다.

볼린저 밴드 + EMA: 변동성과 추세의 결합

볼린저 밴드는 가격이 통계적 정상 범위를 벗어났는지 알려주고, EMA는 추세의 방향을 알려준다. 볼린저 밴드의 중심선은 기본적으로 20 SMA인데, 이를 20 EMA로 대체하면 추세 변화에 더 민감하게 반응한다13.

  • 가격이 볼린저 밴드 하단 터치 + 장기 EMA(200) 위에 위치 → 상승 추세 내 풀백, 매수 검토
  • 가격이 볼린저 밴드 상단 터치 + 장기 EMA(200) 아래에 위치 → 하락 추세 내 반등, 매도 검토
  • 볼린저 밴드 수축(Squeeze) + EMA 교차 → 돌파 가능성 높음

거래량 + EMA: 추세의 건강 상태 확인

EMA 교차나 돌파가 발생할 때, 거래량이 동반되는지 확인하면 신호의 신뢰도를 판단할 수 있다12:

  • 골든크로스 + 거래량 증가 → 신호 확인, 높은 신뢰도
  • 골든크로스 + 거래량 감소 → 의심스러운 신호, 관망 또는 축소 진입
  • 가격이 EMA 지지선에서 반등 + 거래량 급증 → 강한 수요 확인

Murphy(1999)는 "거래량은 가격을 확인한다(Volume confirms price)"를 기술적 분석의 기본 원칙으로 설명했다12.

SMA 대신 EMA를 선택해야 하는 상황

상황권장이유
단기 트레이딩 (분봉~4시간봉)EMA최근 가격 변화에 빠르게 반응해야 하므로 EMA의 낮은 지연이 유리
장기 투자 (주봉 이상)SMA도 적합기간이 길수록 EMA와 SMA의 차이가 줄어듦. SMA의 안정성이 장점
MACD 계산EMA 필수MACD의 정의 자체가 EMA 기반8
변동성 높은 시장 (암호화폐 등)EMA (단, 더 긴 기간)SMA의 "창 효과"가 변동성이 큰 시장에서 더 심하게 나타남
극단적 가격 이벤트 후SMAEMA는 급등락에 과잉 반응할 수 있음. SMA가 더 안정적
다른 지표의 입력값지표 정의에 따름볼린저 밴드 = SMA 기반, MACD = EMA 기반 등 원저자 정의 준수

Kaufman(2019)은 "어떤 이동평균이 최적인지에 대한 정답은 없다"며, 핵심은 반응 속도와 노이즈 필터링의 트레이드오프를 이해하고 목적에 맞게 선택하는 것이라고 강조했다13.


학술적 검증

실증 연구 결과

1. Brock, Lakonishok & LeBaron (1992) — 미국 DJIA 90년 검증

"Simple Technical Trading Rules and the Stochastic Properties of Stock Returns", The Journal of Finance, Vol. 47, pp. 1731-1764.

  • 시장/기간: 미국 다우존스 산업평균지수(DJIA), 1897~1986년 (약 90년)
  • 방법론: 이동평균 교차와 거래 범위 돌파 전략을 4개 귀무 모형(Random Walk, AR(1), GARCH-M, EGARCH)에 대해 부트스트랩 기법으로 검증
  • 결과: 이동평균 매수 신호가 매도 신호보다 일관되게 높은 수익률을 생성했으며, 매수 신호 이후 변동성이 매도 신호 이후보다 낮았다. 4개 귀무 모형 모두에서 전략 수익률을 설명하지 못해, 기술적 트레이딩 전략에 대한 강한 지지를 제공했다.
  • EMA와의 관계: SMA 기반 교차를 직접 테스트했으나, EMA 교차 전략의 학술적 검증 대부분이 이 논문을 방법론적 기초로 삼는다. 이동평균 트레이딩 규칙의 유효성을 대규모 데이터로 최초 입증한 기념비적 연구다.

2. Gunasekarage & Power (2001) — 남아시아 신흥 시장

"The Profitability of Moving Average Trading Rules in South Asian Stock Markets", Emerging Markets Review, Vol. 2, No. 1, pp. 17-33.

  • 시장/기간: 인도, 스리랑카, 방글라데시, 파키스탄, 1990~2000년
  • 결과: 4개 남아시아 시장 모두에서 이동평균 트레이딩 규칙이 매수후보유 전략 대비 초과 수익을 생성했다. "매수 신호 시 수익 = 매도 신호 시 수익" 귀무가설을 기각하여, 이동평균의 예측력을 입증했다.
  • 의의: 선진국 시장(Brock et al. 1992)뿐 아니라 신흥 시장에서도 이동평균 전략이 유효함을 실증. 약형 효율적 시장 가설(weak-form EMH)에 대한 반례로 제시됨.

3. Chong, Ng & Liew (2014) — OECD 5개국 MACD(EMA 기반)

"Revisiting the Performance of MACD and RSI Oscillators", Journal of Risk and Financial Management, Vol. 7, pp. 1-12.

  • 시장: OECD 5개국(미국 NYSE, 영국 FTSE, 이탈리아 MIB 등)
  • 결과: MACD(12,26,0) — 12일 EMA와 26일 EMA 교차 기반 — 규칙이 일부 시장에서 유의미한 초과 수익을 생성했으나, 모든 시장에서 일관된 수익성을 보이지는 않았다.
  • EMA와의 관계: MACD는 12일 EMA와 26일 EMA의 차이로 정의되므로, MACD의 유효성은 곧 EMA 교차 전략의 유효성을 반영한다.

4. Gardner (1985, 2006) — 지수평활법 서베이910

  • 1985년 서베이: 지수평활법의 이론적/실무적 발전을 종합 정리. 예측 대회(forecasting competition)에서 단순 지수평활법이 복잡한 Box-Jenkins ARIMA 모형과 대등하거나 우수한 성과를 보인 사례를 보고.
  • 2006년 서베이: 가장 중요한 이론적 진보로 단일 오차원(single source of error) 상태공간 모델에 기반한 지수평활의 완전한 통계적 정당화를 꼽음. 이로써 지수평활법이 순수한 휴리스틱이 아닌 통계적으로 정당화된 방법론임이 증명됨.
  • 의의: EMA가 학술적으로 "단순하지만 강건한(simple but robust)" 예측 방법론으로 인정받는 근거를 제공.

5. MACD 파라미터 최적화 (Kang, 2021) — Nikkei 225

일본 Nikkei 225 선물 시장에서 MACD 표준 파라미터(12,26,9)의 승률은 50% 미만이었으나, 최적화된 파라미터를 사용하면 유의미한 양의 수익을 달성할 수 있었다. EMA 기간의 선택이 전략 성과에 결정적 영향을 미치며, Appel(1979)의 원래 파라미터가 보편적으로 최적인 것은 아니다8.

시장별/조건별 유효성 요약

조건유효성근거
선진국 장기 데이터 (미국 DJIA 90년)유효Brock et al. (1992)
신흥 시장 (남아시아 4개국)유효Gunasekarage & Power (2001)
선진국 다국가 비교 (OECD 5개국)부분 유효Chong et al. (2014)
표준 파라미터 일괄 적용낮음MACD 12,26,9 승률 50% 미만 (Kang 2021)
파라미터 최적화 적용높음시장별 최적 EMA 기간 사용 시 유의미 개선
수요 예측/시계열 예측높음예측 대회에서 ARIMA 대비 대등/우수910

EMH 및 적응적 시장 가설과의 관계

Fama(1970)의 효율적 시장 가설에 따르면, 약형 효율적 시장에서는 과거 가격 정보만으로 초과 수익을 얻을 수 없다. EMA는 전적으로 과거 가격의 가중 평균이므로, EMH가 성립한다면 EMA 기반 전략은 매수후보유를 체계적으로 능가할 수 없어야 한다. 그러나 실증 결과는 이와 상충한다:

  1. 장기 반례: Brock et al.(1992)은 90년 DJIA 데이터에서 이동평균 규칙의 예측력을 입증했으며, Random Walk/GARCH 모형으로도 설명되지 않았다.
  2. 시장별 효율성 차이: Gunasekarage & Power(2001)는 정보 비대칭이 큰 신흥 시장에서 기술적 분석의 예측력이 더 높음을 시사했다.
  3. 시간 가변적 효율성: Chong et al.(2014)의 결과는 시장 효율성이 고정 상태가 아니라 시간/상황에 따라 변동함을 뒷받침한다.
  4. 적응적 시장 가설(AMH): Andrew Lo(2004)의 AMH는 이동평균 전략의 유효성이 시기에 따라 나타났다가 사라지는 현상을 진화적 관점에서 설명한다.

품질관리 분야에서의 EWMA

EMA(EWMA)는 금융 분야뿐 아니라 제조/품질관리 분야에서도 독립적으로 발전했다. Roberts(1959)는 기하이동평균(geometric moving average, EWMA)을 품질관리 관리도에 적용하여, 공정 평균의 작은 이동(small shift)을 감지하는 데 기존 Shewhart 관리도보다 효과적임을 시뮬레이션으로 입증했다5. Hunter(1986)는 EWMA의 통계적 특성을 상세 분석하고, IIR 필터 특성, 반감기 등의 수학적 관계를 정리했으며, 평활 파라미터 λ\lambda의 권장 범위를 0.1λ0.30.1 \leq \lambda \leq 0.3으로 제시했다6. 금융에서는 추세 추종에, 품질관리에서는 공정 이상 감지에 활용된다는 점만 다를 뿐 수학적 구조는 동일하다.

상태공간 모델과 통계적 정당화

Gardner(2006)가 정리한 바에 따르면, 지수평활법의 가장 중요한 이론적 발전은 단일 오차원(single source of error) 상태공간 모델과의 통합이다10. 이를 통해 지수평활법이 특정 ARIMA 모형과 동치(equivalent)임이 증명되었고, 예측 구간(prediction interval) 도출과 AIC/BIC 기반 모형 선택이 가능해졌다. 이로써 EMA는 "실무적으로 유용한 휴리스틱"에서 "통계적으로 정당화된 최적 예측기"로 이론적 위상이 격상되었다.


한계점

1. 여전히 존재하는 후행성

EMA는 SMA보다 빠르게 반응하지만, 본질적으로 과거 데이터의 가중 평균이므로 후행 지표(lagging indicator)다1. EMA의 지연(lag)은 수학적으로 (1α)/α=(n1)/2(1-\alpha)/\alpha = (n-1)/2기간이다6. 50기간 EMA의 이론적 지연은 약 24.5기간이다.

구체적 사례: 2022년 11월 FTX 붕괴 시, BTC 가격은 2일 만에 약 25% 급락했다. 50일 EMA는 급락 후 3~4일이 지나서야 명확한 하락 신호를 보였다. EMA가 "확인"을 줄 시점에는 이미 하락의 대부분이 완료된 상태였다.

대안: 급격한 시장 변동에 대응하려면 EMA 단독에 의존하지 않고, 거래량 급등, 가격 갭, 뉴스 이벤트 등 선행 정보를 병행해야 한다. Kaufman(2019)의 KAMA(Kaufman's Adaptive Moving Average)는 시장 효율성 비율에 따라 α\alpha를 동적으로 조절하여 급격한 변동에 더 빠르게 반응한다13.

2. Whipsaw 문제

횡보장에서 가격이 EMA를 반복적으로 상하로 교차하여 빈번한 허위 신호(false signal)가 발생한다12. EMA는 SMA보다 빠르게 반응하므로 추세장에서는 유리하지만, 횡보장에서는 오히려 SMA보다 더 많은 Whipsaw가 발생할 수 있다.

구체적 사례: 2023년 상반기 BTC가 25,000 25,000~31,000 범위에서 약 3개월간 횡보했을 때, 50/200 EMA 교차 전략은 이 기간 동안 다수의 허위 골든/데드크로스를 생성하여 누적 손실을 초래할 수 있었다.

대안: (1) 교차 후 일정 기간(예: 2~3캔들) 확인 대기, (2) ADX로 추세 강도를 먼저 확인하여 ADX < 20일 때 EMA 교차 신호 무시, (3) 볼린저 밴드 Bandwidth가 낮을 때 EMA 신호 필터링13.

3. α 선택의 주관성

α=2/(n+1)\alpha = 2/(n+1) 공식은 관례(convention)이지 이론적 최적값이 아니다1. Wilder는 α=1/n\alpha = 1/n을 사용했고7, 다른 분석가들은 또 다른 값을 선호할 수 있다. 기간 nn의 선택 자체도 주관적이며, "왜 12일이지 13일이 아닌가?"에 대한 이론적 답은 없다.

구체적 사례: 동일한 가격 데이터에서 EMA(12)와 EMA(13)의 교차 시점이 다르게 나타날 수 있다. 백테스트에서 12일이 최적이었다고 해서 미래에도 그럴 것이라는 보장이 없다.

대안: (1) 표준 파라미터(12, 26, 50, 200)는 자기실현적 예언 효과의 혜택을 받는다12. (2) Kaufman의 KAMA처럼 시장 상태에 따라 α\alpha를 적응적으로 조절하는 방법도 있다13.

4. 초기값 의존성 (Warm-up Period)

EMA는 재귀적으로 계산되므로 초기값(seed value)이 필요하다. 일반적으로 첫 nn개 가격의 SMA를 초기 EMA로 사용한다1. 초기값이 다르면 이후 모든 EMA 값이 달라진다.

구체적 영향: Hunter(1986)는 EMA의 가중치가 기하급수적으로 감소하므로, 충분한 데이터(약 35배의 기간)가 쌓이면 초기값의 영향이 무시할 수 있을 정도로 작아진다고 분석했다6. 예를 들어, 200일 EMA의 경우 6001000일 이상의 데이터가 있으면 초기값 차이의 영향이 0.01% 미만이 된다.

실무적 문제: 신규 상장 코인이나 데이터가 적은 자산에서 200일 EMA를 계산하면 초기값 의존성이 큰 왜곡을 일으킬 수 있다. 상장 200일 직후의 200 EMA는 사실상 의미 없는 값이다.

대안: (1) 충분한 warm-up 데이터를 확보한 후에만 EMA 신뢰, (2) 신규 자산에서는 짧은 기간 EMA만 사용, (3) 차트 플랫폼 간 EMA 값이 다를 경우 초기값 계산 방식 차이를 의심.

5. 과최적화 위험 (Overfitting)

과거 데이터에서 최적의 EMA 기간을 찾아 적용하면 미래에도 동일한 성과를 보인다는 보장이 없다13.

구체적 사례: 백테스트에서 "BTC 4시간봉에 EMA(17)과 EMA(43) 교차가 최적"이라는 결과를 얻었다 해도, 이는 해당 기간의 특정 가격 패턴에 맞춰진 것일 수 있다. 시장 레짐이 바뀌면(추세장→횡보장, 고변동성→저변동성) 성과가 급격히 저하될 수 있다.

대안: (1) 표준 파라미터(12, 26, 50, 200)를 사용하여 과최적화를 원천적으로 방지, (2) 인접 파라미터에서도 유사 성과를 보이는지 확인(robustness test), (3) out-of-sample 검증 기간 확보, (4) Kaufman(2019)은 "단순한 시스템이 복잡한 시스템보다 더 안정적(robust)"이라고 강조했다13.

6. 창 효과 부재의 양면성

EMA는 SMA의 "윈도우 효과"가 없어 매끄러운 곡선을 그리지만, 이는 동시에 단점이기도 하다. EMA는 과거의 극단적 가격 이벤트의 영향을 완전히 "잊지" 못한다. 이론적으로 모든 과거 데이터가 영향을 미치므로, 수개월 전의 급등/급락이 현재 EMA에 미미하지만 잔존하는 영향을 남긴다6. 대부분의 경우 이 잔존 영향은 무시할 수 있지만, 극도로 정밀한 시스템에서는 누적 오차로 작용할 수 있다.

흔한 오용

1. "EMA 교차 = 즉시 매매": 교차 발생 시점에 즉시 진입하면 Whipsaw에 걸릴 가능성이 높다. Murphy(1999)는 교차 후 추가 확인을 권장했다12. 교정: 교차 신호를 "경보"로 취급하고, ADX 등 추세 강도 지표로 확인한 뒤 진입.

2. "짧은 기간 EMA가 항상 더 좋다": 기간을 줄이면 반응이 빨라지지만 노이즈 민감도도 증가한다. Kaufman(2019)은 "빠른 시스템은 추세장에서 이기고 횡보장에서 지며, 느린 시스템은 그 반대"라고 명시했다13. 교정: 시장 상태에 따라 적합한 기간 선택, 또는 다중 타임프레임 분석.

3. "200 EMA 위면 무조건 강세": 200 EMA는 수개월 데이터를 반영하므로, 가격이 200 EMA 위에 있더라도 단기적으로 상당한 하락이 진행 중일 수 있다12. 교정: 200 EMA를 "방향 필터"로만 사용하고, 실제 진입은 더 짧은 기간의 신호로 결정.

4. 유사 지표 중복 사용: EMA 교차와 MACD를 동시에 사용하는 것은 동어반복(tautology)이다. MACD 자체가 12/26 EMA 차이이므로 거의 같은 정보다8. 교정: 조합의 가치는 서로 다른 차원의 정보(추세 + 모멘텀 + 변동성 + 거래량)를 결합할 때 발생.

5. 단일 타임프레임 의존: 4시간봉 골든크로스가 발생했더라도 일봉에서 데드크로스 상태라면, 4시간봉의 골든크로스는 더 큰 하락 추세 안의 일시적 반등일 수 있다. 교정: 상위 타임프레임에서 추세 방향을 확인하고, 하위 타임프레임에서 진입 타이밍을 찾는다.


구현 예시

Brown(1963)의 재귀식과 Murphy(1999)의 관례적 평활 계수에 충실한 EMA 계산 구현이다112.

타입 정의

interface EMAInput {
  /** 종가(close price) 배열. 시간순 정렬 (오래된 것부터) */
  prices: number[];
  /** 계산 기간 (n). 기본값 20 */
  period?: number;
}

interface EMAResult {
  /** EMA 값 배열. 길이 = prices.length - period + 1 */
  values: number[];
}

표준 EMA (α = 2/(n+1))

/**
 * 표준 EMA를 계산한다.
 *
 * 재귀식: EMA_t = alpha * P_t + (1 - alpha) * EMA_{t-1}
 * 평활 계수: alpha = 2 / (period + 1)
 * 초기값: 첫 period개의 SMA
 *
 * SMA와의 구조적 차이:
 * - SMA는 고정 윈도우(n개)의 산술평균. 윈도우 밖 데이터는 영향력 0.
 * - EMA는 재귀식으로, 모든 과거 데이터가 기하급수적으로 감소하는 가중치로 반영됨.
 * - EMA는 이전 EMA 하나만 기억하면 됨 (O(1) 메모리).
 * - SMA의 "윈도우 효과"(가장 오래된 값이 빠질 때 급변)가 EMA에는 없음.
 */
function calculateEMA(input: EMAInput): EMAResult {
  const { prices, period = 20 } = input;

  // 엣지 케이스: period 유효성 검증
  if (period < 1 || !Number.isInteger(period)) {
    throw new Error(`Invalid period: ${period}. Must be a positive integer.`);
  }

  // period=1이면 alpha=1이므로 EMA = 원래 가격
  if (period === 1) {
    return { values: [...prices] };
  }

  // 데이터 부족
  if (prices.length < period) {
    return { values: [] };
  }

  // NaN/undefined 값 검증
  for (let i = 0; i < prices.length; i++) {
    if (prices[i] === undefined || prices[i] === null || isNaN(prices[i])) {
      throw new Error(
        `Invalid price at index ${i}: ${prices[i]}. All prices must be valid numbers.`
      );
    }
  }

  // 평활 계수: alpha = 2 / (n + 1) — Murphy(1999)의 관례
  const alpha = 2 / (period + 1);

  // 1단계: 초기값 = 첫 period개의 SMA
  // 데이터가 충분히 쌓이면 초기값의 영향은 무시할 수준으로 감소[^hunter1986]
  let sum = 0;
  for (let i = 0; i < period; i++) {
    sum += prices[i];
  }
  const initialSMA = sum / period;

  const emaValues: number[] = [initialSMA];

  // 2단계: 재귀적 EMA 계산
  // EMA_t = alpha * P_t + (1 - alpha) * EMA_{t-1}
  for (let i = period; i < prices.length; i++) {
    const prevEMA = emaValues[emaValues.length - 1];
    const newEMA = alpha * prices[i] + (1 - alpha) * prevEMA;
    emaValues.push(newEMA);
  }

  return { values: emaValues };
}

Wilder's Smoothed Moving Average (α = 1/n)

/**
 * Wilder's Smoothed Moving Average (SMMA)를 계산한다.
 *
 * Wilder(1978)가 RSI, ADX 등에서 사용한 변형.
 * 표준 EMA와 구조는 동일하나 평활 계수가 다르다:
 * - 표준 EMA: alpha = 2 / (n + 1)
 * - Wilder's:  alpha = 1 / n
 *
 * 수학적 동치: SMMA(n) = EMA(2n - 1)
 * 예: Wilder's 14-period SMMA = 27-period 표준 EMA
 */
function calculateWilderSmoothing(input: {
  values: number[];
  period?: number;
}): { values: number[] } {
  const { values, period = 14 } = input;

  if (period < 1 || !Number.isInteger(period)) {
    throw new Error(`Invalid period: ${period}. Must be a positive integer.`);
  }
  if (period === 1) return { values: [...values] };
  if (values.length < period) return { values: [] };

  for (let i = 0; i < values.length; i++) {
    if (values[i] === undefined || values[i] === null || isNaN(values[i])) {
      throw new Error(`Invalid value at index ${i}: ${values[i]}.`);
    }
  }

  // Wilder 평활 계수: alpha = 1 / n (표준 EMA의 약 절반)
  // 14기간: Wilder alpha = 0.0714, 표준 EMA alpha = 0.1333
  const alpha = 1 / period;

  let sum = 0;
  for (let i = 0; i < period; i++) sum += values[i];
  const initialSMA = sum / period;

  const smmaValues: number[] = [initialSMA];

  // Wilder의 원래 표기: SMMA_t = (SMMA_{t-1} * (period - 1) + value_t) / period
  // 이는 alpha = 1/period인 EMA 재귀식과 정확히 동치
  for (let i = period; i < values.length; i++) {
    const prev = smmaValues[smmaValues.length - 1];
    const newSMMA = (prev * (period - 1) + values[i]) / period;
    smmaValues.push(newSMMA);
  }

  return { values: smmaValues };
}

엣지 케이스

케이스입력출력설명
빈 배열{ prices: [] }{ values: [] }에러 없이 빈 결과
데이터 부족{ prices: [100, 101], period: 20 }{ values: [] }최소 period개 필요
period = 1{ prices: [10, 20, 30] }{ values: [10, 20, 30] }alpha=1이므로 원래 가격 반환
동일 가격 반복{ prices: [50,50,50,...], period: 5 }모두 50변동 없으면 EMA = 가격
NaN 입력가격에 NaN 포함Error 발생조기 검증으로 디버깅 지원
소수점 period{ period: 3.5 }Error 발생정수만 허용
0 또는 음수 period{ period: 0 }Error 발생양의 정수만 허용

수동 계산 검증

5기간 EMA (alpha = 2/6 ≈ 0.3333)로 수동 검증:

const prices = [22, 24, 23, 25, 26, 28, 27, 29];
// Step 1: 초기 SMA = (22 + 24 + 23 + 25 + 26) / 5 = 24.0
// Step 2: EMA[5] = 0.3333 * 28 + 0.6667 * 24.0    = 25.3333
// Step 3: EMA[6] = 0.3333 * 27 + 0.6667 * 25.3333 = 25.8889
// Step 4: EMA[7] = 0.3333 * 29 + 0.6667 * 25.8889 = 26.9259

const result = calculateEMA({ prices, period: 5 });
// result.values = [24.0, 25.3333, 25.8889, 26.9259]

동일 데이터에서 Wilder's Smoothing (alpha = 1/5 = 0.2)과 비교:

// 표준 EMA: [24.0, 25.3333, 25.8889, 26.9259]  (alpha=0.3333)
// Wilder:   [24.0, 24.8,    25.24,   25.992]   (alpha=0.2)
// 28이 들어왔을 때 표준 EMA는 25.33으로 빠르게 상승, Wilder는 24.8로 완만하게 상승

technicalindicators 라이브러리 비교

항목본 구현technicalindicators
API 형태함수형클래스 정적 메서드
실시간 지원없음 (배치 전용)nextValue() Generator 패턴
초기값 방식SMA 초기화 (명시적)SMA 초기화 (내부 처리)
alpha 공식2 / (period + 1)2 / (period + 1) (동일)
엣지 케이스명시적 에러빈 배열 반환
Wilder 변형별도 함수 제공없음 (RSI 내부에서만)

프로덕션에서는 technicalindicatorsnextValue()로 새 캔들이 들어올 때 전체 재계산 없이 EMA를 갱신할 수 있다. 본 구현은 교육 목적으로 배치 방식만 제공한다. 알고리즘과 결과값은 동일하다.


요약

항목내용
창시자/연도Robert Goodell Brown (1956) — 재고 예측 / Pete Haurlan (1960s) — 금융 시장 최초 적용
유형추세 지표, 후행 지표, 오버레이
계산EMAt=αPt+(1α)EMAt1\text{EMA}_t = \alpha P_t + (1-\alpha) \text{EMA}_{t-1}
평활 계수α=2/(n+1)\alpha = 2/(n+1) (표준), α=1/n\alpha = 1/n (Wilder)
초기값nn개 가격의 SMA
기본 기간9, 12, 20, 26, 50, 200
반감기h=ln2/ln(1α)(n1)/2ln2h = -\ln 2 / \ln(1-\alpha) \approx (n-1)/2 \cdot \ln 2
이론적 lag(n1)/2(n-1)/2 (SMA와 동일)
메모리O(1)O(1) (이전 EMA 값 하나)
장점SMA보다 빠른 체감 반응, 최근 데이터 중시, 윈도우 효과 없음
단점노이즈 민감, 초기값 의존, Whipsaw, α\alpha 선택 주관성
주요 응용MACD(12,26,9), 골든/데드크로스(50/200), 동적 지지/저항(20, 50)
Wilder 동치SMMA(nn) = EMA(2n12n-1) — RSI(14) = EMA(27)의 반응 속도
적합 시장추세장(유효), 단기 트레이딩, 암호화폐 24/7 시장
부적합 시장횡보장(Whipsaw), 극단적 급등락 직후

Footnotes

  1. Brown, R.G. (1963). Smoothing, Forecasting and Prediction of Discrete Time Series. Prentice-Hall, 468p. ISBN 978-0138153083. 2 3 4 5 6 7 8 9 10 11 12 13 14

  2. Brown, R.G. (1956). Exponential Smoothing for Predicting Demand. Arthur D. Little, Inc., Cambridge 42, Massachusetts. 2

  3. Brown, R.G. (1959). Statistical Forecasting for Inventory Control. McGraw-Hill, 232p. 2

  4. Holt, C.C. (2004). "Forecasting Seasonals and Trends by Exponentially Weighted Moving Averages." International Journal of Forecasting, Vol. 20, No. 1, pp. 5-10. DOI: 10.1016/j.ijforecast.2003.09.015. (1957년 ONR Report 52의 재출판) 2

  5. Roberts, S.W. (1959). "Control Chart Tests Based on Geometric Moving Averages." Technometrics, Vol. 1, No. 3, pp. 239-250. DOI: 10.1080/00401706.1959.10489860. 2 3

  6. Hunter, J.S. (1986). "The Exponentially Weighted Moving Average." Journal of Quality Technology, Vol. 18, No. 4, pp. 203-210. DOI: 10.1080/00224065.1986.11979014. 2 3 4 5 6 7 8 9

  7. Wilder, J.W. Jr. (1978). New Concepts in Technical Trading Systems. Trend Research. ISBN 978-0894590276. 2 3 4

  8. Appel, G. (2005). Technical Analysis: Power Tools for Active Investors. Financial Times Prentice Hall. ISBN 978-0131479029. 2 3 4 5 6 7 8 9 10

  9. Gardner, E.S. Jr. (1985). "Exponential Smoothing: The State of the Art." Journal of Forecasting, Vol. 4, pp. 1-28. DOI: 10.1002/for.3980040103. 2 3

  10. Gardner, E.S. Jr. (2006). "Exponential Smoothing: The State of the Art — Part II." International Journal of Forecasting, Vol. 22, No. 4, pp. 637-666. DOI: 10.1016/j.ijforecast.2006.03.005. 2 3 4

  11. Mulloy, P.G. (1994). "Smoothing Data with Faster Moving Averages." Technical Analysis of Stocks & Commodities, Vol. 12, No. 1, pp. 11-19.

  12. Murphy, J.J. (1999). Technical Analysis of the Financial Markets. New York Institute of Finance. ISBN 978-0735200661, pp. 209-215. 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

  13. Kaufman, P.J. (2019). Trading Systems and Methods (6th Edition). Wiley. ISBN 978-1119605355, 1200p. 2 3 4 5 6 7 8 9

참고 문헌 및 출처

[1]

Exponential Smoothing for Predicting Demand

Robert Goodell Brown

1956Arthur D. Little, Inc.

지수평활법의 최초 공식 문서. Arthur D. Little 내부 보고서 / ORSA 컨퍼런스 발표.

[2]

Statistical Forecasting for Inventory Control

Robert Goodell Brown

1959McGraw-Hillpp. 232

지수평활법의 첫 체계적 교과서. 재고관리 수요 예측에 초점.

[3]

Smoothing, Forecasting and Prediction of Discrete Time Series

Robert Goodell Brown

1963Prentice-Hallpp. 468ISBN: 978-0138153083

지수평활법의 수학적 기초를 체계화한 고전. 단순/이중/삼중 지수평활 포함.

[4]

Forecasting Seasonals and Trends by Exponentially Weighted Moving Averages

Charles C. Holt

2004International Journal of Forecastingpp. 5-10DOI: 10.1016/j.ijforecast.2003.09.015

1957년 ONR Report 52의 재출판. 지수가중이동평균의 원조 논문.

[5]

Control Chart Tests Based on Geometric Moving Averages

S.W. Roberts

1959Technometricspp. 239-250DOI: 10.1080/00401706.1959.10489860

EWMA 관리도의 원조 논문. 품질관리 분야에서 기하이동평균(=EWMA) 도입.

[6]

The Exponentially Weighted Moving Average

J. Stuart Hunter

1986Journal of Quality Technologypp. 203-210DOI: 10.1080/00224065.1986.11979014

EWMA의 통계적 특성(IIR 필터, 반감기 등)을 체계적으로 정리.

[7]

Exponential Smoothing: The State of the Art

Everette S. Gardner Jr.

1985Journal of Forecastingpp. 1-28DOI: 10.1002/for.3980040103

1985년까지의 지수평활법 이론/실무 발전 종합 서베이.

[8]

Exponential Smoothing: The State of the Art - Part II

Everette S. Gardner Jr.

2006International Journal of Forecastingpp. 637-666DOI: 10.1016/j.ijforecast.2006.03.005

1985년 이후 20년간의 지수평활법 발전 종합. 상태공간 모델 통합이 핵심 진보.

[9]

Technical Analysis of the Financial Markets

John J. Murphy

1999New York Institute of Financepp. 209-215ISBN: 978-0735200661

EMA의 금융 시장 실전 적용, SMA 비교, 교차 전략. 기술적 분석 표준 교과서.

[10]

Technical Analysis: Power Tools for Active Investors

Gerald Appel

2005Financial Times Prentice HallISBN: 978-0131479029

MACD 창시자가 직접 쓴 기술적 분석 도구 해설서.

[11]

Trading Systems and Methods

Perry J. Kaufman

2019Wileypp. 1200ISBN: 978-1119605355

EMA 수학적 특성, 다양한 이동평균 비교, 트레이딩 시스템 활용의 백과사전적 저작.

[12]

New Concepts in Technical Trading Systems

J. Welles Wilder Jr.

1978Trend ResearchISBN: 978-0894590276

SMMA(Wilder's Smoothing) 소개. alpha=1/N 사용하여 표준 EMA보다 느린 변형.

[13]

Smoothing Data with Faster Moving Averages

Patrick G. Mulloy

1994Technical Analysis of Stocks & Commoditiespp. 11-19

DEMA/TEMA를 최초 소개. EMA의 지연 감소를 위한 이중/삼중 지수평활 방법.

* 모든 내용은 위 학술 자료 및 공식 문서를 기반으로 작성되었습니다.

Exponential Moving Average 실전 분석 보기

메타지표 합의도에서 이 지표가 전략 유효성에 어떻게 기여하는지 확인하세요.

관련 키워드

EMA지수이동평균Exponential Moving Average추세trend지수평활법Exponential SmoothingMACDBrownHoltIIR 필터EWMA