백테스트는 예측이 아니라 반박 실험입니다
백테스트는 미리 정한 투자 규칙을 과거 데이터에 반복 적용해 어떤 성과와 손실이 나타났는지 보는 가상 실험입니다. 좋은 과거 수익률은 다음 해 수익을 보장하지 않습니다. 먼저 ‘영업이익이 양수이고 특정 가치지표를 통과한 종목을 분기마다 동일가중한다’처럼 입력값과 실행시점을 명확히 쓰고, 결과가 나쁜 경우에도 같은 규칙을 유지해야 사후 해석을 줄일 수 있습니다.
CAGR은 시작자산과 최종자산을 기간에 맞춰 연평균 성장률로 환산한 값이고, MDD는 고점에서 이후 저점까지 가장 크게 줄어든 비율입니다. 두 수치만으로 경로 전체를 알 수 없으므로 연도별 수익, 현금 비중, 보유 종목 수와 거래내역을 함께 봐야 합니다. 높은 CAGR보다 감당할 수 없는 MDD가 먼저 나타났다면 실제로 전략을 지속할 수 있었는지 질문해야 합니다.
- 전략 규칙을 결과 확인 전에 문장으로 고정했는가
- CAGR과 함께 MDD·연도별 손실·거래횟수를 봤는가
- 결과를 종목 추천이나 미래수익 예측으로 표현하지 않았는가
그 시점에 알 수 있었던 정보만 사용합니다
결산일의 재무제표가 그날 바로 공개된 것은 아닙니다. 현재 알고 있는 연간 실적을 과거 결산일에 사용하면 미래정보 참조가 생겨 성과가 과대평가될 수 있습니다. DART에서 확인되는 실제 공시일을 기준으로 하고, 공개된 뒤 다음 거래일부터 신호를 사용할 수 있도록 데이터의 사용 가능일을 분리해야 합니다. 정정공시도 원래 알 수 있었던 값처럼 소급하지 않습니다.
현재 상장된 종목만 모아 과거를 시험하면 상장폐지되거나 합병된 실패 사례가 빠지는 생존자 편향이 생깁니다. 당시 투자 가능했던 전체 종목을 포함하고, 상장·상장폐지 날짜와 거래정지를 반영해야 합니다. 이를 확보하지 못했다면 결과 옆에 ‘현재 생존 종목 데이터만 사용’이라고 명시하고 성과의 신뢰도를 낮게 평가해야 합니다.
표로 보기
| 항목 | 10년 누적 비용 |
|---|---|
| 연 1회 회전 | 6%p |
| 연 4회 회전 | 24%p |
| 연 12회 회전 | 72%p |
가격 데이터와 거래 가정을 현실에 맞춥니다
액면분할과 배당을 반영하는 수정주가의 정의는 데이터 제공처마다 다를 수 있습니다. 배당 재투자가 포함됐는지, 상장폐지 직전 가격과 거래정지일이 있는지 출처 설명을 확인하세요. 재무 신호를 만든 날의 종가로 즉시 매수하면 실제 공개 시간보다 앞설 수 있으므로 이 도구는 신호 다음 거래일 가격을 사용하도록 제한합니다.
수수료, 거래세, 매수·매도 호가 차이와 시장충격을 0으로 두면 회전율이 높은 전략일수록 현실보다 유리해집니다. 작은 종목을 큰 금액으로 종가에 모두 거래할 수 있다고 가정하는 것도 낙관적입니다. 비용률을 높이거나 체결가격을 불리하게 바꾸는 스트레스 테스트를 하고, 결과가 조금만 바뀌어도 사라지는 전략은 실제 적용 전에 보류해야 합니다.
과최적화는 새 데이터와 민감도로 점검합니다
수십 개 기준값을 바꿔 가장 좋은 조합만 고르면 과거의 우연을 규칙으로 착각할 수 있습니다. 자료 기간을 규칙 개발 구간과 확인 구간으로 나누고, 확인 구간은 마지막까지 보지 않는 방식이 도움이 됩니다. PER 10 이하에서만 좋은 결과가 난다면 8·12처럼 가까운 값에서도 방향이 유지되는지 확인하고, 특정 한두 해를 빼면 성과가 사라지는지도 봐야 합니다.
설정 파일, 데이터 출처·다운로드일, 제외 종목과 실행 결과를 함께 저장해야 나중에 같은 실험을 재현할 수 있습니다. SEC의 투자자문 마케팅 규정도 가상 성과에는 관련성과 기초 정보, 가정·위험·한계를 이해할 수 있는 설명이 중요하다는 취지의 요건을 둡니다. 개인 연구에서도 같은 원칙으로 실제 성과와 백테스트 성과를 섞지 말고, 작은 금액의 전향적 기록으로 다시 검증하세요.
숫자로 다시 보는 가상 예시
아래 인물과 상황은 설명을 위해 만든 가상 사례입니다. 운영자나 실제 이용자의 경험·성과가 아니며, 계산값은 반올림과 납입 시점에 따라 달라질 수 있습니다.
가상 예시 1 · 거래비용이 성과를 줄이는 경우
가상의 I전략이 한 해 동안 매수·매도 합계 3억원의 거래금액을 만들었고, 수수료·세금·슬리피지를 합친 가정 비용률을 0.3%로 둡니다.
계산: 3억원 × 0.3% = 연간 가상 거래비용 90만원
해석: 비용을 0원으로 둔 결과보다 종료자산이 적어집니다. 실제 비용률과 체결 가능성은 계좌·시장·종목 유동성에 맞춰 더 보수적으로 시험해야 합니다.
가상 예시 2 · MDD와 회복률
가상의 J전략 자산이 고점 1억원에서 저점 7,000만원으로 내려갔다고 가정합니다.
계산: MDD −30%, 7,000만원이 1억원으로 회복하려면 약 42.9% 상승 필요
해석: 30% 하락 뒤 30% 상승으로 원금이 회복되지는 않습니다. CAGR이 높아도 이 손실 구간을 실제로 버틸 수 있었는지 별도로 판단해야 합니다.
좋은 백테스트는 기준이 맞았음을 보여주는 것이 아니라 어디서 깨지는지를 찾아내는 것입니다.
이 글이 다루지 않는 것
데이터 제공처마다 수정주가와 공시일 정의가 달라 같은 기준도 다른 결과를 낼 수 있습니다.
계산 결과는 입력한 가정에 따른 시뮬레이션이며 개인별 자문이 아닙니다. 전체 범위는 금융정보 면책에서 확인하실 수 있습니다.
검토한 공식·공공 출처
최근 내용 검토일은 입니다. 링크된 자료의 개정일과 적용 대상을 실제 결정 시점에 다시 확인하세요.