
1. 들어가며
일반적인 백테스트는 과거 실적을 이용해 계산해보는 것이지만 어떤 기간을 고르는가에 따라 결과가 크게 달라진다는 한계가 있다. 2008년 금융위기 발생 직전인 2007년부터 현재까지 데이터를 이용하는 것과 회복 후인 2010년부터 현재까지 데이터를 이용하는 건 엄청난 차이가 있다.
몬테카를로 시뮬레이션은 쉽게 말하면 무식하게 노가다성으로 수많은 경우를 다 계산해서 확률적인 값을 도출하는 방법이다. 덕분에 과최적화에서 상당히 자유로울 수 있다.
한때 포트폴리오 비주얼라이저를 이용해 여러 백테스트를 하면서 놀았었는데 기능 중 몬테카를로 시뮬레이션도 지원하는 걸 이제야 알았다.

2. 시뮬레이션 설정방법

먼저 시뮬레이션 파라미터들을 설정해야 한다. 처음 보면 뭔가 입력값이 매우 많아 정신없을 수 있지만 하나씩 뜯어보면 사실 별로 어렵진 않다.
1. Portofolio Type : 실제 정확한 종목을 고르려면 Tickers를 선택하면 좋지만 이 경우 분석기간이 짧아질 수 있다. S&P500, 중기미국채, 단기미국채 처럼 전반적인 자산을 이용해 최대한 장기간 분석하려면 Asset Classes를 선택하는 게 편할 듯.
- Asset Classes: 자산군 단위로 입력. 예: US Large Cap, Intermediate Term Treasury 등
- Ticker: 실제 ETF나 종목의 티커(symbol)를 직접 입력. 예: SPY, QQQ, IEF 등
2. Initial Amount : 초기 시작 자산
3. Cashflows : 추가 현금흐름 선택.
- No contributions or withdrawals (납입 또는 인출 없음): 기본 설정으로, 현금흐름을 시뮬레이션에 포함하지 않음.
- Contribute fixed amount periodically (정기적으로 고정 금액 납입): 퇴직 전 저축 기간 등을 시뮬레이션할 때 사용됩니다. 납입액과 빈도(월별, 분기별, 연도별)를 설정.
- Withdraw fixed amount periodically (정기적으로 고정 금액 인출): 은퇴 후 생활비 인출 등을 시뮬레이션할 때 사용됩니다. 인출액과 빈도를 설정.
- Withdraw fixed percentage periodically (정기적으로 고정 비율 인출): 포트폴리오 잔액의 일정 비율을 인출하도록 설정.
- Rolling average spending rule (이동 평균 지출 규칙): 포트폴리오 가치의 일정 기간(예: 2년, 5년) 이동 평균을 기반으로 인출 금액을 계산.
- Geometric spending rule (기하학적 지출 규칙): 이전 인출 금액에 인플레이션과 포트폴리오 성과를 반영하여 인출액을 조정.
- Withdraw based on life expectancy (기대 수명 기반 인출): 기대 수명 모델을 기반으로 포트폴리오 잔액이 소진되지 않도록 인출액 계산.
- Import cashflows (현금흐름 가져오기): CSV 파일 등을 통해 미리 정의된 현금흐름 데이터를 가져와 사용.
4. Contirbution Amount : 적립/인출 금액 및 비율
5. Inflation Adusted : 물가상승 고려여부. 장기투자 시 당연히 고려해야 함. 결과에서 nominal value는 명목가치이고 real value가 인플레이션 고려한 실질가치 값.
- Historical Inflation (과거 인플레이션): 과거 소비자 물가 지수(CPI-U) 데이터를 기반으로 인플레이션 모델링함. 과거의 인플레이션 변동성을 시뮬레이션에 통합.
- Parameterized Inflation (매개변수 인플레이션): 사용자가 직접 연평균 인플레이션 평균(Mean) 및 표준편차(Stdev)를 입력하여 인플레이션을 모델링. 사용자가 예상하는 미래 인플레이션 시나리오를 적용할 때 유용.
6. Contribution/Withdrawal Frequecy : 적입/인출 주기. 연간, 분기간, 월간 선택가능
7. Simulation Period in Years : 투자기간(년)
8. Tax Treatment : 세전/세후 선택. 세후 선택 시 세율 등을 입력해야 하는데 잘 모르겠다.
- Pre-tax Returns (세전 수익률): 세금 효과를 고려하지 않고, 자산에서 발생한 총 수익률(세금 공제 전)을 바탕으로 시뮬레이션을 수행. 세금 유예 계좌(예: 미국 IRA, 401(k) 또는 한국의 연금저축, IRP 등)에 있는 자산을 시뮬레이션하거나, 세금의 영향을 무시하고 순수한 투자 성과만을 분석하고 싶을 때 유용
- After-tax Returns (세후 수익률): 배당, 이자, 자본 이득 등에 부과되는 세금을 고려하여 시뮬레이션을 수행. 일반 과세 계좌(taxable account)에 있는 투자의 장기적인 성과를 현실적으로 예측할 때 중요.
9. Simulation Model : 미래 수익률을 생성하는 방법을 결정
- Historical Returns: 과거 연도별 데이터를 무작위로 재배열하여 미래를 추정. 부트스트랩(Bootstrap) 방식
- Forecasted Returns: 사용자가 입력한 평균 및 표준편차로 미래 수익률을 예측
- Statistical Returns: 자산별 평균, 변동성, 상관관계를 기반으로 난수 생성
- Parameterized Returns: 특정 확률 분포를 지정하여 시뮬레이션 수행
10. Use Full History :
- Yes: 시뮬레이션에 사용하는 각 자산별 데이터 중 최장기간 활용. 각 자산은 자신이 보유한 전체 역사적 데이터를 사용하여 수익률 샘플을 추출하므로 시뮬레이션에 사용되는 데이터 기간이 자산별로 달라질 수 있음. 어떤 자산은 50년간 실적을 이용하지는 반면 다른 자산은 10년간 실적만 이용하는 경우가 발생할 수 있음.
- No: 포트폴리오의 모든 자산이 공통적으로 사용 가능한 가장 짧은 기간으로 제한. 즉, 포트폴리오에 데이터가 늦게 시작하는 자산이 하나라도 있다면, 시뮬레이션에 사용되는 데이터의 시작 시점도 그 자산의 시작 시점에 맞춰지게 되어 모든 자산이 동일한 기간의 과거 데이터를 사용함.
11. Sequence of Returns Risk: 시뮬레이션 기간 초기에 예상치 못한 나쁜 수익률 순서가 포트폴리오의 장기 생존 가능성에 미치는 영향을 모델링하여, 순수하게 평균 수익률만 고려하는 것보다 더 현실적인 위험 분석을 제공함
- No Adjustments: 무작위 순서로 수익률 시뮬레이션(일반적인 몬테카를로 시뮬레이션)
- Worst X Years First (최악의 X년 먼저): 전체 시뮬레이션 기간 동안 발생할 수 있는 최악의 X년 수익률을 시뮬레이션 기간의 초기에 배치하여, 포트폴리오가 은퇴 초기에 겪을 수 있는 심각한 자본 잠식 위험을 테스트함. 포트폴리오의 생존율은 가장 낮게 나옴.
- Worst Years At Retirement (은퇴 시점의 최악의 해): 특정 인출 시나리오(예: 은퇴)가 시작될 때 최악의 수익률을 배치하는 옵션
12. Inflation Model: 시뮬레이션에 인플레이션을 어떻게 반영할지 결정
- Historical Inflation: 과거의 실제 인플레이션 데이터 기반으로 무작위 표본을 추출하여 미래의 인플레이션을 모델링.
- Parameterized Inflation: 사용자가 직접 지정한 평균(Mean) 및 표준편차 같은 통계적 매개변수를 사용하여 인플레이션을 모델링. 특정 미래 인플레이션 시나리오를 테스트할 때 유용
13. Rebalancing: 리밸런싱 주기 설정. 월간, 분기, 연간 등 선택가능
3. 포트폴리오 결정

