인사이트

몬테카를로 시뮬레이션 활용, 비트코인 추세 전략 거래 55번을 1만 번 다시 돌린 결과

몬테카를로 시뮬레이션 활용법을 비트코인 100일선 전략으로 보여 줍니다. 거래 55번을 1만 번 다시 뽑아 보니 최대 손실 중앙값 −41%, 하위 5%는 −65%로 백테스트의 −31%보다 훨씬 컸습니다. 방법과 단점도 정리합니다.

밤의 몬테카를로 항구 불빛을 배경으로, 테라스 난간 위에 룰렛 공과 비트코인 동전이 나란히 놓인 사진풍 장면(몬테카를로 시뮬레이션 활용), 글자 없음
목차
  1. 실험 전략과 몬테카를로 시뮬레이션 방법
  2. 몬테카를로 시뮬레이션 계산 결과
  3. 결과를 해석할 때 볼 세 숫자
  4. 몬테카를로 시뮬레이션 단점과 보완
  5. 시스템트레이딩이라면 몬테카를로를 이렇게 씁니다
  6. 자주 묻는 질문
  7. Q. 몬테카를로 시뮬레이션 활용은 어디에 하나요?
  8. Q. 몬테카를로 시뮬레이션 방법은 무엇인가요?
  9. Q. 몬테카를로 시뮬레이션 파이썬으로 할 수 있나요?
  10. Q. 몬테카를로 시뮬레이션 단점은 무엇인가요?
  11. 출처

몬테카를로 시뮬레이션 활용의 핵심은 '백테스트가 보여 준 최대 손실은 여러 가능성 중 하나'라는 점을 숫자로 확인하는 것입니다. 비트코인 100일 이동평균선 추세 전략의 2018년 이후 거래 55번으로 실험했습니다. 실제 순서대로 계산한 거래 기준 최대 손실은 −30.6%였습니다.

그런데 같은 55번의 거래를 무작위로 다시 뽑아 1만 개의 가상 역사를 만들자, 최대 손실의 중앙값은 −41.4%, 하위 5%는 −65.0%였습니다. 최대 손실이 −50%를 넘는 경우도 26.4%였습니다. 백테스트 숫자의 두 배 가까운 손실을 '충분히 일어날 수 있는 일'로 각오해야 한다는 뜻입니다.

실험 전략과 몬테카를로 시뮬레이션 방법

  • 전략 — 내용: 비트코인 종가가 100일 이동평균 위면 보유, 아래로 내려가면 정리
  • 기간 — 내용: 2018년 1월~2026년 10월 15일(일봉)
  • 비용 — 내용: 진입·청산 각 0.05%
  • 거래 — 내용: 55번, 이긴 거래 21.8%
  • 실제 순서 결과 — 내용: 총수익 +1,825.7%, 거래 기준 최대 손실 −30.6%

몬테카를로 시뮬레이션 방법은 두 가지를 썼습니다.

  • 재배열: 55번의 거래 결과는 그대로 두고 순서만 1만 번 무작위로 섞습니다. 총수익은 같고 중간 손실만 달라집니다.
  • 복원추출: 55번 중에서 한 번에 하나씩 무작위로 뽑아(같은 거래가 여러 번 나올 수 있음) 55개짜리 새 목록을 1만 번 만듭니다. 총수익과 손실이 모두 달라집니다.

파이썬이라면 numpy의 permutation(재배열)과 choice(복원추출)로 10줄 안팎이면 계산할 수 있습니다. 엑셀에서도 난수 열로 정렬해 같은 작업을 할 수 있지만, 1만 번 반복은 코드가 편합니다.

거래 목록을 섞는 재배열과 다시 뽑는 복원추출 두 방법을 비교한 일러스트(몬테카를로 시뮬레이션 방법)

