재테크·2026-04-02·FunAppBox 편집팀

투자 백테스팅 입문 — '만약 그때 샀다면?' 시뮬레이션 활용법

과거 데이터로 투자 전략을 검증하는 백테스팅의 기초. CAGR, Drawdown, 샤프 지수 등 필수 개념과 한계점.

“그때 비트코인을 샀더라면…”, “10년 전 삼성전자를 1000만원어치 샀다면 지금 얼마였을까?” 같은 상상은 누구나 한 번쯤 해봤을 것입니다. 백테스팅(Backtesting)은 과거 가격 데이터를 이용해 이런 가정을 실제로 시뮬레이션해보는 기법입니다. 투자 전략의 과거 성과를 검증하는 데 사용되며, 전문 트레이더부터 일반 투자자까지 폭넓게 활용됩니다.

이 글에서는 백테스팅 결과를 읽을 때 반드시 알아야 하는 지표(CAGR, MDD, 변동성, 샤프 지수)를 계산 예제와 함께 설명하고, 거치식과 적립식이 장세에 따라 어떻게 다른 결과를 내는지 숫자로 비교합니다. 그리고 백테스팅이 빠지기 쉬운 함정과, 결과를 해석할 때 점검해야 할 체크리스트까지 정리합니다.

백테스팅의 핵심 지표

1. CAGR (연평균 복리 수익률)

Compound Annual Growth Rate의 약자로, “매년 몇 %씩 균등하게 성장한 것과 같은가?”를 나타냅니다. 단순 수익률보다 더 정확한 비교 지표입니다.

공식: CAGR = (최종가치 / 초기투자)^(1/년수) − 1

  • 예: 100만원 → 10년 후 200만원 = CAGR 약 7.18%
  • 예: 100만원 → 10년 후 1000만원 = CAGR 약 25.89%

직접 계산해 보면 감이 잡힙니다. 100만원이 10년 뒤 200만원이 되었다면 최종가치 ÷ 초기투자 = 2이고, 2의 10제곱근은 약 1.0718이므로 CAGR은 7.18%입니다. 즉 매년 7.18%씩 열 번 복리로 불어난 것과 같은 결과라는 뜻입니다. 기간이 같아도 총수익률에 따라 CAGR이 어떻게 달라지는지 표로 정리하면 다음과 같습니다.

초기 투자최종 가치기간총수익률CAGR
100만원200만원10년+100%7.18%
100만원1,000만원10년+900%25.89%
1,000만원1,500만원5년+50%8.45%
1,000만원3,000만원15년+200%7.60%
1,000만원4,000만원20년+300%7.18%
500만원800만원3년+60%16.96%

표에서 두 가지를 눈여겨볼 만합니다. 첫째, 10년에 2배와 20년에 4배는 CAGR이 똑같이 7.18%입니다. 총수익률만 보면 후자가 세 배 좋아 보이지만 연 단위로 환산하면 같은 성과입니다. 둘째, 5년에 +50%는 ‘연 10%’가 아니라 연 8.45%입니다. 총수익률을 기간으로 단순히 나누면 복리 효과 때문에 실제보다 높게 평가하게 됩니다.

CAGR이 산술평균 수익률보다 중요한 이유는 손실이 끼어 있을 때 드러납니다. 첫해 +50%, 다음 해 −50%를 기록했다면 산술평균은 0%지만, 실제 자산은 100 → 150 → 75로 25%가 줄었습니다. 이때 CAGR은 약 −13.4%입니다. 백테스팅 도구가 CAGR을 보여 주는 이유가 여기에 있습니다. 참고로 72의 법칙을 쓰면 암산도 가능합니다. 72를 연수익률로 나누면 원금이 두 배 되는 데 걸리는 햇수가 대략 나옵니다. 연 7.2%면 10년, 연 12%면 6년, 연 4%면 18년입니다.

2. Drawdown (최대 손실 구간)

고점에서 저점까지 떨어진 비율을 의미합니다. MDD(Maximum Drawdown)는 과거 가장 큰 손실 구간을 나타내며, 변동성과 심리적 부담을 판단하는 중요한 지표입니다.