시뮬레이션 조건을 다 결정했으면 다음은 계산할 포트폴리오를 선정할 순서다. 주식, 채권, 리츠 금 등 다양한 자산군을 선택하고 각각에 대한 비중을 입력하면 된다. 위 그림처럼 고전적인 주식 60 /채권 40 포트폴리오를 입력할 수도 있다.
4. 시뮬레이션 결과
의외로 계산결과는 금방 나온다.

일단 Summary를 보자. 같은 항목인데 nominal과 real 두가지가 있으면 물가상승을 고려해 현재가치로 환산한 real 값이 이해하기 좋다.
- Time Weighted Rate of Return: 시간가중수익률. 투자금 유출입이 없다는 가정 하의 순수 자산 성과 .
- Portfolio End Balance: 투자기간이 끝났을 때 포트폴리오의 가치금액. 아마도 이 시뮬레이션 결과 중 가장 중요한 지표. 위 그림에선 가장 성적이 낮은 10%는 현재가치로 61만$가 남아있지만 중위권인 50%는 139만$, 상위권 10%는 308만$가 남게 된다는 의미
- Annual Mean Return: CAGR. 중요한 지표이긴 한데 real 값이 없으니 주의할 것
- Safe Withdrawal Rate: 투자자가 포트폴리오에서 매년 인출해도 장기간 자산이 유지될 확률이 높은 최대 인출 비율
- Perpetual Withdrawal Rate: 자산의 구매력을 영구적으로 유지하면서 인출할 수 있는 최대 비율. SWR은 자산이 바닥나지 않는게 조건이라면 PWR은 자산을 원금수준으로 유지하는 기준

