11 분 분량

논문 읽기 ①에서 “절대 모멘텀 쪽의 학술적 근거는 시계열 모멘텀이라는 이름으로 나중에 따로 정리됐습니다”라고 한 줄로 넘어간 논문이 있습니다. Tobias Moskowitz, Yao Hua Ooi, Lasse Heje Pedersen이 2012년 Journal of Financial Economics에 실은 “Time series momentum”입니다. 입문 시리즈의 첫 백테스트에서 코스피 하나로 돌린 “12개월 수익률이 플러스면 보유”와 같은 생각을 주가지수·국채·통화·원자재 선물 58개로 넓혀 검증한 논문입니다.

논문 읽기 ①에서는 이미 만들어진 공개 모멘텀 팩터로 논문의 주장을 확인했고, 논문 읽기 ②는 코드 없이 읽었습니다. 이번 논문은 규칙이 단순하고 올웨더 글에서 쓴 미국 주식·채권·금 데이터가 이미 있어서, 논문을 정리한 뒤 세 자산으로 작게 따라 해 봤습니다. 무위험 수익률을 가져오는 파마-프렌치 공개 사본이 2020년 7월에서 끝나서 기간도 거기까지입니다.

상대 모멘텀과 무엇이 다른가

모멘텀 글의 표로 돌아가면, Jegadeesh와 Titman의 모멘텀은 종목끼리 비교합니다. 지난 몇 달(대표적으로 6개월)의 승자를 사고 패자를 공매도하기 때문에 시장 전체가 오르든 내리든 승자와 패자는 늘 있습니다. 시계열 모멘텀은 비교 대상이 자기 자신의 과거입니다. 이 자산의 지난 12개월 초과수익률, 즉 같은 기간 무위험 금리를 뺀 수익이 플러스면 사고 마이너스면 공매도합니다. 첫 백테스트처럼 현금으로 물러나는 것이 아니라 하락 쪽에 선다는 점이 다릅니다. 모든 자산이 함께 오르는 해에는 전부 사고, 함께 내리는 해에는 전부 공매도할 수 있습니다.

무엇을 했나

자료는 거래가 활발한 선물과 선도 계약 58개입니다. 주가지수 9개, 국채 13개, 통화 12개, 원자재 24개입니다. 데이터는 1965년부터 2009년까지 있고 상품마다 시작 시점이 다르며, 전략의 성과는 주로 1985년부터 2009년까지를 봅니다. 선물을 쓰면 공매도와 레버리지가 쉽고, 수익률이 이미 무위험 금리를 뺀 초과수익률에 가깝다는 장점이 있습니다.

검증은 두 단계였습니다.

  1. 예측력 확인. 이번 달 수익률을 k개월 전 수익률(또는 그 부호)로 회귀분석했습니다. 58개 상품을 한꺼번에 묶어서 돌렸고, k를 1부터 60까지 바꿔 가며 기울기의 t값을 봤습니다.
  2. 전략 구성. 지난 k개월 초과수익률의 부호대로 사거나 공매도하고, h개월 들고 있습니다. 대표 조합은 k=12, h=1입니다. 포지션 크기는 최근 일별 수익률로 추정한 변동성에 반비례하게 정해서, 상품마다 연 변동성 40%가 되도록 맞췄습니다. 원자재처럼 크게 흔들리는 상품과 국채처럼 조용한 상품이 포트폴리오에 비슷한 위험으로 들어가게 하는 장치입니다. 개별 상품을 40%에 맞춰도 여러 개를 섞으면 분산 효과로 포트폴리오 전체의 변동성은 훨씬 낮아집니다.

무엇을 발견했나

1~12개월은 추세가 이어지고, 그 뒤로는 일부 되돌아갑니다. 지난 1~12개월 수익률의 부호는 다음 달 수익률과 같은 방향이었고, 12개월을 넘어가면 기울기가 대체로 음수로 바뀌었습니다. 저자들은 이것을 “처음에는 정보에 덜 반응하고(과소반응), 나중에는 지나치게 반응한다(지연된 과잉반응)”는 행동재무학의 설명과 맞는 결과로 해석했습니다.

