유튜브나 블로그에서 한 번쯤 보셨을 겁니다. "듀얼모멘텀: 연 17% 수익에 2000년 닷컴버블도, 2008년 금융위기도 피한 전략." 그래프를 보면 정말 성배 같죠. 그래서 직접 29년(1997~2026)을 돌려봤습니다. 놀랍게도 — 전체 기간으로 보면 듀얼모멘텀이 100% S&P500을 이깁니다. 연 11.1% vs 9.9%, 그것도 최대 낙폭은 절반(−20% vs −51%)으로요. 공짜 점심이 진짜로 있는 걸까요? 아니요. 그 우위는 대부분 두 번의 약세장(2000·2008)이 만든 것이고, 그 둘을 떼어내면 — 즉 전략이 유명해진 2014년 책 발간 이후로는 — 듀얼모멘텀은 그냥 S&P500에 연율로 ~5%p씩(13년 중 11년) 졌습니다. 게다가 라이브에서 실제로 닥친 두 번의 위기(2020·2022)에선 방어가 작동하기는커녕 반등 초입에 팔고 안전하다던 채권과 함께 떨어졌습니다. 백테스트가 천국이고 라이브가 지옥인 이유를, 보유 자산 월별 기록까지 전부 코드로 까서 보여드립니다.
안녕하세요, 주식하는 개발자 퍼플입니다. 듀얼모멘텀(GEM)은 게리 안토나치가 2014년 책으로 알린 전략이고, 지금도 "월 1회만 신호 보고 갈아타면 위기를 피한다"는 말로 꾸준히 회자됩니다. 그런데 발표된 백테스트와 발표 이후 실제 성적을 같은 그림 위에 놓고 본 글은 드물더군요. 그래서 안토나치의 규칙을 그대로 코드로 옮겨 29년을 돌리고, 2014년(책 발간)을 기준으로 '백테스트 구간'과 '라이브 구간'을 갈라 봤습니다. 아래 숫자는 전부 그 결과입니다.
먼저, 듀얼모멘텀(GEM)이 뭔가 — 규칙은 의외로 단순하다
GEM(Global Equity Momentum, 글로벌 주식 모멘텀)은 월 1회, 단 두 가지 질문만 던집니다.
- 절대 모멘텀 (위험 켤까 끌까): 미국 주식(S&P500)의 지난 12개월 총수익이 단기 국채(T-bill)의 지난 12개월 수익보다 높은가? - 예 → "위험 ON", 주식에 투자한다. - 아니오 → 미국 종합채권으로 도피한다(위험 OFF).
- 상대 모멘텀 (위험 ON일 때, 어느 주식?): 미국 주식 vs 미국 외(선진·신흥) 주식, 지난 12개월 수익이 높은 쪽을 산다.
끝입니다. 매달 말에 이 신호만 보고, 미국주식·미국외주식·채권 셋 중 하나에 100% 들어가 있는 거죠. 추세가 살아 있으면 올라타고, 추세가 꺾이면 채권으로 숨는 — '추세추종'의 가장 단순한 형태입니다.
규칙 한 가지를 분명히 해둡니다(중요). 절대 모멘텀의 판단 기준은 S&P500 자체입니다(상대 모멘텀에서 이긴 자산이 아니라). 이게 안토나치의 원조(canonical) GEM이에요. 인터넷의 다른 재현 중엔 '상대 모멘텀 승자'에 절대 필터를 거는 변형도 있는데, 그러면 결과가 꽤 달라집니다. 이 글은 원조 규칙을 씁니다.
결론 먼저 ① — 29년 전체로는 정말 '공짜 점심'처럼 보인다
1997년 5월부터 2026년 6월까지(29년, 350개월), 매달 신호대로 갈아타는 GEM을 그대로 굴려 100% S&P500 보유, 그리고 60/40과 비교했습니다.
| 1997–2026 (29년) | 연수익(CAGR) | 최대낙폭(MDD) | $1 → |
|---|---|---|---|
| 듀얼모멘텀(GEM) | 11.09% | −19.7% | $21.50 |
| 100% S&P500 (그냥 보유) | 9.86% | −51.0% | $15.54 |
| 60/40 | 7.80% | −32.5% | $8.93 |
솔직히 인정해야 합니다 — 이 표만 보면 듀얼모멘텀은 거의 완벽합니다. 수익은 S&P500보다 높고(연 11.1% vs 9.9%, $1이 29년 뒤 $21.5 vs $15.5), 최대 낙폭은 절반도 안 됩니다(−20% vs −51%). 더 벌면서 덜 떨어진다 — 투자에서 가장 듣고 싶은 말이죠. "듀얼모멘텀이 성배"라는 평이 괜히 나온 게 아닙니다.
그런데 평균과 합계는 거짓말을 잘합니다. 저 29년을 둘로 쪼개면 전혀 다른 그림이 나옵니다.
결론 먼저 ② — 그 우위는 대부분 2000·2008이 만들었다
전략이 책으로 알려진 2014년을 기준선으로, 그 전(인샘플)과 그 후(라이브, 아웃샘플)를 갈라봤습니다.
| 듀얼모멘텀(GEM) | 100% S&P500 | ||
|---|---|---|---|
| 인샘플 1997–2013 (닷컴 + 금융위기) | 12.85% / MDD −20% | 7.08% / MDD −51% | GEM 압승 |
| 아웃샘플 2014–2026 (발표 이후) | 8.79% / MDD −20% | 13.68% / MDD −24% | GEM 완패 |
순위가 완전히 뒤집힙니다.
- 인샘플(2013년 이전): GEM 연 12.85% vs S&P500 7.08% — 거의 두 배입니다. 이 시기 S&P500은 닷컴버블(2000)과 금융위기(2008)를 연달아 맞아 13년을 사실상 제자리걸음(연 7%)한 '잃어버린 시대'였고, GEM은 그 두 폭락을 채권으로 피하며 압도했습니다.
- 아웃샘플(2014년 이후): GEM 연 8.79% vs S&P500 13.68% — 이번엔 GEM이 연율로 ~5%p씩(해마다 따지면 달력연도 13개 중 11개 해) 뒤집니다. 큰 폭락 없이 시장이 우상향한 12년 동안, 채권으로 들락거린 GEM은 상승을 놓쳤습니다.