다음으로 시간에 따른 자산 변화 그래프를 보자. 그래프 하단의 로그스케일과 인플레이션은 둘다 체크하는 걸 추천한다.
summary에서처럼 상위권과 하위권의 경우를 같이 보여줘 도움이 된다. 위 그림에선 가장 운이 나쁜 10%는 27년이면 자산이 바닥나버리고 하위 25% 수준은 30년 후 원금100만$가 절반 수준인 49.7만$로 감소한 경우를 보여준다. 은퇴 후를 고려하는 거라면 아마 최대한 보수적으로 접근하는 게 좋을테니 이런 결과가 나온다면 안타깝지만 출금액을 더 줄여서 다시 계산해 봐야 할 거 같다.

15년차까지는 99% 이상의 확률로 문제가 없지만 그 후로 조금씩 성공확률이 감소해서 30년차에는 88%가 된다. 이전 그래프에서 보여준 것처럼 하위 10%는 자산이 바닥나지만 하위 25%는 그래도 자산의 절반은 건진다고 했는데 정확히는 하위 12%가 자산이 바닥난다는 걸 의미한다.
그 외에도 최종자산 분포 히스토그램, MDD 히스토그램, 자산간 상관계수 등 다양한 계산결과를 보여주는데 일단 상단부에 나오는 이정도만 둘러봐도 계획을 검토하는 데 큰 도움이 된다.
5. 활용 예시
예를 들어 앞으로 20년 후 은퇴 시점에서 예상되는 자산이 5억원이라 하자. 은퇴 후 30년동안 이 5억으로 매달 200만원씩 인출하는게 목표인데 미국주식50/채권50 포트폴리오를 가져간다면? 30년 후 원금을 유지할 확률은 50%가 채 안될 뿐 아니라 거의 25%의 경우 자산이 바닥나버린다. 주식60/채권40 으로 포트폴리오를 바꿔서 다시 계산하면 성공확률은 83%로 올라간다. 아무래도 수익률이 더 높아야 하는가 싶어 주식100% 포트폴리오를 계산해봐도 성공확률은 81%이다. 운이 좋으면 크게 벌 수 있지만 운이 나쁜 경우를 보완하기엔 무리가 있나보다.
그래서 처음으로 돌아가 매달 인출금을 200에서 180만원으로 줄여보면, 성곡확률은 89%로 확 올라간다. 혹은 인출금은 200만원을 유지하되 은퇴자산을 5억원에서 6억으로 늘리면 성곡확률은 92%, 7억이 되면 자그만치 97%가 된다.
아무래도 남은 20년간 7억을 만들어야겠다는 생각이 든다. 그럼 향후 20년간 7억을 만들기 위해선 월 얼마씩 수익률 몇%를 달성해야 할지, 어떤 포트폴리오가 적당할지 다시 시뮬레이션하는 게 가능하다.
'투자전략' 카테고리의 다른 글
| 쫄보의 모멘텀: 평균모멘텀스코어(AMS) (0) | 2026.04.25 |
|---|---|
| 몬테카를로 시뮬레이션 : 거치식 vs 적립식 비교 (0) | 2025.10.19 |
| 공포에 사라? 어떻게? (0) | 2025.09.21 |
| ISA 계좌, 3년마다 갈아타야 할까? (0) | 2025.09.06 |
| GOLD 관련 ETF 변동성 비교 (4) | 2025.07.12 |