몬테카를로 시뮬레이션 계산 결과

  • 최대 손실 중앙값 — 재배열 1만 번: −40.7% · 복원추출 1만 번: −41.4%
  • 최대 손실 하위 5% — 재배열 1만 번: −56.8% · 복원추출 1만 번: −65.0%
  • 실제(−30.6%)보다 나쁜 비율 — 재배열 1만 번: 91.5%
  • 최대 손실 −50% 초과 비율 — 복원추출 1만 번: 26.4%
  • 총수익 중앙값 — 재배열 1만 번: (실제와 같음) · 복원추출 1만 번: +1,465.9%
  • 총수익 하위 5% — 복원추출 1만 번: −0.8%
  • 손실로 끝난 비율 — 복원추출 1만 번: 5.1%

(비트스탬프 BTC/USD 일봉, 2026-10-16 06:47 KST 조회, 퀀트알파 계산. 거래 단위로 계산한 최대 손실이라 일봉 기준 손실보다 작게 나올 수 있습니다.)

실제 역사는 이 전략에게 운이 좋은 편이었습니다. 재배열한 1만 개 가운데 91.5%가 실제보다 더 큰 최대 손실을 겪었습니다. 총수익 역시 하위 5%에서는 8년 동안 거의 본전이었습니다. 승률이 22%밖에 안 되는 추세 전략은 소수의 큰 이익에 기대기 때문에, 그 큰 이익이 언제 오느냐에 따라 결과가 크게 갈립니다.

복원추출 1만 번의 최대 손실 분포 막대 차트와 실제 값 표시(몬테카를로 시뮬레이션 계산, 직접 계산)

결과를 해석할 때 볼 세 숫자

  • 최대 손실 하위 5%(−65%): 계좌가 이만큼 줄어도 규칙을 지킬 수 있는지 스스로 물어봐야 하는 숫자입니다.
  • 손실로 끝날 확률(5.1%): 전략 자체에 기대수익이 있더라도 운이 나쁘면 8년을 해도 본전일 수 있습니다.
  • 실제보다 나쁜 비율(91.5%): 백테스트가 '좋은 순서'였는지 판단하는 숫자입니다. 이 비율이 높을수록 백테스트 손실을 보수적으로 늘려 잡아야 합니다.

최대 손실의 의미와 회복 기간은 "최대낙폭 MDD 백테스트"에서, 과최적화로 백테스트가 부풀려지는 문제는 "백테스팅 과최적화 실험"에서 함께 볼 수 있습니다.

깊은 협곡 바닥에서 반대편 절벽 위로 이어진 긴 다리와 그 끝에 놓인 비트코인 동전, 낙폭과 긴 회복 기간을 상징하는 사진풍 장면최대낙폭 MDD, 비트코인 전략 4개를 8년 동안 돌려 보니최대낙폭 MDD를 백테스트 성적표에서 어떻게 읽어야 할까요? 비트코인 보유·200일선·50대50·변동성 맞춤 전략을 2018년부터 비교해 MDD, 연수익률, 칼마 비율, 최장 회복 기간까지 데이터로 정리했습니다.quant-alpha.kr한 봉우리만 뾰족하게 솟은 지형과 그 옆의 넓고 완만한 언덕, 백테스팅 과최적화를 상징하는 일러스트백테스팅 과최적화, 비트코인 이동평균 162개 조합으로 확인한 학습과 검증의 차이백테스팅 과최적화를 비트코인 데이터로 직접 시험했습니다. 이동평균 교차 162개 조합 중 학습 구간 1위(+126%)는 검증 구간에서 −24%로 160위였고, 두 구간 순위 상관은 −0.13이었습니다. 과최적화를 줄이는 백테스트 방법을 정리합니다.quant-alpha.kr
복원추출 1만 번 중 무작위 100개 누적 수익 경로와 실제 경로를 겹친 차트

몬테카를로 시뮬레이션 단점과 보완

  • 거래가 서로 독립이라고 가정합니다. 실제로는 하락장에서 손실이 몰려 나오므로, 시뮬레이션 손실은 오히려 작게 나올 수 있습니다.
  • 과거에 없던 사건은 만들어 내지 못합니다. 거래소 사고나 급격한 금리 국면 변화 같은 위험은 따로 점검해야 합니다.
  • 보완 방법: 연속된 거래를 묶어서 뽑는 블록 방식, 손실 거래에 비용을 더 얹는 스트레스 방식을 함께 쓰면 더 보수적인 범위를 얻을 수 있습니다.