58개 상품 하나하나에서 모두, 자산군을 가리지 않고 나타났습니다. 58개를 고르게 섞은 포트폴리오는 시장·규모·가치 같은 표준 팩터로 거의 설명되지 않는 초과수익을 냈습니다. 종목 간 비교인 상대 모멘텀과는 관련이 있었지만 같은 것은 아니었습니다.

극단적인 시장에서 가장 좋았습니다. 주식 시장 수익률을 가로축에, 시계열 모멘텀의 수익률을 세로축에 놓고 그리면, 시장이 크게 떨어진 시기와 크게 오른 시기 양쪽에서 성과가 좋은 웃는 얼굴 모양이 나왔습니다. 하락이 길게 이어지면 신호가 공매도로 돌아서 하락 쪽에 서기 때문입니다.

누가 돈을 벌고 누가 내주나. 저자들은 미국 상품선물거래위원회(CFTC)의 투자자 유형별 포지션 자료를 함께 봤습니다. 투기적 거래자는 시계열 모멘텀 방향으로 포지션을 늘렸고, 그 수익은 위험을 피하려고 반대편에 선 헤저(hedger)들의 비용에서 나왔습니다. 헤저는 가격이 불리하게 움직일 위험을 덜려고 대가를 치르는 쪽이라, 모멘텀 수익이 그 대가의 일부일 수 있다는 것이 저자들의 해석입니다.

세 자산으로 작게 따라 해 보기

규칙은 논문을 따르되 데이터에 맞춰 몇 가지를 바꿨습니다.

  논문 이 글
자산 선물 58개 미국 주식, 미국 10년 국채(금리로 만든 근사치), 금
기간 데이터 1965~2009년 (전략 성과는 주로 1985~2009년) 1973년 2월 ~ 2020년 7월(570개월)
신호 지난 12개월 초과수익률의 부호 가장 최근 한 달을 건너뛴 그 앞 12개월 초과수익률의 부호
마이너스일 때 공매도 공매도
크기 상품마다 연 변동성 40% (일별 수익률로 추정) 자산마다 연 변동성 10% (직전 12개월 월간 수익률로 추정)
비교 대상 표준 팩터, 시장 같은 크기로 늘 매수만 하는 경우

가장 최근 한 달을 건너뛴 이유는 데이터 때문입니다. 실러 주가와 LBMA 금 가격은 그달 매일의 가격을 평균 낸 값이고, 국채 수익률을 만드는 10년물 금리도 월평균입니다. 평균 낸 가격으로 수익률을 만들면 바로 붙은 두 달의 수익률이 같은 날들의 가격을 나눠 쓰게 돼서, 실제로는 없는 양의 자기상관이 생깁니다(Working, 1960). 최근 한 달을 신호에 넣으면 이 인위적인 연결이 예측력처럼 보일 수 있습니다. 실제로 그렇게 돌리면 숫자가 크게 뛰는데, 아래에서 따로 봅니다.

비교 대상도 중요합니다. 변동성에 맞춰 크기를 조절하는 것만으로도 성과가 달라지기 때문에, 늘 매수 쪽에도 똑같은 크기 조절을 넣었습니다. 그러면 두 전략의 차이는 과거 초과수익률의 부호를 따랐느냐 하나만 남습니다. 코드는 tsmom_three_assets.py이고, 같은 폴더에 all_weather.py, asset_allocation_basics.py, value_factor.py가 있어야 돌아갑니다.

import numpy as np
import all_weather                                         # 같은 폴더의 all_weather.py
df = all_weather.load().dropna(subset=["rf"])              # 월별 수익률(stock, mid, gold)과 무위험 수익률(rf)
assets = ["stock", "mid", "gold"]                          # 미국 주식, 10년 국채, 금
ex = df[assets].sub(df["rf"], axis=0)                      # 초과수익률
past = (1 + ex).rolling(12).apply(np.prod, raw=True) - 1   # 12개월 누적 초과수익률
past = past.shift(1)                                       # 최근 한 달을 건너뜀: t-12 ~ t-1개월
w = 0.10 / (ex.rolling(12).std() * np.sqrt(12))            # 자산마다 연 변동성 10%
ts = (np.sign(past) * w).shift(1) * ex                     # 이번 달 말 신호를 다음 달에 적용
lo = w.shift(1) * ex                                       # 같은 크기로 늘 매수

과거의 부호가 다음 달을 가르나