예: 비트코인이 2021년 11월 약 8,000만원에서 2022년 11월 약 2,000만원으로 떨어졌을 때 MDD는 약 75%.

계산은 간단합니다. MDD = (저점 − 직전 고점) / 직전 고점이므로 고점 1,000만원에서 저점 600만원까지 떨어졌다면 (600 − 1000) / 1000 = −40%입니다. 중요한 것은 떨어진 만큼 오르면 원금이 회복되는 것이 아니라는 점입니다. 600만원이 다시 1,000만원이 되려면 66.7%가 올라야 합니다. 낙폭이 커질수록 회복에 필요한 수익률은 가파르게 늘어납니다.

낙폭(MDD)원금 회복에 필요한 수익률
−10%+11.1%
−20%+25.0%
−30%+42.9%
−50%+100%
−75%+300%
−80%+400%

위 비트코인 예시처럼 75% 낙폭이면 저점에서 네 배(+300%)가 되어야 겨우 본전입니다. 그래서 장기 성과가 아무리 좋아도 MDD가 큰 자산은 실제로 그 기간을 버텨 낸 사람만이 그 성과를 누릴 수 있습니다.

3. 변동성 (Volatility)

수익률의 표준편차로 측정합니다. 같은 CAGR이라도 변동성이 낮으면 안정적, 높으면 위험합니다. 보통 연간 변동성으로 표현하며, 변동성이 15%라는 것은 한 해 수익률이 평균에서 ±15% 정도 흔들리는 일이 흔하다는 뜻으로 읽으면 됩니다.

4. 샤프 지수 (Sharpe Ratio)

위험 대비 수익률을 측정. (수익률 − 무위험수익률) / 변동성. 1.0 이상이면 좋음, 2.0 이상이면 매우 우수.

예를 들어 연 10% 수익을 낸 두 전략이 있고 무위험수익률(예금 금리)이 3%라고 하겠습니다. 변동성이 15%인 전략의 샤프 지수는 (10 − 3) / 15 = 약 0.47이고, 변동성이 8%인 전략은 (10 − 3) / 8 = 약 0.88입니다. 수익률이 같아도 덜 흔들리며 벌어들인 쪽이 더 좋은 전략으로 평가됩니다.

주요 자산의 장기 CAGR (참고)

  • S&P500: 약 10% (1928~2024 평균, 배당 포함)
  • 코스피: 약 6~8% (1980~2024 평균, 배당 포함)
  • 금: 약 3~5% (1970~2024)
  • 비트코인: 매우 변동성 크지만 출시 이후 평균 매우 높음 (그러나 MDD도 80%+)
  • 국채: 약 2~4%
  • 부동산: 지역별 편차 큼, 한국 아파트 약 5~7%
장기적으로 인플레이션(약 2~3%)을 이기지 못하면 자산 가치는 실질적으로 감소합니다. 연 2% 물가상승이 20년 이어지면 같은 돈의 구매력은 약 67%로, 연 3%면 약 55%로 줄어듭니다.

거치식 vs 적립식, 숫자로 비교

같은 자산에 같은 금액을 넣어도 한 번에 넣는 거치식과 매달 나눠 넣는 적립식의 결과는 장세에 따라 크게 달라집니다. 다섯 달 동안 총 500만원을 투자한다고 가정하고, 거치식은 첫 달에 500만원을, 적립식은 매달 100만원씩 넣는 세 가지 가상의 가격 흐름을 비교해 보겠습니다. 가격은 첫 달을 100으로 놓은 상대값입니다.

장세월별 가격거치식 결과적립식 결과평균 매입가
V자 회복100 → 80 → 60 → 80 → 100500만원 (0%)약 617만원 (+23.3%)약 81.1
꾸준한 상승100 → 110 → 120 → 130 → 140700만원 (+40%)약 592만원 (+18.3%)약 118.3
꾸준한 하락100 → 90 → 80 → 70 → 60300만원 (−40%)약 387만원 (−22.5%)약 77.4