지금 시장을 대입해 보면, 비트코인은 10월 15일 장중 79,694달러까지 내려갔다 82,145달러로 마감했고, 미국 9월 생산자물가는 전월 대비 1.3%로 예상(0.5%)을 크게 넘었습니다. 연말 추가 인상 경계가 커지는 국면에서는 손실이 몰려 나올 가능성을 더 크게 봐야 합니다. 반등이 이어지면 추세 전략의 큰 이익 거래가 나올 수 있고, 횡보하면 작은 손실이 쌓이며, 하락이 이어지면 시뮬레이션 하위 구간에 가까운 손실을 겪을 수 있습니다.

서로 묶여 떨어지는 손실 블록을 표현한 일러스트(몬테카를로 시뮬레이션 단점)

시스템트레이딩이라면 몬테카를로를 이렇게 씁니다

  • 계좌 크기를 정할 때: 백테스트 최대 손실이 아니라 몬테카를로 하위 5% 손실을 기준으로 투자 비중을 정합니다. 예를 들어 −65%를 계좌 전체의 −20% 안으로 묶으려면 이 전략에는 계좌의 약 30%만 배분합니다.
  • 전략을 멈출 기준을 정할 때: 실제 손실이 시뮬레이션 하위 1~5% 범위를 넘어서면 '운이 나쁜 것'이 아니라 '전략이 시장과 맞지 않는 것'일 수 있으므로 점검에 들어갑니다.
  • 감정을 다스릴 때: 미리 계산한 범위 안의 손실이면 규칙을 그대로 지킵니다. 숫자로 각오해 둔 손실은 공포로 판단을 바꾸지 않게 해 줍니다.
하위 5% 손실 기준으로 비중을 정하는 계기판 일러스트(시스템트레이딩 활용)

자주 묻는 질문

Q. 몬테카를로 시뮬레이션 활용은 어디에 하나요?

A. 매매 전략의 최대 손실 범위, 손실로 끝날 확률, 적정 투자 비중을 정할 때 씁니다. 백테스트 한 번의 결과를 여러 가능성으로 넓혀 보는 데 목적이 있습니다.

Q. 몬테카를로 시뮬레이션 방법은 무엇인가요?

A. 거래 목록의 순서를 무작위로 섞는 재배열, 거래를 무작위로 다시 뽑는 복원추출이 기본입니다. 같은 작업을 수천~수만 번 반복해 결과 분포를 봅니다.

Q. 몬테카를로 시뮬레이션 파이썬으로 할 수 있나요?

A. numpy의 permutation과 choice 함수로 간단히 계산할 수 있습니다. 거래별 수익률 배열만 있으면 됩니다.

Q. 몬테카를로 시뮬레이션 단점은 무엇인가요?

A. 거래가 서로 독립이라고 가정하고, 과거에 없던 사건은 만들지 못합니다. 그래서 결과는 예측이 아니라 각오할 범위로 써야 합니다.

백테스트 숫자보다 넓은 손실 범위를 기준으로 비중을 정하는 퀀트알파의 운용 원칙이 궁금하다면 홈페이지에서 확인해 보세요.

https://quant-alpha.kr/?utm_source=web_blog&utm_medium=blog

매일 운용 현황은 퀀트알파 텔레그램 채널에서 확인해 보세요.

퀀트알파 텔레그램 채널퀀트알파 | 비트코인 시스템트레이딩시장 국면별 BTC 자동매매 분석, 매일 전략 작동 현황과 매주 수익·손실·MDD 리포트 공개t.me/+oSDjObO-5N05NWVl

본 글의 수익률과 손실은 과거 데이터로 계산한 백테스트·시뮬레이션 결과이며 실제 운용 성과가 아닙니다. 시뮬레이션은 가정에 따라 달라집니다.

출처

  • 비트스탬프 BTC/USD 일봉(2018-01~2026-10-15, 2026-10-16 06:47 KST 조회), 퀀트알파 직접 계산(100일선 전략, 편도 0.05%, 재배열·복원추출 각 1만 회)
  • 미국 노동통계국(BLS) 9월 생산자물가 발표(2026-10-15)
← 블로그 목록