먼저 논문의 첫 단계처럼, 최근 한 달을 건너뛴 그 앞 12개월 초과수익률이 플러스였던 달과 마이너스였던 달로 나눠 다음 달 초과수익률을 비교했습니다.

자산 플러스 다음 달 마이너스 다음 달 차이의 t값
미국 주식 +0.63% (410개월) +0.23% (160개월) 0.95
미국 10년 국채 +0.36% (334개월) +0.08% (236개월) 1.63
금 +1.08% (288개월) −0.42% (282개월) 3.56

세 자산 모두 방향은 모멘텀 쪽이었습니다. 다만 주식과 국채는 차이가 우연과 구별될 만큼 크지 않았고, 뚜렷한 것은 금 하나였습니다.

전략으로 만들면

시계열 모멘텀과 늘 매수의 샤프 비율, 자산별과 세 자산 합산

  시계열 모멘텀 늘 매수 매수 쪽에 있던 달
미국 주식 0.44 0.46 72%
미국 10년 국채 0.34 0.43 59%
금 0.61 0.18 51%
세 자산 합산 0.80 0.61 —

숫자는 샤프 비율로, 위 그림과 같은 값입니다. 자산 하나씩 보면 시계열 모멘텀이 앞선 것은 금뿐입니다. 주식은 72%의 달 동안 매수 쪽에 있어서 늘 매수와 거의 같았고, 국채는 0.43이 0.34로 조금 떨어졌습니다. 그런데 셋을 합치면 0.80 대 0.61로 차이가 벌어집니다. 세 자산의 모멘텀 수익은 서로 거의 따로 움직였기 때문에(자산끼리의 상관 −0.02~0.05), 금에서 크게 얻은 것이 주식과 국채에서 조금 잃은 것을 넉넉히 덮었습니다. 늘 매수 쪽도 자산끼리의 상관은 낮았지만(−0.09~0.06), 금의 샤프가 0.18에 그쳐 합쳐도 덜 올라갔습니다.

합산 기준으로 연 평균 초과수익은 시계열 모멘텀 5.72%, 늘 매수 4.35%였고, 변동성은 7.19%와 7.11%로 비슷했습니다. 최대 낙폭은 −16.66%와 −22.47%였습니다. 시계열 모멘텀 합산은 미국 주식 초과수익률과의 상관이 0.05로, 주식과 거의 무관하게 움직였습니다.

다만 0.80과 0.61의 차이를 월 수익률 차이로 따지면 t값이 1.02입니다. 다음 달 비교 표에서 주식과 국채에 들이댄 기준을 합산에도 똑같이 들이대면, 이 차이 역시 우연과 구별될 만큼 크지 않습니다.

신호를 조금만 바꿔도

과최적화 글에서 본 것처럼 여러 설정 중 가장 좋은 것만 적으면 숫자가 부풀려집니다. 그래서 신호를 바꿔 돌린 결과를 모두 적었습니다.

신호 창 초과수익률 신호 그냥 수익률 신호
최근 한 달까지 넣은 12개월 (논문과 같은 창) 1.05 0.84
최근 한 달을 건너뛴 9개월 0.86 0.67
최근 한 달을 건너뛴 10개월 0.85 0.76
최근 한 달을 건너뛴 11개월 (흔히 12-1이라 부르는 창) 0.87 0.73
최근 한 달을 건너뛴 12개월 (이 글의 기준) 0.80 0.62
최근 한 달을 건너뛴 13개월 0.75 0.67

(세 자산 합산 샤프, 같은 기간 늘 매수는 0.61)

세 가지가 보입니다. 첫째, 최근 한 달을 넣으면 1.05로 뜁니다. 이 12개월 창에서 가장 최근 한 달만 뺀 11개월 창이 0.87이니, 이 차이는 전략의 실력보다 평균 낸 가격이 만든 가짜 연결일 가능성이 큽니다. 둘째, 최근 한 달을 건너뛴 창끼리는 0.75에서 0.87 사이였고 모두 늘 매수보다 높았습니다. 창 하나를 잘 골라서 생긴 결과는 아니라는 뜻입니다.