V자 장세에서는 가격이 제자리로 돌아왔는데도 적립식이 +23.3%를 기록합니다. 가격이 60일 때 100만원으로 1.67단위를 사는 등 싼 구간에서 더 많은 수량을 확보해 평균 매입가가 81.1로 내려갔기 때문입니다. 하락 장세에서도 적립식은 −22.5%로 거치식의 −40%보다 손실이 작습니다. 반대로 꾸준히 오르는 장세에서는 거치식이 +40%로 적립식 +18.3%를 크게 앞섭니다. 나중에 사는 물량은 비싸게 사는 셈이니 당연합니다.

정리하면 적립식은 ‘항상 더 많이 버는 방법’이 아니라 타이밍을 맞추지 못했을 때의 손실을 완충하는 방법입니다. 장기 우상향을 확신하고 변동성을 견딜 수 있다면 거치식이 기대수익이 높고, 시작 시점이 고점일 위험을 줄이고 싶다면 적립식이 마음 편합니다. FunAppBox 투자 시뮬레이터의 적립식 모드가 수익률과 함께 ‘평균 매입가’를 보여 주는 이유도 이 차이를 눈으로 확인하게 하려는 것입니다.

백테스팅의 함정 (Survivorship Bias)

과거 데이터로 보는 수익률에는 함정이 있습니다. 대표적인 것이 생존자 편향(Survivorship Bias)입니다.

지금 잘 나가는 종목을 과거로 가서 샀다고 가정하면 당연히 좋은 결과가 나옵니다. 그러나 같은 시점에 사라진 종목·실패한 회사들도 함께 고려해야 정확한 판단이 가능합니다.

예: 1990년대 닷컴 버블 시기에 살아남은 회사만 보면 IT 투자가 매우 좋아 보이지만, 실제로는 수많은 회사가 망했습니다.

시뮬레이터에 등장하는 자산 목록 자체가 이미 생존자입니다. 삼성전자, 애플, 비트코인은 ‘지금까지 살아남아 유명해진’ 자산이기 때문에 목록에 있는 것이고, 2010년에 그만큼 유망해 보였지만 사라진 자산은 목록에 없습니다. 그러니 ‘그때 샀더라면’의 결과는 ‘그때 그 자산을 고를 수 있었다면’이라는 커다란 가정 위에 서 있습니다.

과최적화(Overfitting)

과거 데이터에 딱 맞는 매매 규칙을 찾다 보면 반드시 좋은 결과가 나오는 조합이 하나쯤 나옵니다. ‘20일 이동평균이 60일선을 돌파하면 매수, 3.7% 하락하면 매도’ 같은 규칙이 과거 10년에 잘 맞았다고 해서 앞으로도 맞는다는 보장은 없습니다. 조건이 세밀하고 숫자가 구체적일수록 과거에 맞춘 것일 확률이 높습니다. 규칙을 조금 바꿔도 결과가 크게 흔들린다면 과최적화를 의심해야 합니다.

시작 시점 편향

같은 자산이라도 시작 시점을 바닥에 두면 화려한 수익률이, 고점에 두면 처참한 수익률이 나옵니다. 나스닥은 2000년 초 고점에서 시작하면 원금 회복에 15년 가까이 걸렸지만, 2009년 초에서 시작하면 눈부신 결과가 나옵니다. 한 시점의 결과만 보지 말고 시작일을 여러 번 옮겨 보면서 결과의 분포를 확인하는 것이 중요합니다.

미래 참조 편향(Look-ahead Bias)

그 시점에는 알 수 없었던 정보를 써서 판단하는 오류입니다. ‘2020년 3월 폭락장에 샀다면’은 그 시점이 바닥이었다는 사실을 지금 알기 때문에 할 수 있는 말입니다. 당시에는 더 떨어질지 아무도 몰랐습니다. 백테스팅 결과를 볼 때는 ‘그 시점에 정말 이 결정을 할 수 있었을까’를 계속 물어야 합니다.

데이터 빈도의 한계

