변동성 끌림은 반복해서 거는 게임에서 한 판의 기댓값(산술평균)과 오래 굴렸을 때 실제로 남는 성장률(시간평균)이 갈라지는 현상이다. 그 틈은 오르내리는 폭이 클수록 커진다. 레버리지를 걸면 이익은 배율에 비례해 늘지만 이 틈은 배율의 제곱으로 불어난다.
+50% 뒤 −50%면 원금이 아니다

100만 원을 넣었다. 하루 만에 50%가 올랐고, 다음 날 50%가 빠졌다. 남은 돈은 100만 원이 아니라 75만 원이다 — 1.5 × 0.5 = 3/4, 정확히 −25%다. 순서를 바꿔 먼저 반토막이 난 뒤에 50%가 올라도 결과는 똑같다. 곱셈은 순서를 타지 않는다.
폭이 작으면 손실도 작다. +20% 뒤 −20%는 24/25, 손실이 −4%로 작아지지만 0은 아니다. 그리고 손실은 폭에 비례하지 않는다 — 폭이 2.5배가 되는 사이 손실은 4%에서 25%로 6.25배가 됐다. 오르고 내린 폭을 x라 하면 남는 것이 (1 + x)(1 − x) = 1 − x²이라서 그렇다. 이 제곱이 뒤에서 계속 나온다.
여기서 한 걸음 더 나가면 훨씬 이상한 게임이 나온다. 공정한 동전을 던져 앞면이 나오면 자산이 1.5배가 되고, 뒷면이면 0.6배가 된다. 한 판의 기댓값은 (1.5 + 0.6) ÷ 2 = 1.05다. 앞의 +50%/−50% 게임은 기댓값이 딱 1.0이었지만, 이 동전 게임은 한 판마다 평균 5%씩 불려 주기로 되어 있는 게임이다.
그런데 이 게임을 100판 이어서 하면 대부분이 잃는다. 합성 시뮬로 10만 경로를 돌리면 86.4%가 원금 아래에서 끝나고, 전체의 53.9%는 원금의 1%조차 건지지 못한다. 이론 기댓값인 131.5배를 넘긴 경로는 1.00%뿐이다. 평균은 오르는데 내 잔고는 준다 — 두 문장이 동시에 참일 수 있다는 것이 이 글의 출발점이다.
아래가 그 시뮬을 돌린 코드다. 위에서 인용한 10만 경로를 그대로 돌리며, 시드를 고정했으니 실행하면 같은 숫자가 나온다. 볼 것은 세 값이다 — 이론 기댓값, 표본 평균, 그리고 중앙값.
import numpy as np
rng = np.random.default_rng(20260903)
n_paths, n_rounds = 100_000, 100
up, down = 1.5, 0.6
flips = rng.random((n_paths, n_rounds)) < 0.5
w = np.exp(np.cumsum(np.where(flips, np.log(up), np.log(down)), axis=1))[:, -1]
print(f"이론 기댓값 1.05^100 = {1.05 ** n_rounds:.1f}")
print(f"표본 평균 = {w.mean():.1f}")
print(f"중앙값 = {np.median(w):.5f}")
print(f"원금 미만 비율 = {(w < 1).mean() * 100:.1f}%")
print(f"원금의 1% 미만 = {(w < 0.01).mean() * 100:.1f}%")이론 기댓값 1.05^100 = 131.5
표본 평균 = 45.0
중앙값 = 0.00515
원금 미만 비율 = 86.4%
원금의 1% 미만 = 53.9%표본 평균이 이론 기댓값 131.5에 한참 못 미치는 것은 계산이 틀려서가 아니다. 기댓값을 떠받치는 것은 극소수의 궤적이라, 경로를 유한하게 뽑으면 그 궤적이 표본 안에 충분히 들어오지 않는다. 이 시뮬에서 가장 크게 불어난 경로 하나는 468,733배까지 갔다. 평균 45.0은 그런 경로 몇 개가 떠받친 값이다.
두 평균의 틈 — 변동성 끌림
답부터 말하면 이렇다. σ를 한 판 수익률의 표준편차, 즉 오르내리는 폭이라고 하자. 곱셈으로 반복되는 게임에는 평균이 둘 있고, 둘 사이의 틈은 대략 σ²/2다. 이 틈을 변동성 끌림(volatility drag)이라고 부른다. 폭이 커지면 틈도 커진다.
첫 번째 평균은 한 판의 기댓값이다. 여러 사람이 동시에 한 판씩 치고 그 결과를 모아 평균 낸 값이라는 뜻에서 앙상블 평균(ensemble average)이라고도 부른다. 동전 게임에서는 1.05, 즉 +5%다.
두 번째 평균은 한 사람이 오래 굴렸을 때 실제로 겪는 성장률이다. 자산이 매 판 곱해지므로, 이 평균은 수익률을 더해서 내는 것이 아니라 로그를 취해서 더한 뒤 되돌려야 한다. 로그수익률의 평균이 곧 기하평균 성장률이다. 동전 게임으로 계산하면 ½·ln(1.5) + ½·ln(0.6) = ½·ln(0.9) = −0.0527이 나온다. 판당 −5.3%, 곱하는 배수로는 0.949다. 100판이면 0.9의 50제곱, 원금의 0.52%만 남는다.
두 값을 나란히 놓으면 틈이 보인다. 산술평균은 +5%, 시간평균(time average)은 −5.3%, 차이는 0.103이다. 그리고 이 게임의 σ²/2는 0.101이다. 어림값이 실제 틈을 거의 그대로 맞힌다.
그림 1에서 두 곡선은 라운드가 갈수록 벌어진다. 위쪽 곡선은 앙상블 평균이고 아래쪽은 전형 궤적이다. 평균이 오른다는 말과 대다수가 잃는다는 말은 같은 그림의 위아래를 각각 가리킨다.
곱셈 게임을 여러 명이 서로 주고받으면 부가 한쪽으로 응축되고, 혼자 반복하면 이렇게 감가된다. 같은 곱셈인데 사람 수가 결과의 모양을 바꾼다. 앞의 경우는 야드세일 모델 편에서 다뤘고, 이 글은 뒤쪽이다.
이 틈 위에 레버리지가 얹히면 어떻게 되는지가 이 글의 나머지다. 레버리지는 빚을 내서 같은 자산을 더 사는 일이다. 내 돈 100만 원에 100만 원을 빌려 200만 원어치를 사면, 지수가 1% 오를 때 내 돈은 2% 늘고 1% 내릴 때 2% 준다. 배율 2배란 그런 뜻이다.
문제는 하루가 지나면 이 배율이 저절로 어긋난다는 점이다. 지수가 오르면 내 자산이 늘어 배율이 2배 아래로 내려가고, 내리면 2배 위로 올라간다. 그래서 배율을 내건 상장지수펀드(ETF), 곧 레버리지 ETF는 매일 장이 끝날 때 배율을 다시 2배로 맞춘다 — 오른 날은 더 사고, 내린 날은 판다.
하루 단위로는 약속대로 두 배지만, 여러 날을 이어 붙이면 그 사이에 오르내린 경로가 최종 수익에 남는다. 그 경로가 얼마를 떼어 가는지는 식 한 줄로 적을 수 있다. 미리 말해 두면, 배율을 걸었을 때 이 틈은 배율의 제곱으로 커진다.
시간평균 성장률과 최적 레버리지
연속시간 모형으로 옮기면 이 틈이 식 하나로 정리된다. 자산 가격이 매 순간 평균 μ의 속도로 오르면서 σ만큼 흔들린다고 두는 것이 기하 브라운 운동(geometric Brownian motion)이다. 이때 한 사람이 실제로 겪는 시간평균 성장률 g는 μ에서 σ²/2를 뺀 값이다.
식 1는 이 글에서 가장 많이 쓰는 한 줄이다. 기대수익률 μ는 그냥 벌어들이는 몫이고, σ²/2는 흔들림이 떼어 가는 몫이다. 이제 무위험 수익률(국채 이자처럼 거의 위험 없이 받는 수익률)을 μ_r, 시장이 무위험 수익률보다 더 버는 몫(초과수익)을 μ_ex라 하자. 배율 l을 걸면 더해지는 몫은 배율에 비례해서 늘고, 깎이는 몫은 배율의 제곱으로 늘어난다. 식으로 적으면 이렇다.
식 2의 모양이 이 절의 요지다. Peters는 2011년 논문에서 이 비대칭을 그대로 적었다. 그러면 g가 가장 커지는 배율이 하나 있고, 그 값은 $l_{opt} = \mu_{ex} / \sigma^2$이다. 켈리(Kelly)가 1956년에 정보이론에서 얻은 결과의 연속시간판이다.
Peters가 논문 그림 1에 쓴 파라미터로 숫자를 넣어 보자. 무위험 수익률 0.05, 초과수익 0.05, 변동성 0.18을 넣으면 최적 배율은 1.54, 성장률이 0으로 떨어지는 임계 배율은 3.88이다. 배율별 연 성장률은 1배 8.38%, 1.54배 8.86%, 2배 8.52%, 3배 5.42%, 4배 −0.92%가 된다. 3배까지도 아직 양수지만 1배보다 못하고, 4배부터는 굴릴수록 줄어든다. 이 숫자들은 세 파라미터의 값이지 시장에서 잰 값이 아니다.
그림 2을 세로로 올라가며 읽으면 변동성이 커질수록 능선이 왼쪽으로 밀린다. 흔들림이 클수록 걸 수 있는 배율이 줄어든다는 뜻이다. 같은 파라미터로 30년을 하루 단위로 굴린 합성 시뮬 2만 경로도 같은 그림을 준다. 30년 뒤 자산의 중앙값은 1.5배 레버리지에서 14.1로 가장 크고, 3배에서 5.0, 4배에서 0.7로 내려간다. 반면 같은 경로들의 앙상블 평균은 배율을 올릴수록 계속 커져서 5배에서 2,121에 이른다. 두 평균을 섞어 읽으면 정반대의 결론이 나온다.
여기서 한 가지가 더 따라 나온다. 샤프비율(수익이 출렁임 대비 얼마나 남는가)은 배율을 바꿔도 값이 변하지 않는다. 분자와 분모가 함께 l배가 되기 때문이다. 그래서 샤프비율은 어느 자산이 나은지는 말해 주지만 얼마를 걸어야 하는지는 말해 주지 않는다. 그 자리를 채우는 것이 최적 배율 식이다. 다만 이 식은 성장률을 가장 크게 하는 배율일 뿐, 흔들림을 얼마나 견딜 수 있느냐에는 답하지 않는다.
상품이 된 산식 — 레버리지 ETF의 감가
매일 배율을 다시 맞추는 일, 곧 일일 리밸런싱을 하는 레버리지 ETF는 앞 절의 산식을 그대로 상품으로 만든 것이다. Avellaneda와 Zhang은 2010년 논문에서 이 상품의 가격을 지수 가격만으로 적어 냈다. 비용과 차입금리는 0으로 둔다. 그러면 배율 β짜리 상품의 수익은 지수 수익을 β제곱한 값에 감가 항 하나를 곱한 값이 된다. 이 β제곱한 값은 살 수 있는 상품이 아니라 비교용 계산 기준선이며, 이 글은 정적 β배라고 부른다. 여기서 V는 그 기간에 쌓인 실현분산, 즉 일별 수익률이 평균에서 벗어난 정도를 제곱해 다 더한 값이다.
식 3의 지수 안에 있는 계수 (β − β²)/2가 감가의 크기를 정한다. 2배는 −1, 3배는 −3, −1배는 −1, −2배는 −3, −3배는 −6이다. 지수와 반대로 움직이는 인버스 상품이 같은 배율의 정방향 상품보다 더 깎인다는 것도 여기서 읽힌다.
숫자를 넣어 보자. 연 변동성이 0.20이면 1년 실현분산은 0.04다. 이때 2배 상품은 같은 기간 정적 2배 기준선 대비 −3.9%, 3배 상품은 −11.3% 뒤진다. 이 계산용 기준선에는 비용이 0이어도 언제나 뒤진다. 다만 처음 한 번 빚을 내 2배로 사고 그대로 둔 포트폴리오가 상대라면, 지수가 크게 움직이면 이기고 제자리에서 흔들리면 진다.
LETFs outperform the static leveraged strategy only when return are large and volatility is small.
레버리지 ETF는 수익이 크고 변동성이 작을 때에만 정적 레버리지 전략(처음 한 번 빚을 내 배율만큼 사고 그대로 두는 쪽)을 이긴다.
Avellaneda & Zhang, “Path-dependence of Leveraged ETF Returns” (2009 preprint; SIAM J. Financial Math. 2010)규제 기관이 남긴 실측도 같은 방향이다. 미국 금융산업규제국(FINRA)은 2009년 공지에서 이틀짜리 예시를 들었다. 지수가 100에서 101로 올랐다가 다시 100으로 돌아오면 −1배 상품은 −0.02%로 끝난다. 100에서 110으로 올랐다가 100으로 돌아오면 −1.82%가 된다. 지수는 두 경우 모두 제자리인데 상품만 깎였고, 깎인 양은 흔들린 폭을 따라 커졌다.
같은 공지에 든 시장 실측은 폭이 훨씬 크다. 2008년 12월 1일부터 2009년 4월 30일까지 다우존스 미국 석유·가스 지수는 2% 올랐는데 2배 상품은 6% 빠졌고 −2배 상품은 26% 빠졌다. 같은 기간 러셀 1000 금융 서비스 지수는 약 8% 올랐는데 3배 상품은 53%, −3배 상품은 90% 빠졌다.
식이 성립하는지는 합성 데이터로 바로 확인된다. 기대수익률 0.08·변동성 0.20인 기하 브라운 운동을 40년치 만들고, 그 위에서 일일 리밸런싱 상품을 굴린다. 비중첩 63일 창(대략 한 분기) 160개마다 실현분산과 초과 로그수익(상품 로그수익 − 배율 × 지수 로그수익)을 재서 회귀한다.
import numpy as np
rng = np.random.default_rng(20260905)
mu, sigma, years, dt = 0.08, 0.20, 40, 1 / 252
n = years * 252
ret = mu * dt + sigma * np.sqrt(dt) * rng.standard_normal(n) # 지수의 일별 수익률
r_idx = np.log1p(ret)
for beta in (2.0, 3.0):
r_letf = np.log1p(beta * ret) # 매일 배율을 다시 맞춘 상품
V, Y = [], []
for k in range(n // 63): # 비중첩 63일 창
s = slice(k * 63, (k + 1) * 63)
a = ret[s]
V.append(((a - a.mean()) ** 2).sum()) # 창의 실현분산
Y.append(r_letf[s].sum() - beta * r_idx[s].sum()) # 초과 로그수익
slope, intercept = np.polyfit(V, Y, 1)
print(f"β={beta:.0f} 창 {len(V)}개 기울기 {slope:+.2f} (이론 {(beta - beta ** 2) / 2:+.0f}) 절편 {intercept:+.5f}")β=2 창 160개 기울기 -1.00 (이론 -1) 절편 -0.00013
β=3 창 160개 기울기 -3.03 (이론 -3) 절편 -0.00026기울기가 이론값 −1과 −3에 붙는다. 실현분산 한 단위가 초과 로그수익을 정확히 그 계수만큼 깎는다는 뜻이고, 절편은 0에 가깝다. 식 3는 합성 데이터에서 그대로 성립한다.
실측 — 공개 시세 17년
합성 데이터에서 성립하는 식이 실제 시세에서도 성립하는지가 남았다. 조건부터 적는다. 구간은 3배 상품 UPRO가 상장한 2009년 6월 25일부터 2026년 9월 2일까지, 세 종목이 모두 거래된 4,323 거래일(거래일 기준 17.15년)이다. 배당과 분할을 반영한 수정 종가를 썼다.
이 구간의 지수 일별 로그수익 표준편차는 0.0108, 연 환산 변동성은 0.171이었다. 표준편차가 낮았다는 것은 흔들림이 작은 구간이었다는 뜻이고, 장기 상승장이라는 성격은 시작일이 금융위기 저점 직후라는 데서 온다. 이 두 조건이 아래 결과를 만든다.
결과는 언뜻 앞의 이야기와 반대로 보인다. 이 17년 동안 지수 추종 SPY의 연평균 성장률은 15.2%, 2배 상품 SSO는 25.1%, 3배 상품 UPRO는 32.9%였다. 배율이 높을수록 더 벌었다. 감가가 없어서가 아니라, 식 1의 μ가 σ²/2를 넉넉히 이긴 구간이었기 때문이다. 흔들림이 떼어 가는 몫보다 벌어들이는 몫이 컸던 17년이라는 뜻이고, 그 판정은 이 구간에만 붙는다.
감가는 실제로 있었다. 비교 기준을 지수가 아니라 정적 2배로 바꾸면 바로 드러난다. SSO는 17.15년 전체에 걸쳐 정적 2배보다 로그로 0.99만큼 뒤졌다.
그중 실현분산으로 설명되는 몫이 −0.50이고, 나머지 −0.49(연 −2.88%)는 잔여다. 이 잔여에는 비용비율·차입금리·추적오차, 곧 운용 비용과 빌린 돈의 이자와 지수를 못 따라간 오차가 섞여 있다. 우리 데이터만으로는 항목별로 갈라낼 수 없어서 잔여라고만 부른다. 3배 UPRO는 정적 3배보다 2.38 뒤졌고 분산항 예측은 −1.50, 잔여는 연 −5.13%였다.
그림 3의 점들은 오른쪽 아래로 흐른다. 실현분산이 큰 분기일수록 초과 로그수익이 더 깎였다는 뜻이고, 기울기는 SSO −1.16, UPRO −3.51로 이론값 −1, −3과 대략 맞는다. 이론보다 조금 가파른 이유는 여기서 단정하지 않는다.
Brown이 2023년에 제시한 조건과도 견줘 볼 만하다. 그는 세 가지 조건을 함께 걸었다. 일별 로그수익 표준편차가 0.0125보다 작고, 하루 낙폭이 −20% 안쪽이며, 연평균 로그수익이 일정 수준 이상이면 2배 일일 레버리지 상품이 장기적으로 지수 이상을 낸다는 것이다. 이 구간의 표준편차 0.0108은 그 기준 아래다. 다만 수익 쪽 기준값은 물가와 배당을 조정한 실질 로그수익이라 이 글의 수정 종가 기준 값과 같은 축이 아니다 — 방향만 맞춰 읽는다.
이 17년 결과는 상승장이면서 일별 로그수익 표준편차가 0.0108로 낮았던 구간 하나의 결과다. 하락장이나 횡보장으로 일반화하면 안 된다. 구간이 바뀌면 μ와 σ²/2의 크기 싸움이 뒤집힐 수 있다.
수익률 열 하나로 직접 잰다
여기까지는 이미 잰 숫자를 읽는 일이었다. 이제 같은 계산을 손으로 직접 해 볼 차례다. 가상의 수익률 열을 하나 놓자 — 네 기간 동안 +12%, −8%, +12%, −8%를 냈다고 하자.
첫 계산이 내놓는 것은 두 평균이다. 산술평균은 (12 − 8 + 12 − 8) ÷ 4 = +2%다. 로그평균은 ln(1.12)과 ln(0.92)를 평균해서 0.0150, 즉 +1.50%다. 차이는 0.50%p다. 이 열의 수익률 분산은 0.01이므로 σ²/2도 0.50%p다. 백테스트(과거 시세에 전략을 돌려 본 결과) 곡선을 볼 때 산술평균 수익률만 적혀 있으면 이만큼은 이미 부풀려져 있다고 보면 된다.
다음 산출물은 감가의 크기, 곧 배율을 걸었을 때 얼마나 깎이는가다. 실현분산 V의 정의는 앞 절과 같다 — 수익률이 평균에서 벗어난 정도를 제곱해 네 기간 치를 다 더하면 0.04다. 감가는 V에 (β² − β)/2를 곱한 만큼이다. 식 3로 어림하면 2배 상품은 이 네 기간 동안 정적 2배 대비 3.9%, 3배 상품은 11.3% 뒤진다. 네 기간을 직접 곱해서 재면 3.8%와 10.7%가 나온다 — 오르내린 폭이 ±10%로 커서 어림값이 조금 벌어진다. 상품 설명서를 읽지 않아도 배율과 실현분산만 있으면 나오는 수다.
마지막 산출물은 최적 배율이다 — 지금 걸고 있는 배율이 그 몇 배인지를 묻는 것이다. 무위험 수익률을 0으로 두면 초과수익은 기간당 0.02, 분산은 0.01이므로 최적 배율은 2배다. 성장률로 확인하면 2배에서 기간당 2.0%, 3배에서 1.5%, 4배에서 0이 된다. 4배는 이 열에서 굴려 봐야 제자리라는 뜻이다.
세 계산 모두 필요한 것은 수익률 열 하나와 σ²/2 한 줄뿐이다. 순서도 늘 같다. 먼저 두 평균을 갈라 놓고, 그 차이가 어디서 왔는지 실현분산으로 확인하고, 마지막에 지금 배율을 최적 배율로 나눠 본다. 백테스트 곡선이든, 배율을 내건 상품이든, 두 배로 벌어 준다는 광고든 이 자 하나로 잰다. 이 글은 검증 기록이며, 특정 종목이나 상품의 매수·매도 권유가 아니다.
더 읽기
- Peters, O. "Optimal leverage from non-ergodicity", Quantitative Finance 11(11) (2011) — https://arxiv.org/abs/0902.2965
- Avellaneda, M. & Zhang, S. "Path-dependence of Leveraged ETF Returns", SIAM J. Financial Math. 1(1) (2010) — https://www.math.nyu.edu/faculty/avellane/LeveragedETF20090515.pdf
- FINRA Regulatory Notice 09-31 (2009) — https://www.finra.org/rules-guidance/notices/09-31
- Peters, O. & Gell-Mann, M. "Evaluating gambles using dynamics", Chaos 26 (2016) — https://arxiv.org/abs/1405.0585
- Brown, H. "Long-Term Returns Estimation of Leveraged Indexes and ETFs" (2023) — https://arxiv.org/abs/2301.03186