QuantLab 백테스트 결과를 볼 때의 기준
백테스트 탭은 종목, 기간, 매매 규칙이나 전략 조건을 넣고 과거 데이터에서 해당 규칙이 어떻게 작동했는지 계산합니다. 결과 화면의 누적수익률, 최대 낙폭, 거래 횟수, 벤치마크 대비 성과는 “과거에 이런 규칙을 그대로 적용했다면”이라는 가정의 산출물입니다. 따라서 좋은 결과가 나오면 바로 전략을 채택하기보다, 조건을 조금 바꿔도 결과가 유지되는지 먼저 확인해야 합니다.
과최적화는 어떻게 만들어지나
종목 수, 리밸런싱 주기, 팩터 가중치, 손절선과 투자 기간을 반복해서 바꾸면 수백 개의 전략을 시험할 수 있습니다. 그중 최고 성과를 낸 조합은 실력이 아니라 우연히 특정 과거 구간에 맞았을 가능성이 큽니다. 테스트 횟수가 많아질수록 최고 결과는 좋아지지만 미래 재현성은 오히려 낮아질 수 있습니다.
대표적인 네 가지 왜곡
| 왜곡 | 문제 | 점검 방법 |
|---|---|---|
| 생존편향 | 현재 살아남은 종목만 과거에도 존재한 것처럼 테스트 | 상장폐지·편출 종목 포함 여부 확인 |
| 미래정보 사용 | 당시 발표되지 않은 재무정보를 미리 사용 | 공시 가능 시점 이후에만 팩터 반영 |
| 거래비용 누락 | 회전율이 높은 전략의 성과 과장 | 수수료, 세금, 슬리피지 차감 |
| 기간 선택 편향 | 전략에 유리한 시작·종료일만 선택 | 복수 기간과 상승·하락 구간 비교 |
설계 구간과 검증 구간을 나눕니다
전략 조건을 만든 데이터와 성과를 평가할 데이터를 분리해야 합니다. 앞 구간에서 전략을 설계하고 뒤 구간은 조건을 바꾸지 않은 채 확인합니다. 가능하면 여러 시점에서 이 과정을 굴리는 워크포워드 검증을 사용합니다.
검증 구간 성과가 조금 낮아지는 것은 자연스럽습니다. 반대로 설계 구간과 검증 구간의 차이가 지나치게 크다면 특정 환경에만 맞는 전략일 가능성이 높습니다.
좋은 전략은 주변 조건에서도 버텨야 합니다
편입 종목 수가 20개일 때만 좋고 15개나 25개에서 급격히 나빠지는 전략은 불안정합니다. 리밸런싱 날짜가 하루 달라졌을 때 결과가 무너지거나 특정 종목 한두 개가 성과 대부분을 만들었다면 재현성을 의심해야 합니다.
- 팩터 가중치를 조금씩 바꿔도 방향이 유지되는가
- 거래비용을 두 배로 높여도 전략 논리가 남는가
- 다른 시장과 다른 기간에서도 유사한 경향이 있는가
- 성과가 소수 종목이나 한 해에 집중되지 않는가
- 최대 낙폭을 실제로 감당할 수 있는가
CAGR 하나보다 같이 볼 지표
연평균 수익률은 중요하지만 경로를 보여주지 않습니다. 최대 낙폭, 변동성, 샤프 비율, 거래 횟수, 회전율과 벤치마크 대비 초과성과를 함께 봐야 합니다. 높은 CAGR이 극단적인 낙폭과 높은 거래비용을 동반한다면 실제 투자자가 끝까지 유지하기 어렵습니다.
실행 전 최종 체크
- 전략의 경제적 이유를 한 문장으로 설명합니다.
- 조건을 정한 뒤 검증 구간에서는 변경하지 않습니다.
- 비용과 공시 시차를 보수적으로 반영합니다.
- 주변 파라미터와 복수 기간을 비교합니다.
- 소액 또는 모의 운용으로 실전 괴리를 기록합니다.