위 그래프 윗 패널이 핵심입니다. GEM(파랑)이 S&P500(빨강) 위로 벌려놓은 격차는 대부분 2000년과 2008년, 딱 두 구간에서 만들어졌습니다(나머지는 2000년대에 미국 외 주식이 강했던 시기를 상대 모멘텀으로 올라탄 덕입니다). 그 뒤 음영 구간(2014~)에선 빨간 선이 더 가파르게 올라 격차를 좁히죠. 즉 "29년 전체 GEM 우위"라는 헤드라인은, 2000·2008이라는 특정 종류의 약세장이 인샘플에 들어 있었기에 가능했던 것입니다. 그게 또 올 거라는 보장은 어디에도 없고요.
방어는 진짜다 — 단, '느린 약세장'에 한해서
오해는 말죠. 듀얼모멘텀의 위기 방어는 가짜가 아닙니다. 인샘플의 두 폭락에서 GEM이 무엇을 했는지 보면 분명합니다.
| 위기 구간 | 듀얼모멘텀 | 100% S&P500 |
|---|---|---|
| 닷컴버블 2000-09 ~ 2002-09 | +0.9% | −38.0% |
| 금융위기 2007-10 ~ 2009-02 | −7.4% | −44.2% |
S&P500이 38%, 44% 무너지는 동안 GEM은 거의 본전(+0.9%)을 지키거나 −7%로 막았습니다. 코드의 보유 기록을 봐도 2008년 하반기부터 2009년 초까지 GEM은 100% 채권에 들어가 있었습니다. 닷컴버블도, 금융위기도 몇 달에 걸쳐 천천히 무너진 약세장이라, "12개월 추세가 꺾이면 채권으로"라는 GEM의 월 1회 신호가 제때 작동할 시간이 있었던 거죠. 느리게 굴러떨어지는 약세장 — 여기가 듀얼모멘텀이 진짜 영웅이 되는 무대입니다.
문제는, 모든 위기가 그렇게 친절하게 오지 않는다는 겁니다.
발표 후엔 시장에 졌다 — 그리고 두 번의 시험에서 휘청였다
아웃샘플(2014~2026)의 성적표는 냉정합니다. GEM은 연 8.79%로 S&P500의 13.68%에 연율 기준 ~5%p씩(13년 중 11년) 졌습니다. "그래도 낙폭은 작잖아?"라고요? 이 구간엔 GEM의 MDD가 −19.6%, S&P500이 −23.9% — 차이가 겨우 4%p입니다. 큰 폭락이 안 왔으니 방어할 것도 별로 없었고, 그 미미한 방어를 얻자고 연 5%p의 수익을 포기한 셈이죠. "낙폭이 작으면 위험 대비론 GEM이 낫지 않냐"는 반론도 이 구간엔 통하지 않습니다 — 변동성까지 감안한 위험조정 수익률(샤프 지수)로 따져도 GEM 0.58 vs S&P500 0.83으로 100% 주식이 앞섭니다(두 전략의 변동성은 12.7% vs 14.7%로 비슷한데 수익 격차가 커서, 작은 낙폭 우위로는 못 메우는 거죠). 보험을 잔뜩 들었는데 정작 사고가 안 났고, 보험료만 비쌌던 겁니다.
그럼 왜 무너졌을까요? 흔히 "GEM이 미국 외 주식(상대 모멘텀)을 들고 있다가 미국에 졌다"고 설명하는데, 보유 기록을 까보면 그건 과장입니다. 아웃샘플 동안 GEM이 실제로 들고 있던 자산 비중은 — 미국주식 70.7%, 미국외주식 16.0%, 채권 13.3%였습니다. 대부분(70.7%) 미국에 제대로 들어가 있었어요. 진짜 범인은 나머지 30%, 즉 '엉뚱한 순간에 미국 밖으로 나가 있던 시간'과 잦은 갈아타기(아웃샘플 21회, 연 1.7회)에서 생긴 휩쏘(whipsaw)입니다. 그리고 그 휩쏘가 가장 비싸게 청구된 게 라이브에서 실제로 닥친 두 번의 위기였습니다.
- 2020년 코로나 (빠른 V자 폭락). GEM의 보유 기록: 1~3월 미국주식(폭락을 그대로 다 맞음) → 4·5월 채권(이미 바닥을 지나고 나서야 도피) → 6월 다시 미국주식(비싸게 재매수). 결과는 2020년 GEM +2.4% vs S&P500 +18.4%. 한 달짜리 폭락은 월 1회 신호보다 빨라서, GEM은 3월 바닥을 지난 뒤 반등 초입에(이미 바닥에서 한참 오른 가격에) 팔아, 그 뒤의 V자 반등을 통째로 놓치는 교과서적 휩쏘를 당했습니다. 느린 약세장의 영웅이, 빠른 폭락엔 가장 나쁜 타이밍으로 움직인 거죠.
- 2022년 (주식·채권 동반 하락). GEM은 1~5월 미국주식을 들고 있다가 6월부터 채권으로 도피했습니다. 그런데 그해는 금리 급등으로 채권도 −13.2% 떨어진 해였죠. 안전하다던 도피처가 안전하지 않았던 겁니다. 결과는 GEM −16.7% vs S&P500 −18.1% — 겨우 1.4%p 막았습니다. GEM이 가장 빛나야 할 '주식 하락의 해'에, 방어가 거의 작동하지 않았어요. (올웨더 글에서 본 "2022년엔 주식과 채권이 같이 떨어져 분산이 깨졌다"는 바로 그 장면입니다.)
정리하면 — 아웃샘플의 평결은 "GEM이 방어를 안 했다"가 아니라, "수익은 크게 뒤졌고, 정작 시험대에 올랐을 때 방어가 불안정했다"입니다.
그래도 29년 전체로는 GEM이 이기지 않나 — 예상되는 반론
가장 날카로운 반론은 이겁니다. "네가 본 라이브 구간은 큰 폭락이 없던 운 좋은 시기였을 뿐이다. 게다가 그 라이브까지 다 포함한 29년 전체로도 GEM은 여전히 11.1% vs 9.9%로 이긴다. 다음에 2008 같은 게 또 오면 GEM이 회수한다."
절반은 맞습니다. 느린 약세장이 다시 오면 GEM의 보험은 실제로 값을 합니다. 저는 GEM이 영구히 고장 났다고 주장하는 게 아니에요. 하지만 이 반론은 두 가지를 놓칩니다.
- '29년 전체 11.1%'는 이미 일어난 두 폭락(2000·2008)을 세는 숫자지, 앞으로의 기대치가 아닙니다. 지난 폭락은 다시 쓸 수 없죠. 그 두 번을 떼고 전략이 알려진 뒤의 12년만 보는 것 — 그게 바로 '미래를 미리 들여다본' 가장 정직한 표본인데, 거기서 GEM은 13년 중 11년을 지며 연율로 ~5%p 뒤졌습니다.
- 보험료는 꼬박꼬박 나가지만, 보험금은 특정한 모양의 사고에만 나옵니다. 솔직히 말하면, 이 ~5%p/년이라는 비용도 우상향장의 산물입니다 — 추세추종은 시장이 길게 오를 때 가장 비싸고, 횡보장이라면 이 비용은 훨씬 작아집니다(미국 2000년대처럼요). 즉 비용은 강세장에서 청구되고, 보험금은 (a) 느린 약세장이 와야 나오며 (b) 빠른 폭락(2020)·채권 동반 하락(2022)엔 오히려 거꾸로 샙니다. 그러니 진짜 질문은 "GEM이 도움이 될 수 있나?"(될 수 있습니다)가 아니라 — "한 종류의 위기에만 듣고 최근 두 번은 오작동한 보험을, 강세장에선 비싼 값에 드는 게 좋은 거래인가?"입니다. 백테스트의 화려한 그래프는 바로 이 질문을 가립니다.
코드 — 신호 한 조각
개발자의 영역입니다. 이 백테스트의 심장은 매달 "무엇을 들고 있을지" 정하는 신호 함수 하나입니다. look-ahead(미래 참조)를 막는 게 핵심이라, 신호는 그달 말까지의 데이터로만 계산하고, 포지션은 다음 달에 적용합니다.
# 매월 말, 12개월 총수익으로 보유 자산 결정 (canonical GEM)
def decide(us12, exus12, tbill12): # 각각 미국·미국외·T-bill의 '지난 12개월 수익'
if us12 > tbill12: # 절대 모멘텀: 주식 추세가 국채보다 강한가?
return "US" if us12 >= exus12 else "EXUS" # 상대 모멘텀: 더 강한 주식
return "BOND" # 추세 꺾임 -> 채권으로 도피
decision = {t: decide(...) for t in months} # t월 말에 결정
held = decision.shift(1) # t+1월에 적용 (미래 참조 차단)
# 그 달 수익 = 'held'가 가리키는 자산의 그 달 총수익. (전체 엔진·검증·차트는 backtest.py)
held = decision.shift(1) 한 줄이 정직성의 핵심입니다 — 이번 달 말에 알게 될 신호로 이번 달 수익을 먹는 반칙을 막아주거든요. 그리고 저 held 기록 덕분에 "2020년 4월에 채권으로 도망쳤다", "아웃샘플의 70.7%는 미국에 있었다" 같은 메커니즘을 추측이 아니라 데이터로 말할 수 있습니다. 백테스트는 숫자 하나(CAGR)가 아니라, 매달 무엇을 왜 들고 있었는지의 기록이어야 하니까요.
검증도 코드로 박았습니다. 깊은 위기(2002-07·2008-11·2009-01)에 GEM이 반드시 채권에 있어야 한다는 단언(assert)을 넣어, 신호가 거꾸로 꼬이면 백테스트가 조용히 그럴듯한 틀린 곡선을 그리는 대신 즉시 멈추게 했습니다. (실제로 2008년 하반기~2009년 초 채권 비중은 100%로 통과했습니다.)
함정 — 따라 하기 전 반드시 알 것
- 내가 돌린 건 안토나치의 '그 백테스트'가 아니다. 안토나치가 발표한 백테스트는 1974~2013년에 약 17% CAGR였습니다. 제가 받을 수 있는 데이터로 재현한 인샘플(1997~2013)은 12.85%로, 그의 17%만큼은 아니에요(기간·자산·지수가 다릅니다). 둘은 다른 계산이며, 위 그래프의 '2014년' 선은 제 1997~2013 구간을 안토나치의 백테스트라 주장하는 게 아니라 단지 책이 나온 시점일 뿐입니다. 그래도 "인샘플에선 S&P500을 압도한다"는 그림은 양쪽 모두 같습니다.
- 이건 미국 데이터다 — 한국 계좌엔 그대로 못 옮긴다. ⚠️ 가장 중요한 함정입니다. GEM은 월 1회 갈아타는 전략이라, 한국에서 실제로 굴리면 매번 매매할 때마다 국내 상장 ETF는 배당소득세 15.4%, 해외 상장 ETF는 양도세가 붙고(자세한 건 ETF 세금 글), 미국 외 주식·단기 국채 신호를 한국 상품으로 똑같이 복제하기도 어렵습니다. 세금과 마찰만으로도 백테스트의 (이미 사라진) 우위는 더 깎입니다. 미국의 무비용 백테스트 숫자를 한국 실전 수익으로 착각하지 마세요.
- 백테스트는 비용·세금 0이다. 위 모든 숫자는 매매비용·세금·슬리피지를 빼지 않은 순수 수익률입니다. GEM은 손이 많이 가는 전략이라 현실에선 이 마찰이 결과를 더 끌어내립니다 — 이미 진 게임에서 페널티가 추가되는 셈이죠.
- 자산 데이터의 미세한 비대칭. 미국주식은 비용 0의 총수익 지수(^SP500TR), 미국외·채권은 실제 펀드(보수 차감 후)를 썼습니다. 미국 구간은 벤치마크와 GEM이 같은 지수를 쓰므로 대칭이고, 미국외·채권 구간만 펀드 보수를 약간 부담합니다(현실적이고 미미). 펀드들의 총수익은 실제 ETF(VEU·AGG)와 교차검증해 분배금 누락이 없음을 확인했습니다(월수익 상관 0.98~1.00).
- 표본은 위기 2번이 전부다. 인샘플 우위의 원천은 닷컴·금융위기 단 두 번입니다. "GEM은 위기에 강하다"는 말은 사실이지만, n=2짜리 증거 위에 서 있고 그 두 번이 모두 느린 약세장이었다는 조건이 붙습니다.
그래서, 누구에게 맞나
- "다음에도 2008 같은 느린 약세장이 온다"에 거는 사람 → GEM의 방어는 그런 종류의 위기엔 실제로 강력합니다. 다만 그게 언제 올지, 다음 위기가 2008형(느림)일지 2020형(빠름)·2022형(주식·채권 동반)일지는 아무도 모릅니다. 이 전략은 특정 모양의 위기에 대한 베팅이지, 만능 보험이 아닙니다.
- 단순함과 마음의 평화를 원하는 사람 → 차라리 자산을 섞어 들고 가는 쪽(올웨더·자산배분)이 매매·세금·휩쏘 없이 비슷한 '덜 떨림'을 줍니다. GEM처럼 갈아타는 방어는 빠른 폭락 앞에서 오히려 손해를 키울 수 있습니다.
- 대부분의 장기 투자자 → 발표 이후 12년의 교훈은 명확합니다. 마켓 타이밍은 — 그게 12개월 모멘텀이라는 규칙으로 포장돼 있어도 — 우상향장에선 비쌉니다. 단순한 매수 후 보유나 분산 포트폴리오를 이기기는 생각보다 훨씬 어렵습니다.
- 그래도 추세추종을 해보고 싶다면 → 백테스트의 화려한 숫자가 아니라, 발표 이후의 라이브 성적과 휩쏘 비용으로 기대치를 잡으세요. 그리고 전 재산이 아니라 일부로, 세금이 가벼운 계좌에서, 규칙을 예외 없이 지킬 수 있을 때만 하세요. 규칙을 어기는 순간, 그건 모멘텀 전략이 아니라 그냥 감으로 하는 매매입니다.
요약
듀얼모멘텀(GEM)은 백테스트가 너무 아름다워서 의심을 사야 하는 전략입니다. 29년 전체로 보면 연 11.1%에 최대낙폭 −20%로 100% S&P500(9.9%·−51%)을 이깁니다. 하지만 그 우위는 대부분 2000·2008 두 약세장이 만든 것이고, 전략이 알려진 2014년 이후로는 GEM이 연 8.8%로 S&P500의 13.7%에 13년 중 11년을 지며 연율로 ~5%p 뒤졌습니다. 방어가 진짜이긴 합니다 — 닷컴·금융위기처럼 느리게 무너지는 약세장에선 본전을 지켰죠. 그러나 라이브에서 실제로 닥친 두 번의 시험에선, 2020년엔 반등 초입에 팔아 V자 반등을 놓쳤고(+2.4% vs +18.4%), 2022년엔 도망친 채권마저 같이 떨어졌습니다(−16.7% vs −18.1%). 보유 기록을 까보면 아웃샘플의 70.7%는 미국에 제대로 있었으니, 패배의 원인은 '미국 외 주식'이 아니라 엉뚱한 순간의 갈아타기(휩쏘)였습니다. 이건 무한매수법의 "낮은 노출은 덜 벌고 방어도 약하다", 올웨더의 "분산은 조건부 보험", 분할매수의 "위험을 줄이는 건 공짜가 아니다"와 정확히 한 가족입니다 — 위험을 통제하는 모든 규율은, 그 대가로 수익을 내놓습니다. 듀얼모멘텀의 대가는 '느린 약세장이 와줘야만 회수되는, 그리고 빠른 위기엔 거꾸로 청구되는' 비싼 보험료였습니다.
데이터 기준: CAGR·MDD·보유 비중·위기 수익은 yfinance의 총수익(배당 재투자) 데이터로 직접 백테스트한 값입니다. 자산은 미국주식 = ^SP500TR(S&P500 총수익 지수), 미국외주식 = VGTSX(뱅가드 토탈 인터내셔널, 1996-04~ — 이 펀드의 상장이 백테스트 시작점을 정했습니다), 미국채권 = VBMFX(뱅가드 미국 종합채권), 절대 모멘텀 기준 = ^IRX(13주 미국 T-bill 금리)로 만든 T-bill 총수익 지수입니다. 펀드 프록시의 총수익은 실제 ETF(VEU·AGG)와 교차검증했습니다(월수익 상관 미국외 0.998·채권 0.977, 누적 총수익도 근접). 규칙은 게리 안토나치의 원조 GEM(Global Equity Momentum)을 따랐습니다 — 매월 말 12개월 총수익으로 ①절대 모멘텀(S&P500 vs T-bill)으로 주식/채권을 정하고 ②위험 ON이면 상대 모멘텀(미국 vs 미국외)으로 강한 쪽을 보유, 절대 필터의 기준은 S&P500 자체입니다(상대 승자가 아니라 — 다른 변형은 결과가 다릅니다). 신호는 그달 말 데이터까지만 쓰고 포지션은 다음 달에 적용해 미래 참조를 차단했고, 깊은 위기(2002·2008~09)의 채권 보유는 코드 단언으로 검증했습니다. 측정 구간은 1997-05~2026-06(350개월)이며, 인샘플/아웃샘플 분기점은 안토나치의 책 Dual Momentum Investing 발간 시점(2014년)입니다. 제가 재현한 인샘플 CAGR(12.85%)은 안토나치가 발표한 백테스트(1974~2013, 약 17%)와 다른 계산입니다(기간·자산·지수 상이) — 방향(인샘플에서 S&P500 압도)만 같습니다. 비용·세금·슬리피지는 미반영(순수 수익 비교)이며, 실제 한국 계좌에서는 월 1회 매매에 따른 세금·마찰이 결과를 더 끌어내립니다. 발행 시점 종가는 라이브 시세와 교차 확인했습니다. 국내 상장 상품은 역사가 짧아 미국 데이터를 프록시로 사용했습니다.
과거 성과가 미래 수익을 보장하지 않습니다. 투자 판단과 책임은 본인에게 있습니다.
📮 새 글, 놓치지 마세요
ETF·연금·투자전략을 데이터로 파헤치는 글을 꾸준히 올립니다. 이 블로그의 '구독하기' 버튼(글 아래 또는 우측 상단)을 누르면 새 글을 티스토리 홈·앱에서 바로 받아볼 수 있어요.





댓글