백테스트란? 뜻과 계산 원리, 한계

업데이트

백테스트(backtest, 백테스팅)는 매수·매도 규칙을 과거 시세에 그대로 적용했다면 어떤 거래가 일어나고 자산이 어떻게 변했을지 계산해 보는 시뮬레이션입니다. 실제 돈을 쓰기 전에 규칙을 점검하는 연구 방법이며, 과거 결과가 미래 수익을 보장하지는 않습니다.

백테스트의 뜻

백테스트는 '과거로 되돌려 시험해 본다'는 뜻입니다. 투자 아이디어를 말로만 두지 않고 매수 조건, 매도 조건, 대상 종목, 기간, 비용 같은 규칙으로 정리한 뒤, 그 규칙을 과거 시세에 날짜 순서대로 적용해 가상으로 매매해 봅니다.

예를 들어 'RSI가 30 이하로 내려가면 사고 70 이상이면 판다'는 규칙을 2015년부터 2025년까지의 코스피 종목에 적용하면, 그 기간에 몇 번 거래가 일어났고 거래마다 얼마를 벌거나 잃었는지, 자산이 어떤 곡선을 그렸는지가 계산됩니다. 이 계산 과정 전체가 백테스트입니다.

백테스트는 어떤 순서로 계산되나

도구마다 세부 구현은 다르지만 큰 흐름은 같습니다.

  • 1단계 — 규칙 정의: 진입(매수) 조건, 청산(매도) 조건, 손절·익절 같은 위험 관리, 대상 종목(유니버스), 기간, 초기 자본을 정합니다.
  • 2단계 — 과거 데이터 준비: 일별 시세(수정주가), 거래량, 재무 지표 등을 불러옵니다. 액면분할·배당 같은 사건을 반영한 수정주가를 써야 과거 가격이 왜곡되지 않습니다.
  • 3단계 — 신호 판정: 날짜를 하루씩 앞으로 진행하며 그 날까지 알 수 있었던 정보만으로 조건이 충족됐는지 판정합니다.
  • 4단계 — 가상 체결: 신호에 따라 가상으로 사고팔며 수수료·슬리피지(체결 가격 차이)·거래세를 반영합니다.
  • 5단계 — 결과 계산: 일별 자산 평가액으로 수익곡선을 만들고 CAGR, 최대 낙폭(MDD), 샤프 비율, 거래 통계 같은 지표를 산출합니다.

백테스트를 왜 하나

백테스트의 가치는 '맞는 전략을 찾아 준다'는 데 있지 않습니다. 아이디어를 수치로 점검하고 한계를 미리 알게 해 준다는 데 있습니다.

  • 규칙의 명확화: '싸질 때 산다' 같은 막연한 생각은 백테스트하려면 숫자 조건으로 바꿔야 합니다. 그 과정에서 모호한 부분이 드러납니다.
  • 위험의 확인: 수익률만이 아니라 과거에 최대 얼마나 하락했는지(MDD), 손실이 얼마나 오래 이어졌는지를 볼 수 있습니다.
  • 전략 간 비교: 같은 기간·같은 비용 조건에서 여러 규칙의 결과를 나란히 놓고 볼 수 있습니다.
  • 가정의 검증: 속설처럼 전해지는 매매 규칙이 실제 과거 데이터에서도 성립했는지 확인할 수 있습니다.

백테스트가 알려 주지 못하는 것

백테스트 결과는 '과거에 이 규칙을 썼다면'이라는 가정 위의 계산입니다. 다음 한계를 항상 함께 기억해야 합니다.

  • 미래 수익: 과거에 잘 작동한 규칙이 앞으로도 같은 결과를 낸다는 보장이 없습니다. 시장 환경은 계속 바뀝니다.
  • 체결의 현실성: 시뮬레이션은 원하는 가격에 원하는 수량이 체결된다고 가정하기 쉽습니다. 거래량이 적은 종목이나 큰 금액에서는 실제 체결과 차이가 날 수 있습니다.
  • 데이터의 한계: 상장폐지 종목이 빠진 데이터, 수정되지 않은 가격 데이터는 결과를 왜곡합니다. (생존편향 — '백테스트의 함정' 글 참고)
  • 과최적화: 과거 데이터에 지나치게 맞춘 규칙은 새로운 데이터에서 성과가 크게 달라질 수 있습니다. 워크포워드 분석 같은 검증이 필요한 이유입니다.

백테스트를 처음 해볼 때의 순서

처음에는 조건 하나로 이루어진 단순한 규칙부터 시작하는 것이 일반적인 연구 순서입니다. 조건이 많을수록 결과가 왜 그렇게 나왔는지 해석하기 어렵고 과최적화 위험도 커집니다.

  • 기간은 상승장과 하락장이 모두 포함되도록 충분히 길게 잡습니다.
  • 수수료·슬리피지·거래세를 반드시 반영합니다. 비용을 빼면 거래가 잦은 규칙의 성과가 실제보다 크게 보입니다.
  • 수익률 하나만 보지 말고 MDD, 거래 횟수, 승률·손익비를 함께 봅니다.
  • 같은 기간 단순 보유(바이앤홀드) 결과와 비교합니다.
  • 결과가 마음에 든다면 바로 받아들이지 말고 워크포워드·몬테카를로 같은 검증으로 한 번 더 확인합니다.

널스탁에서의 백테스트

널스탁은 전략을 문장으로 입력하면 조건으로 해석해 과거 데이터로 백테스트하는 투자 연구 플랫폼입니다. 결과 화면에서 CAGR, 최대 낙폭, 샤프 비율, 거래 통계와 수익곡선을 확인하고, 워크포워드·몬테카를로 검증과 가상계좌 모의투자까지 이어서 진행할 수 있습니다. 모든 결과는 과거 데이터 기반 시뮬레이션이며 투자 자문이 아닙니다.

자주 묻는 질문

백테스트란 무엇인가요?
백테스트는 매수·매도 규칙을 과거 시세에 날짜 순서대로 적용해, 그 규칙을 썼다면 어떤 거래가 일어나고 자산이 어떻게 변했을지 계산해 보는 시뮬레이션입니다.
백테스트 결과가 좋으면 앞으로도 같은 결과가 나오나요?
그렇지 않습니다. 백테스트는 과거 데이터 기반 시뮬레이션이라 미래 수익은 보장되지 않습니다. 시장 환경은 계속 바뀌기 때문에 과거에 작동한 규칙이 같은 결과를 낸다는 근거가 되지 못합니다.
백테스트에서 수수료와 슬리피지를 왜 반영하나요?
비용을 빼면 거래가 잦은 규칙의 성과가 실제보다 크게 보이기 때문입니다. 수수료·슬리피지(체결 가격 차이)·거래세를 반영해야 결과가 현실에 가까워집니다.

떠오른 전략 아이디어를 문장으로 입력하면 과거 데이터로 백테스트해 볼 수 있습니다.

전략 백테스트하기

이 가이드는 투자 연구에 필요한 개념과 계산 방법을 설명하는 교육 자료입니다. 특정 종목·전략의 매수·매도를 권유하거나 미래 수익을 예측하지 않으며, 백테스트 결과는 과거 데이터 기반 시뮬레이션이므로 미래 수익은 보장되지 않습니다.