월 단위 시점 가격으로 계산하는 도구는 그 사이에 있었던 일중·월중 급락을 보여 주지 못합니다. 월말 기준으로는 −20%였던 구간이 실제로는 월중에 −35%까지 떨어졌다가 회복한 경우도 많습니다. 그래프에 보이는 MDD보다 실제 경험한 MDD는 대체로 더 컸다고 생각하는 것이 안전합니다.

실전 투자 vs 백테스팅의 차이

  • 심리적 압박: 백테스팅에서는 −50% 손실도 숫자지만, 실제로는 견디기 어렵습니다.
  • 거래 비용: 수수료·세금이 반영되지 않은 백테스팅은 과대평가됩니다.
  • 슬리피지: 큰 금액 주문 시 호가 차이로 실제 체결가가 다릅니다.
  • 유동성: 과거에는 충분했던 유동성이 현재는 부족할 수 있습니다.
  • 미래는 다름: 과거 결과가 미래를 보장하지 않습니다.

건전한 백테스팅 활용법

  1. 전략의 안정성 확인: 여러 기간·여러 자산에 동일 전략을 적용해보세요.
  2. 최악의 시나리오 점검: CAGR보다 MDD에 집중하세요.
  3. 분산 투자 효과 확인: 단일 자산보다 60/40 (주식/채권) 같은 포트폴리오 백테스트.
  4. 비용 반영: 0.5~1% 정도의 거래비용 가정.
  5. 본인 위험감수도 확인: MDD 30%를 견딜 수 있는지 자문.

결과를 해석할 때의 체크리스트

시뮬레이션 결과 화면을 보면서 아래 질문을 순서대로 던져 보세요. 하나라도 ‘아니오’가 나오면 그 숫자는 참고 자료일 뿐 근거로 삼기에는 부족합니다.

  • 기간이 충분히 긴가? 최소 한 번의 큰 하락장(2008년, 2020년, 2022년 등)을 포함하는가?
  • 시작 시점을 앞뒤로 1~2년 옮겨도 결론이 유지되는가?
  • CAGR과 함께 MDD를 확인했는가? 그 낙폭을 실제로 겪었다면 팔지 않고 버틸 수 있었을까?
  • 배당·이자가 포함된 수치인가, 가격만 반영된 수치인가?
  • 세금과 수수료를 빼면 결과가 얼마나 줄어드는가?
  • 이 자산을 그 시점에 고를 수 있었던 합리적 이유가 있었는가, 아니면 결과를 알고 고른 것인가?
  • 같은 기간 다른 자산이나 단순 지수 투자와 비교해 보았는가?
  • 원화 환산 수익률인가, 현지 통화 수익률인가? 해외 자산은 환율 변동이 수익률을 크게 바꿉니다.

장기 투자 vs 단기 매매

백테스팅 결과는 보통 장기일수록 더 안정적입니다. S&P500의 경우, 역사적으로 20년 이상 보유 시 손실 확률이 0%에 수렴합니다. 반면 1년 보유 시 손실 확률은 약 25%입니다. “Time in the market beats timing the market”이라는 격언이 있는 이유입니다.

단기 매매의 백테스팅은 특히 조심해야 합니다. 거래 횟수가 많아질수록 수수료와 세금, 슬리피지가 누적되어 백테스팅과 실제 결과의 차이가 벌어지고, 과최적화가 끼어들 여지도 커집니다. 반면 장기 보유 전략은 규칙이 단순해서 과거에 맞춰 조작할 부분이 적고, 비용의 영향도 작아 백테스팅 결과를 비교적 신뢰할 수 있습니다.

FunAppBox 투자 시뮬레이터로 직접 실험하기