셋째, 신호 정의 하나가 숫자를 크게 바꿨습니다. 신호를 초과수익률이 아니라 그냥 수익률로 내면 어느 창에서나 합산 샤프가 0.08~0.21 낮아졌고, 이 글의 기준 창에서는 0.62로 늘 매수(0.61)와 거의 같아졌습니다. 주식과 국채에서 두 신호가 엇갈린 달은 금리가 높던 1973~1989년에 몰려 있었습니다. 주식은 38개월 가운데 33개월, 국채는 135개월 가운데 90개월이 이 시기였습니다. 단기 금리가 높으면 채권 값이 조금 올라도 현금보다 못한 경우가 생기는데, 초과수익률 신호는 그런 채권을 공매도했고 수익률 신호는 계속 샀습니다. 그래서 두 신호의 차이도 이 시기에 컸고(합산 샤프 0.82 대 0.31), 1990년 이후로는 0.78 대 0.81로 거의 같았습니다. 사실 처음 짠 코드는 이 글의 기준 창에 그냥 수익률로 신호를 냈는데, 논문의 정의와 대조하다가 고쳤습니다. 이 창에서는 한 단어 차이가 합산 샤프를 늘 매수와 거의 같은 0.62에서 0.80으로 올렸습니다. 다만 위에서 본 대로 0.80과 0.61의 차이도 t값 1.02로 약합니다.

기간을 나누면

기간 미국 주식 미국 10년 국채 금 세 자산 합산
1973~1989 0.17 / 0.15 0.50 / 0.03 0.81 / 0.17 0.82 / 0.19
1990~2009 0.60 / 0.43 0.22 / 0.64 0.53 / 0.03 0.76 / 0.62
2010~2020.7 0.55 / 0.92 0.32 / 0.71 0.43 / 0.48 0.82 / 1.37
1990~2020.7 묶어서 0.58 / 0.62 0.25 / 0.67 0.50 / 0.18 0.78 / 0.87

(샤프 비율, 시계열 모멘텀 / 늘 매수)

시계열 모멘텀 합산의 샤프는 세 구간에서 0.82, 0.76, 0.82로 고르게 나왔습니다. 크게 달라진 것은 늘 매수 쪽입니다. 1973~1989년에는 국채를 늘 들고 있어도 보상이 거의 없었습니다(0.03). 시계열 모멘텀은 1981년까지 금리가 오르던 동안 국채를 공매도해 이 차이를 벌렸습니다. 1990년 이후로는 금리가 내려가는 긴 흐름 속에서 국채를 공매도한 달이 오히려 손해인 경우가 많아 늘 매수에 뒤졌습니다.

1990~2009년에는 주식에서도 0.60 대 0.43으로 앞섰는데, 2000년대 초와 2008년의 긴 하락을 공매도 쪽에서 보낸 덕입니다. 반대로 2010년부터 2020년 7월까지는 주식과 채권이 함께 꾸준히 오르면서 늘 매수가 1.37을 냈습니다. 이 구간에서 주식의 시계열 모멘텀이 진 것은 2015~2016년, 2019년, 2020년의 짧은 조정에서 공매도로 돌아섰다가 반등을 놓친 탓이었습니다. 127개월로 짧은 구간이지만, 논문의 표본이 끝난 뒤 시계열 모멘텀이 나빠졌다기보다 늘 매수가 유난히 좋았던 시기라고 보는 편이 숫자에 맞습니다.

1990년부터 2020년 7월까지를 묶으면 합산 샤프는 0.78 대 0.87로 늘 매수가 앞섰습니다. 전체 기간의 우위는 늘 매수가 0.19에 그친 1973~1989년에서 거의 다 나왔다는 뜻입니다. 시계열 모멘텀 쪽은 세 구간 모두 0.8 안팎으로 꾸준했고, 늘 매수는 0.19에서 1.37까지 오르내렸습니다. 이 세 자산에서 시계열 모멘텀이 준 것은 더 높은 수익보다는 시기에 덜 휘둘리는 성과와 주식과 거의 무관한 움직임에 가까웠습니다.

극단적인 시장에서는

논문의 웃는 얼굴이 나오는지 보려고, 미국 주식의 월 초과수익률을 다섯 구간으로 나눠 같은 달의 시계열 모멘텀 합산 수익률 평균을 구했습니다.

주식 수익률 구간 주식 평균 시계열 모멘텀 합산 평균
1 (최악) −4.81% +0.25%
2 −0.80% +0.10%
3 +0.78% +0.45%
4 +2.39% +0.84%
5 (최고) +5.01% +0.75%

