백테스트란 — 돈을 넣기 전에, 과거로 전략을 시험하는 법

백테스트(backtest)는 한 문장으로 이렇게 정리됩니다.

내 매매 규칙을 과거 데이터 전체에 적용해, 그 규칙대로 하나도 빠짐없이 사고팔았다면 어땠을지 전부 세어보는 일.

핵심은 뒤쪽에 있습니다. "하나도 빠짐없이, 전부." 잘된 몇 개를 골라 보는 게 아니라, 규칙에 걸리는 모든 경우를 세는 겁니다.

그리고 백테스트의 진짜 목적은 많은 분들의 기대와 조금 다릅니다. 돈 되는 전략을 찾는 도구라기보다, 돈 안 되는 전략을 실제 돈을 넣기 전에 걸러내는 도구에 가깝습니다.


왜 눈이 아니라 백테스트인가

지난 글에서 차트에서 완벽해 보이던 패턴을 규칙으로 옮겨 837번 전부 검증한 이야기를 했습니다. 결과는 손익비 1.03 — 사실상 본전이었죠. 눈으로 볼 땐 완벽했는데요.

눈은 크게 오른 사례에 먼저 가고, 같은 모양에서 떨어진 수백 개는 시야에서 사라집니다. 그래서 "그럴듯한가"를 눈에 묻지 않고, "전부 세면 어떤가"를 기계에 묻는 것. 그게 백테스트입니다.


백테스트는 4단계로 굴러갑니다

백테스트란 — 돈을 넣기 전에, 과거로 전략을 시험하는 법

1단계 — 규칙화. 느낌을 기계가 셀 수 있는 조건으로 바꿉니다. "눌렸다가 튀어오르면 산다"는 백테스트가 안 됩니다. "볼린저밴드가 수축한 뒤 상단을 돌파하면 산다"처럼, 컴퓨터가 예/아니오로 판정할 수 있어야 합니다.

2단계 — 전수 시행. 그 조건에 걸리는 모든 경우를 사고팝니다. 예쁜 사례만 고르는 순간 백테스트가 아니라 자기 확신 수집이 됩니다.

3단계 — 비용 반영. 수수료·거래세·슬리피지(주문 가격과 실제 체결 가격의 차이)를 뺍니다. 이게 생각보다 큽니다. 지난 글의 실측에서, 같은 전략이 일봉에서는 본전이었는데 5분봉으로 내려가자 연 -30%가 됐습니다. 매매가 잦아질수록 왕복 비용(실측 약 0.23%+슬리피지)이 수익을 갉아먹기 때문입니다.

4단계 — 성적표 읽기. 수익률 하나만 보지 않고, 승률·손익비·MDD를 같이 봅니다.


성적표에서 봐야 할 세 가지

백테스트란 — 돈을 넣기 전에, 과거로 전략을 시험하는 법
  • 승률 — 이긴 매매의 비율. 높다고 좋은 게 아닙니다. 작게 100번 벌고 크게 한 번 잃는 전략은 승률이 높아도 계좌가 녹습니다.
  • 손익비(Profit Factor) — 번 돈을 잃은 돈으로 나눈 값. 1.0이 본전, 1.0 미만이면 이기는 횟수가 많아도 손해입니다. 승률보다 먼저 볼 값입니다.
  • MDD(최대 낙폭) — 계좌가 고점에서 최대 몇 %까지 꺼졌는가. 수익률이 같아도 MDD -50%면 대부분 중간에 못 버티고 내립니다. "내가 견딜 수 있는 크기인가"를 묻는 지표입니다.

가장 큰 함정 — 과최적화

백테스트란 — 돈을 넣기 전에, 과거로 전략을 시험하는 법

백테스트에는 치명적인 함정이 하나 있습니다. 과최적화(overfitting), 과거 성적이 좋아질 때까지 조건을 계속 조이는 일입니다.

조건을 하나 더할 때마다 과거 성적은 거의 항상 좋아집니다. 과거는 이미 정해져 있으니, 조건을 충분히 조이면 어떤 데이터든 완벽하게 맞출 수 있거든요. 문제는 그렇게 만든 전략이 시장의 규칙을 배운 게 아니라 과거를 통째로 외운 것이라는 점입니다. 외운 시험지는 다시 안 나옵니다.

이런 징후가 보이면 과최적화를 의심합니다.

  • 조건 수가 계속 늘어난다 (5개, 7개, 10개…)
  • 조건 하나를 빼면 성적이 와르르 무너진다
  • 특정 기간에만 유난히 잘 통한다
백테스트란 — 돈을 넣기 전에, 과거로 전략을 시험하는 법

대응은 방향이 하나입니다. 전략을 만든 데이터와 시험하는 데이터를 분리하는 것. 기간을 반으로 나눠 앞쪽에서 규칙을 만들고 뒤쪽에서 시험하거나(워크포워드 방식의 기본 아이디어), 조건 값을 조금씩 바꿔봐도 성적이 크게 안 변하는지(강건성) 확인합니다. 조금만 건드려도 무너지는 전략은, 과거를 외운 전략입니다.


나머지 함정들

백테스트란 — 돈을 넣기 전에, 과거로 전략을 시험하는 법
  • 생존 편향 — 성공한 사례만 보이는 문제. 지금 시장에 살아남은 종목만으로 검증하면, 사라진 종목의 실패가 빠집니다. (지난 글이 이 얘기였습니다.)
  • 비용 무시 — 수수료·슬리피지를 빼먹으면, 특히 매매가 잦은 전략은 성적이 완전히 뒤집힙니다.
  • 표본 부족 — 매매 횟수가 몇십 건이면, 그 성적은 실력이 아니라 우연일 가능성이 큽니다.

정리하면

백테스트란 — 돈을 넣기 전에, 과거로 전략을 시험하는 법
  • 백테스트 = 규칙화 → 전수 시행 → 비용 반영 → 성적표(승률·손익비·MDD) 읽기
  • 목적은 돈 되는 전략 찾기보다, 돈 안 되는 전략을 돈 넣기 전에 걸러내기
  • 과거에 완벽할수록 의심합니다 — 만든 데이터와 시험 데이터를 분리
  • 백테스트를 통과한 전략도 미래를 보장하지는 않습니다. 다만 떨어진 전략에는 대체로 떨어질 이유가 있었습니다

백테스트란 — 돈을 넣기 전에, 과거로 전략을 시험하는 법

면책 안내

본 글은 정보 제공을 목적으로 하며, 투자 조언이 아닙니다. 특정 종목·상품의 매수/매도 권유가 아니며, 모든 투자 판단과 책임은 투자자 본인에게 있습니다.