FunAppBox 투자 시뮬레이터에는 삼성전자, SK하이닉스, 카카오, 네이버 같은 한국 주식과 KOSPI, S&P 500, 나스닥 지수, 애플과 테슬라, 비트코인과 이더리움, 금까지 12개 자산의 과거 가격이 들어 있습니다. 거치식과 적립식을 선택할 수 있고, 기간은 1년·3년·5년·10년· 15년·20년·전체 프리셋이나 직접 지정한 시작일·종료일로 설정합니다. 결과 화면에서는 현재 가치, 총수익률, 거치식이면 CAGR, 적립식이면 평균 매입가와 함께 자산 추이 그래프를 보여 줍니다. 이 글의 내용을 직접 확인해 보고 싶다면 다음 세 가지 실험을 권합니다.

  1. 시작 시점 바꾸기: 같은 자산, 같은 금액으로 시작일만 1년씩 옮겨 CAGR이 얼마나 달라지는지 확인합니다. 시작 시점 편향을 몸으로 느낄 수 있습니다.
  2. 거치식과 적립식 비교: 큰 하락이 있었던 구간(예: 2021년 말~2023년)을 잡아 두 방식의 수익률과 평균 매입가를 비교합니다.
  3. 자산군 비교: 같은 10년 프리셋으로 지수(S&P 500, KOSPI), 개별 주식, 암호화폐, 금을 차례로 돌려 CAGR과 그래프의 흔들림 정도를 함께 봅니다.

시뮬레이터는 가격 데이터만 사용하므로 배당과 이자는 반영되지 않고, 세금·수수료·환율도 고려하지 않습니다. 따라서 배당이 많은 자산은 실제보다 낮게, 비용을 감안하면 모든 자산이 실제보다 높게 나온다는 점을 염두에 두고 결과를 읽어 주세요.

자주 묻는 질문

Q. CAGR과 ‘연평균 수익률’은 같은 말인가요?

흔히 같은 뜻으로 쓰지만 엄밀히는 다릅니다. 매년 수익률을 더해 연수로 나눈 산술평균은 손실이 낀 해가 있으면 실제 성과보다 높게 나옵니다. CAGR은 기하평균이라 실제 자산이 불어난 속도를 그대로 반영합니다. 위의 +50%, −50% 예시에서 산술평균은 0%지만 CAGR은 −13.4%인 것이 그 차이입니다.

Q. 백테스팅 결과가 좋으면 그대로 투자해도 되나요?

좋은 백테스팅 결과는 ‘이 전략이 과거에 나쁘지 않았다’는 최소 조건을 통과했다는 뜻일 뿐입니다. 시작 시점을 바꿔도 결과가 유지되는지, MDD를 감당할 수 있는지, 비용을 빼도 의미가 있는지를 확인한 뒤 소액으로 시작해 실제 경험을 쌓는 것이 순서입니다.

Q. 배당은 왜 중요한가요?

장기 수익률에서 배당 재투자의 비중은 생각보다 큽니다. S&P500의 장기 CAGR을 약 10%로 말할 때는 배당을 다시 투자한 총수익 기준이며, 가격만 보면 그보다 낮습니다. 가격 기준 시뮬레이션과 총수익 기준 통계를 비교할 때는 이 차이를 감안해야 합니다.

Q. 몇 년 이상의 데이터를 봐야 의미가 있나요?

정해진 답은 없지만, 최소한 한 번의 본격적인 하락장과 회복 과정을 포함하는 기간이어야 전략의 약점이 드러납니다. 주식이라면 10년 이상, 가능하면 2008년 금융위기 전후를 포함한 15~20년을 보는 것이 좋습니다. 상승장만 포함한 3~5년 결과는 어떤 전략이든 좋아 보이기 쉽습니다.

마치며

백테스팅은 과거를 통해 미래를 추정하는 도구지만, 절대적인 보장은 아닙니다. FunAppBox의 투자 시뮬레이터에서 비트코인·삼성전자·S&P500 등 주요 자산의 과거 수익률을 다양한 시점·기간으로 시뮬레이션해보세요. CAGR과 그래프로 ‘만약 그때 샀다면?’을 직관적으로 확인할 수 있습니다. 숫자를 보며 부러워하는 데서 멈추지 말고, 그 숫자가 어떤 낙폭을 견딘 대가였는지까지 함께 읽어 내는 것이 백테스팅을 제대로 활용하는 방법입니다.

함께 읽으면 좋은 글

← 다른 글 더 보기