주식이 가장 나빴던 달에도 시계열 모멘텀 합산은 평균 +0.25%로 플러스였습니다. 하지만 논문처럼 양 끝에서 가장 좋은 웃는 얼굴은 아니었습니다. 최악 구간의 +0.25%는 전체 월평균(약 0.48%)보다 낮았고, 최고 구간도 그다음 구간보다 낮았습니다. 논문의 포트폴리오는 주가지수만이 아니라 국채·통화·원자재 수십 개에서 저마다의 추세를 따라갈 수 있었습니다. 세 자산뿐인 구성으로는 하락장에서 잃지 않는 데까지는 갔지만, 극단에서 가장 크게 버는 모양까지 재현하지는 못했습니다.

읽으면서 든 의문들

늘 사는 것과 정말 다른가. 이 글에서 합산 결과는 늘 매수보다 나았지만, 자산 하나씩 보면 앞선 것은 금뿐이었고 다음 달을 가르는 힘이 뚜렷한 것도 금 하나였습니다. 논문 뒤에 나온 연구 중에도 같은 질문을 던진 것들이 있습니다. Kim, Tse, Wald(2016)는 변동성에 맞춰 크기를 조절하지 않으면 시계열 모멘텀과 늘 매수의 성과가 비슷하다며, 성과의 상당 부분이 크기 조절에서 나왔다고 주장했습니다. 이 글에서는 양쪽에 같은 크기 조절을 넣었는데도 합산에서 0.80 대 0.61의 차이가 남았습니다. 다만 그 차이는 t값 1.02로 약하고 1973~1989년에 몰려 있어서, 부호를 따른 것이 더한 몫이 있다고 해도 크다고 말하기는 어렵습니다. Huang 외(2020)는 자산을 하나씩 따로 회귀분석하면 과거 수익률이 다음 수익률을 예측한다는 증거가 약하다고 봤습니다. 여러 자산을 한꺼번에 묶은 회귀의 t값은 커 보이지만 부트스트랩으로 구한 임계값보다 작아 통계적으로 믿기 어렵다는 것이 이들의 결론입니다. 전략 수익도 예측력이 필요 없는, 과거 평균 수익률을 따르는 전략과 거의 같았다고 보고했습니다. 위의 다음 달 비교 표에서 주식과 국채의 t값이 2에 못 미친 것도 이쪽과 맞는 결과입니다. 세 자산과 47년 남짓한 월간 데이터로 어느 쪽이 맞다고 판단하기는 어렵습니다.

변동성 맞춤은 어디까지 전략의 일부인가. 변동성 타기팅 글에서 코스피 하나에 변동성 맞춤을 넣었을 때 최대 낙폭은 줄었지만 연복리도 함께 내려갔습니다. 여러 자산을 섞을 때는 사정이 다릅니다. 크기를 맞추지 않으면 변동성이 큰 자산 하나가 포트폴리오를 지배하기 때문에, 이 장치 없이는 “분산된 시계열 모멘텀”이라는 말 자체가 성립하기 어렵습니다. 그래서 늘 매수 쪽에도 같은 장치를 넣고 비교하는 것이 공정하다고 생각했습니다.

논문 뒤에도 이어졌나. 저자들 일부는 Hurst, Ooi, Pedersen(2017)에서 1·3·12개월 신호를 섞은 비슷한 추세추종 방식을 1880년부터의 데이터와 67개 시장으로 넓혀 확인했습니다. 이 글의 세 자산에서도 시계열 모멘텀 자체의 샤프는 2010년 이후에 그 전과 비슷했고, 달라진 것은 비교 대상이었습니다. 그래도 추세 규칙이 잃는 방식은 분명히 보였습니다. 추세추종 글에서 코스피 200일선이 박스권 9년 동안 낙폭을 쌓았듯, 추세 규칙은 추세가 짧게 끊기는 시기에 늦게 팔고 늦게 사서 잃습니다. 2010년대의 미국 주식이 그런 경우였습니다.

