몬테카를로 시뮬레이션이란? 거래 순서를 섞어 최악을 미리 보는 법
백테스트가 보여주는 수익 곡선은 한 개입니다. 그런데 그 곡선은 거래가 그 순서로 일어났을 때의 결과일 뿐입니다. 순서만 바꿔도 계좌가 겪는 고통은 완전히 달라집니다.
수익 곡선이 한 개라는 것의 함정
전략을 200번 매매한 기록이 있다고 합시다. 최종 수익 +34%, 최대 낙폭 −12%. 이 숫자는 정확합니다. 다만 이건 그 200건이 실제로 배열된 딱 한 가지 순서에서 나온 값입니다.
같은 거래 200건을 그대로 두고 순서만 바꿔 보면 어떻게 될까요. 최종 수익은 거의 같습니다. 곱셈의 순서를 바꾸는 것이니 당연합니다. 그런데 최대 낙폭은 완전히 달라집니다. 손실 거래가 흩어져 있으면 낙폭이 얕고, 손실 거래가 우연히 한곳에 몰리면 낙폭이 깊어집니다.
순서 A: +5 −5 +5 −5 +5 +5 −5 +5 +5 −5
→ 최대 낙폭 약 −9.8%
순서 B: −5 −5 −5 −5 +5 +5 +5 +5 +5 +5
→ 최대 낙폭 약 −18.5%
최종 잔고는 두 경우 모두 같다. 계좌가 견뎌야 했던 깊이만 2배 차이.
실전에서 우리를 그만두게 만드는 것은 최종 수익이 아니라 저 낙폭입니다. 백테스트 낙폭이 −12%라고 믿고 시작했는데 실제로 −25%를 맞으면, 전략이 고장 난 게 아니어도 대부분 그 지점에서 손을 뗍니다.
몬테카를로 시뮬레이션은 이 문제를 정면으로 다룹니다. 순서를 무작위로 수천 번 다시 섞어서 "이 전략이 만들어낼 수 있는 곡선들의 범위"를 통째로 보는 방법입니다.
절차 — 섞고, 다시 그리고, 분포로 본다
필요한 재료는 하나뿐입니다. 청산까지 끝난 거래 기록(건당 손익률) 목록입니다. 백테스트 결과든 실거래 기록이든 상관없습니다.
2단계 배열을 무작위로 섞어 수익 곡선을 하나 그린다
3단계 그 곡선의 최종수익·최대낙폭·최장 연패를 기록한다
4단계 2~3단계를 5,000회 반복한다
5단계 기록된 5,000개 값을 분포로 정리한다
결과는 숫자 하나가 아니라 분포입니다. "최대 낙폭 −12%"가 아니라 "최대 낙폭의 중앙값은 −14%, 5%의 경우에는 −27%보다 깊었다" 같은 형태로 나옵니다.
섞는 방식은 두 가지가 흔히 쓰입니다.
순서 섞기(비복원 셔플) — 200건을 그대로 두고 순서만 바꿉니다. 거래 구성은 100% 보존되므로 순수하게 "배열 운"만 측정합니다. 최종 수익은 거의 고정되고 낙폭만 흩어집니다.
복원 추출(부트스트랩) — 200건 중에서 무작위로 하나 뽑고 되돌려 놓기를 200번 반복합니다. 같은 거래가 여러 번 뽑히고 어떤 거래는 한 번도 안 뽑힙니다. 최종 수익까지 흩어지므로 더 보수적인 결과가 나옵니다. 표본이 미래를 대표한다는 가정이 더 강하게 들어갑니다.
둘 중에는 복원 추출을 기본으로 두는 편이 안전합니다. 실전에서 다음 200건이 과거 200건과 정확히 같은 구성일 이유가 없기 때문입니다.
결과 읽는 법 — 백분위로 본다
5,000개 결과가 나왔으면 평균이 아니라 백분위를 봅니다. 평균 낙폭은 실전 대비 준비에 거의 쓸모가 없습니다.
중앙값(50%) −14.2%
75 백분위 −18.6%
90 백분위 −24.1%
95 백분위 −27.3%
99 백분위 −34.8%
원래 백테스트가 보여준 값: −12%
→ 실제로 준비해야 할 숫자는 −27% 언저리
실무 기준은 이렇습니다. 95 백분위 낙폭을 견딜 수 없으면 그 크기로 운용하지 않습니다. 견딜 수 없다는 건 자금이 부족하다는 뜻이기도 하지만, 대부분은 그 낙폭에서 규칙을 어기고 손을 대게 된다는 뜻입니다.
같이 보는 값이 두 개 더 있습니다.
손실로 끝날 확률 — 5,000회 중 최종 수익이 마이너스로 끝난 비율입니다. 백테스트가 +34%였어도 이 값이 20%면, 다섯 번 중 한 번은 같은 전략으로 잃고 끝나는 배열이 존재한다는 뜻입니다.
최장 연패 — 심리적으로 가장 중요한 값입니다. 승률 55% 전략이라도 200건 중 8~10연패 구간은 흔하게 나옵니다. 미리 알고 시작하는 것과 모르고 맞는 것은 완전히 다릅니다.
중앙값 7연패
90 백분위 10연패
99 백분위 13연패
→ 8연패는 고장 신호가 아니라 정상 범위
→ 대응 규칙을 세울 기준선은 13연패 쪽
베팅 크기를 정하는 데 쓰는 법
몬테카를로가 실제로 가장 크게 쓰이는 곳은 전략 판정이 아니라 포지션 사이징입니다. 절차는 단순합니다. 감당 가능한 낙폭을 먼저 정하고, 거기에 맞춰 베팅 크기를 역산합니다.
현재 건당 리스크 2% → 95% 낙폭 −27.3%
건당 리스크 1.5% → 95% 낙폭 −20.6%
건당 리스크 1.2% → 95% 낙폭 −16.5%
→ 채택: 건당 1.5% 이하
(낙폭은 베팅 크기에 대략 비례해 움직인다)
이 순서가 중요합니다. 수익을 먼저 정하고 리스크를 맞추는 게 아니라, 견딜 수 있는 낙폭을 먼저 못 박고 그 안에 들어오는 크기를 고르는 것입니다. 켈리 공식이 이론적 최적 베팅을 알려준다면, 몬테카를로는 그 베팅을 실제로 버틸 수 있는지를 알려줍니다. 대부분의 경우 켈리 값의 절반 이하로 내려오게 됩니다.
파산 확률도 같은 시뮬레이션에서 바로 나옵니다. 5,000회 중 계좌가 특정 수준(예: 시드의 50%) 아래로 떨어진 비율을 세면 됩니다.
결과를 무효로 만드는 것들
몬테카를로는 강력하지만 만능이 아닙니다. 아래가 섞이면 숫자는 그럴듯한데 의미가 없습니다.
표본이 너무 적다 — 거래 30건을 5,000번 섞어도 30건에 담긴 정보 이상은 나오지 않습니다. 최소 100건, 가능하면 200건 이상을 씁니다. 30건짜리 분포는 정밀해 보이는 착시만 만듭니다.
거래가 서로 독립이 아니다 — 순서를 섞는다는 것은 "거래끼리 관계가 없다"고 가정하는 것입니다. 그런데 추세추종 전략은 실제로 승패가 뭉쳐 다닙니다(추세장에 몰아 이기고 횡보장에 몰아 집니다). 이런 전략은 섞는 순간 실제보다 낙폭이 얕게 나옵니다. 물타기·피라미딩처럼 거래끼리 엮이는 방식을 쓰면 개별 건을 독립 표본으로 다루는 것 자체가 틀립니다.
원본 기록이 이미 오염돼 있다 — 미래참조가 섞였거나 수수료·슬리피지를 빼먹은 백테스트를 넣으면, 오염된 숫자의 분포가 나올 뿐입니다. 몬테카를로는 배열 위험만 보여주지 데이터 품질은 검사하지 않습니다. 순서 검증인 워크포워드 분석과 역할이 다르므로 둘은 대체 관계가 아니라 병행 관계입니다.
과최적화된 전략에 돌린다 — 커브피팅된 결과를 넣으면 낙폭 분포도 낙관적으로 나옵니다. 순서는 먼저 워크포워드로 파라미터 오염을 걸러내고, 그 다음 검증 구간 거래만 모아 몬테카를로를 돌리는 쪽입니다.
시장 구조 변화는 담기지 않는다 — 과거 200건에 없던 종류의 사건(거래소 장애, 유동성 증발, 규제 발표)은 어떤 리샘플링으로도 만들어지지 않습니다. 분포의 99 백분위가 최악이 아니라, 분포 밖이 최악입니다.
어디서 돌리나
거창한 도구가 필요하지 않습니다. 거래별 손익률 목록만 있으면 스프레드시트로도 수백 회는 가능하고, 파이썬이면 스무 줄 남짓입니다. 상용 백테스팅 툴은 대부분 몬테카를로 탭을 내장하고 있습니다.
중요한 것은 도구가 아니라 돌리는 시점입니다. 전략을 실전에 올리기 직전에 한 번, 그리고 실거래 기록이 100건쯤 쌓였을 때 다시 한 번 돌립니다. 두 번째가 더 중요합니다. 실거래 기록으로 돌린 분포가 백테스트 기반 분포보다 눈에 띄게 나쁘면, 체결 가정이나 비용 산정에서 무언가 빠졌다는 신호입니다. 백테스팅 절차를 다시 점검할 지점이 거기입니다.
핵심 요약 3줄
① 몬테카를로 시뮬레이션은 같은 거래 기록을 수천 번 다시 섞어 수익 곡선의 분포를 보는 방법이다. 최종 수익은 거의 그대로지만 최대 낙폭과 최장 연패는 크게 흩어진다.
② 판정 기준은 평균이 아니라 백분위다. 95 백분위 낙폭을 견딜 수 없으면 그 크기로 운용하지 않는다. 베팅 크기는 감당 가능한 낙폭에서 역산한다.
③ 표본이 100건 미만이거나 거래가 서로 엮여 있거나 원본 백테스트가 오염됐으면 결과는 의미가 없다. 분포 밖의 사건은 애초에 담기지 않는다는 점도 같이 기억한다.
주의
본문의 낙폭 분포, 백분위 수치, 연패 길이, 베팅 크기별 결과는 계산 구조와 판단 절차를 설명하기 위한 예시이며 특정 전략의 실측 성과가 아닙니다. 실제 값은 전략의 승률·손익비·매매 빈도·표본 수에 따라 달라지므로 그대로 적용할 수 없습니다. 어떤 시뮬레이션도 미래 수익이나 최대 손실 한도를 보장하지 않으며, 레버리지 거래는 원금 전액을 잃을 수 있습니다. 투자 판단과 책임은 본인에게 있습니다.
NOONOO TRADING 무료 채팅방에서 실시간 트레이딩을 같이 보세요.
무료 채팅방 입장 →📈 OKX 신규 가입 시 거래 수수료 할인
OKX 수수료 할인 가입 →