CAGR 계산법 — 연평균 복리 수익률로 기간이 다른 성과를 비교하기
"3년에 60% 벌었다"와 "1년 3개월에 25% 벌었다" 중 어느 쪽이 더 잘한 걸까요. 총수익률만으로는 비교가 안 되고, 60%를 3으로 나눈 20%도 정확한 답이 아닙니다. 기간이 다른 성과를 같은 잣대로 놓을 때 쓰는 것이 CAGR(Compound Annual Growth Rate, 연평균 복리 수익률)입니다. 이 글은 CAGR 공식, 단순 평균과의 차이, 단기 수익률을 연환산할 때 생기는 착시, 입출금이 섞인 계좌에서 계산하는 법을 숫자로 정리합니다. 본문의 금액과 수익률은 모두 설명용 가정입니다.
CAGR의 정의와 공식
CAGR은 "처음 금액이 매년 같은 비율로 불어났다면, 그 비율은 몇 %였을까"를 거꾸로 구한 값입니다. 실제로는 해마다 수익률이 들쭉날쭉해도, 시작과 끝 금액만 같다면 하나의 일정한 연 성장률로 바꿔 표현합니다.
· CAGR = (최종 금액 ÷ 시작 금액)1 ÷ 연수 − 1
· 일수 기준: CAGR = (최종 ÷ 시작)365 ÷ 일수 − 1
· 엑셀·구글시트:
=(최종/시작)^(1/연수)-1· $10,000 → 3년 뒤 $16,000 · 총수익률 +60%
· 단순 평균: 60% ÷ 3 = 20%
· CAGR: 1.61/3 − 1 = 1.1696 − 1 = 약 17.0%
· 검산: 10,000 × 1.17 × 1.17 × 1.17 ≈ $16,000
단순 평균 20%로 3년을 복리로 굴리면 10,000 × 1.23 = $17,280이 돼서 실제 결과($16,000)보다 큽니다. 수익을 다시 굴리는 복리 구조에서는 총수익률을 연수로 나누면 연 성장률이 과대평가됩니다. 복리 자체의 원리는 거래에서의 복리 수익 글에 정리했습니다.
산술평균 수익률과 CAGR이 갈리는 이유
해마다 수익률이 다르면 차이는 더 커집니다. 연도별 수익률을 더해서 나눈 산술평균은 "평균적인 한 해"를 보여 줄 뿐, 계좌가 실제로 얼마나 불어났는지는 알려 주지 않습니다.
· 산술평균: (50 − 30 + 20) ÷ 3 = 13.3%
· 실제 배수: 1.5 × 0.7 × 1.2 = 1.26 → 총 +26%
· CAGR: 1.261/3 − 1 = 약 8.0%
· 1년 차 +100%, 2년 차 −50%
· 산술평균: (100 − 50) ÷ 2 = +25%
· 실제: 10,000 → 20,000 → 10,000 · CAGR = 0%
변동이 클수록 산술평균과 CAGR의 간격이 벌어집니다. 대략 "산술평균 − 변동성² ÷ 2" 정도가 CAGR에 가깝다는 근사식이 있고, 이 차이를 변동성 드래그라고 부릅니다. 자세한 내용은 변동성 드래그 글을 참고하세요. 성과를 보고하거나 비교할 때 "평균 연 13%"라는 문장을 보면, 그것이 산술평균인지 CAGR인지 먼저 확인해야 합니다.
짧은 기간을 연환산할 때의 함정
CAGR 공식은 1년보다 짧은 기간에도 쓸 수 있지만, 기간이 짧을수록 결과가 비현실적으로 커집니다. 지수가 커지기 때문입니다.
· 200일에 +12%: 1.12365/200 − 1 = 1.121.825 − 1 = 약 23.0%
· 1개월에 +5%: 1.0512 − 1 = 약 79.6% (단순 ×12는 60%)
· 1주일에 +3%: 1.0352 − 1 = 약 365%
한 주 3% 수익은 시장에서 흔히 생기는 우연의 범위 안에 있지만, 연환산하면 연 365%라는 숫자가 나옵니다. 이 값은 "그 한 주가 52번 똑같이 반복된다"는 가정 위에 있는 계산일 뿐입니다. 그래서 기간이 1년 미만인 성과는 연환산 값과 함께 실제 기간과 총수익률을 같이 적는 것이 기본입니다. 거래 표본이 적을 때의 해석 문제는 거래 표본 크기 글에서 다뤘습니다.
입출금이 섞인 계좌 — 잔고로 계산하면 틀린다
중간에 돈을 넣거나 뺀 계좌는 시작·끝 잔고만으로 CAGR을 구하면 입금이 수익처럼 잡힙니다. 이때는 입출금 시점마다 기간을 끊어 수익률을 구하고 곱하는 시간가중 수익률(TWR)을 먼저 계산한 뒤 연환산합니다.
· 1월: 잔고 $10,000 시작 → 6월 말 $11,000 (구간 1: +10%)
· 7월 초 $5,000 입금 → $16,000 → 12월 말 $17,000 (구간 2: 1,000 ÷ 16,000 = +6.25%)
· 잔고 기준 착시: 10,000 → 17,000 = +70%
· 시간가중: 1.10 × 1.0625 − 1 = +16.9% → 기간이 1년이므로 CAGR도 16.9%
실제로 번 돈은 $2,000이고, 나머지 $5,000은 입금입니다. 거래소 앱의 "누적 수익률" 표시가 입출금을 어떻게 처리하는지 모를 때는 직접 이렇게 구간을 나눠 확인하는 편이 안전합니다. 기본적인 수익률 계산과 수수료 반영은 코인 수익률 계산법 글에 있습니다.
기간이 다른 두 전략 비교하기
도입부의 질문으로 돌아가 보겠습니다.
· 전략 A: 2년에 +40% → 1.41/2 − 1 = 약 18.3%
· 전략 B: 1.25년(15개월)에 +25% → 1.251/1.25 − 1 = 1.250.8 − 1 = 약 19.5%
· 총수익률은 A가 크지만, 연 성장률로는 B가 약간 높다
다만 이 차이 1.2%p가 의미 있는 차이인지는 별개 문제입니다. B는 기간이 짧아 운의 영향이 더 크게 섞였을 수 있고, 두 전략이 같은 시장 구간을 지나지 않았다면 시장 전체 흐름이 결과를 갈랐을 수도 있습니다. 같은 기간 그냥 사서 들고 있었을 때의 CAGR과 비교하는 방법은 벤치마크 비교 글을 참고하세요.
CAGR이 숨기는 것 — 낙폭과 함께 본다
CAGR은 시작점과 끝점만 봅니다. 중간에 계좌가 반 토막 났다가 회복했어도 CAGR에는 흔적이 남지 않습니다.
· 계좌 X: 3년 동안 매년 약 +17% → 최대 낙폭(MDD) −8%
· 계좌 Y: 1년 차 −40% → 2년 차 +60% → 3년 차 +66.7% → 최종 $16,000 · MDD −40% 이상
· 두 계좌 모두 $10,000 → $16,000 · CAGR 약 17.0%
같은 17%라도 Y는 중간에 −40%를 견뎌야 했습니다. −40%에서 원금으로 돌아가려면 +66.7%가 필요하다는 점은 낙폭 회복 계산 글에 정리했습니다. 그래서 CAGR을 최대 낙폭으로 나눈 칼마 비율처럼 둘을 함께 보는 지표를 씁니다. X는 17 ÷ 8 ≈ 2.1, Y는 17 ÷ 40 ≈ 0.43입니다. 계산법은 칼마 비율 글을 참고하세요.
빠르게 가늠하는 법 — 72의 법칙
CAGR을 알면 원금이 두 배가 되는 기간을 대략 셀 수 있습니다. 72를 CAGR(%)로 나누면 됩니다.
· CAGR 17% → 72 ÷ 17 ≈ 4.2년 (정확한 값: ln 2 ÷ ln 1.17 ≈ 4.4년)
· CAGR 8% → 72 ÷ 8 = 9년 (정확한 값 약 9.0년)
· 수익률이 높을수록 근사 오차가 커진다
정리
② 총수익률 ÷ 연수(단순 평균)는 복리 구조에서 연 성장률을 과대평가한다 (3년 60% → 20%가 아니라 17.0%)
③ 산술평균은 변동이 클수록 CAGR보다 커진다 (+100%·−50% → 평균 25%, CAGR 0%)
④ 1년 미만 성과의 연환산 값은 과장되기 쉽다 → 실제 기간과 총수익률을 같이 적는다
⑤ 입출금이 있으면 구간별 수익률을 곱한 시간가중 수익률로 계산한다
⑥ CAGR은 경로를 보지 않는다 → 최대 낙폭과 함께 본다
주의
본문의 금액, 수익률, 기간, 낙폭은 모두 계산 방법을 설명하기 위한 가정 예시이며 실제 시장 데이터나 실측 성과가 아닙니다. 과거 CAGR은 앞으로의 수익률을 보장하지 않습니다. 이 글은 교육 정보이며 특정 종목·전략의 매수·매도 권유나 특정 수익을 보장하는 내용이 아닙니다. 코인 및 선물·레버리지 거래는 원금 손실 위험이 있고, 매매 판단과 그 결과는 본인 책임입니다.
NOONOO TRADING 무료 채팅방에서 실시간 트레이딩을 같이 보세요.
봇에서 시작하기📈 OKX 신규 가입 시 거래 수수료 할인
OKX 수수료 할인 가입 →