정리하면

  • 시계열 모멘텀은 자산을 서로 비교하지 않고 자기 과거와 비교합니다. 절대 모멘텀의 학술적 이름이고, 논문은 이것을 선물 58개, 네 자산군에서 확인했습니다.
  • 논문의 핵심 결과는 1~12개월의 지속과 그 뒤의 부분적인 반전, 표준 팩터로 설명되지 않는 수익, 극단적인 시장에서의 강세입니다.
  • 미국 주식·10년 국채·금으로 따라 해 보니 합산 샤프는 0.80으로 늘 매수(0.61)보다 높았고, 최근 한 달을 건너뛴 다른 창(0.75~0.87)에서도 마찬가지였습니다. 하지만 차이의 t값은 1.02로 약했고, 우위는 1973~1989년에 몰려 있어 1990년 이후로 묶으면 늘 매수가 앞섰습니다(0.78 대 0.87). 자산별로 앞선 것도 금뿐이었습니다.
  • 시계열 모멘텀의 합산 샤프는 세 구간 모두 0.8 안팎으로 꾸준했고, 주식과의 상관은 0.05였습니다. 이 세 자산에서 얻은 것은 높은 수익보다 시기에 덜 휘둘리는 성과에 가까웠습니다.
  • 신호를 초과수익률이 아니라 그냥 수익률로 내면 이 글의 기준 창에서 합산 샤프가 0.62로 늘 매수(0.61)와 거의 같아졌습니다. 평균 낸 가격에서는 최근 한 달이 가짜 예측력을 만들기 때문에, 최근 한 달까지 넣은 1.05는 믿기 어렵습니다.

데이터와 한계

데이터는 올웨더 글과 같습니다. 미국 주식은 실러의 S&P 500 배당 포함 수익률, 10년 국채는 실러 데이터의 10년물 금리로 “지난달 금리로 산 10년물을 이번 달 금리로 다시 평가”해 만든 근사치, 금은 LBMA 월평균 가격입니다. 무위험 수익률을 가져온 파마-프렌치 파일의 공개 사본이 2020년 7월에서 끝나 기간도 거기서 끝납니다. 앞의 1년여는 신호와 변동성을 계산하는 데 쓰여 실제 비교는 1973년 2월부터입니다.

논문의 58개 대신 3개만 썼기 때문에 분산 효과가 훨씬 작습니다. 공매도와 레버리지는 계산상 가정입니다. 변동성이 10%보다 낮은 달에는 원금보다 큰 포지션이 필요하고(국채는 대부분의 달이 그랬습니다), 세 자산을 공매도하는 데 드는 비용(대차 수수료 등)도 넣지 않았습니다. 거래 비용과 세금은 없습니다. 변동성은 논문처럼 일별 수익률이 아니라 직전 12개월의 월간 수익률로 추정했습니다. 자산마다 맞춘 변동성 수준(10%와 40%)은 샤프 비율에 영향을 주지 않습니다.

2026-10-31 수정: 논문 읽기 ①에 공개 모멘텀 팩터 검증이 더해진 것에 맞춰 앞의 두 편을 소개하는 문장을 고치고, 본문 코드가 그대로 돌아가도록 데이터를 불러오는 줄을 더했습니다.

참고 자료

  • Moskowitz, T. J., Ooi, Y. H., & Pedersen, L. H. (2012). Time series momentum. Journal of Financial Economics, 104(2).
  • Jegadeesh, N., & Titman, S. (1993). Returns to Buying Winners and Selling Losers: Implications for Stock Market Efficiency. Journal of Finance, 48(1).
  • Hurst, B., Ooi, Y. H., & Pedersen, L. H. (2017). A Century of Evidence on Trend-Following Investing. Journal of Portfolio Management, 44(1).
  • Kim, A. Y., Tse, Y., & Wald, J. K. (2016). Time series momentum and volatility scaling. Journal of Financial Markets, 30.
  • Huang, D., Li, J., Wang, L., & Zhou, G. (2020). Time series momentum: Is it there? Journal of Financial Economics, 135(3).
  • Working, H. (1960). Note on the Correlation of First Differences of Averages in a Random Chain. Econometrica, 28(4).

이 글은 학습과 정보 공유 목적으로 작성되었으며, 특정 종목이나 상품에 대한 투자 권유가 아닙니다. 과거 데이터로 계산한 결과는 미래 성과를 보장하지 않습니다. 투자의 판단과 책임은 투자자 본인에게 있습니다.

최종 수정: