주식·퀀트 학습 아카이브 8장

백테스트 기초 보고서


1. 학습 목적

이번 장의 목적은 퀀트 전략을 과거 데이터로 검증하는 방법인 백테스트의 기본 구조를 이해하는 것이다.

7장에서는 퀀트 전략의 구성 요소를 학습했다.

유니버스
팩터
필터
포트폴리오
리밸런싱
백테스트
벤치마크
거래비용
슬리피지
편향

8장에서는 이 중 가장 중요한 백테스트를 따로 깊게 다룬다.

백테스트는 단순히 과거 수익률을 확인하는 작업이 아니다. 전략이 실제로 믿을 만한지, 위험은 감당 가능한지, 실전에서 실행 가능한지 점검하는 과정이다.

이번 장의 핵심 질문은 다음과 같다.

내 전략이 과거에도 반복적으로 작동했는가?
수익률뿐 아니라 위험도 감당 가능한가?
거래비용을 반영해도 성과가 남는가?
시장지수보다 나은 성과를 냈는가?
백테스트 결과가 편향으로 왜곡된 것은 아닌가?
실제로 실행 가능한 전략인가?

2. 백테스트란 무엇인가

백테스트는 내가 만든 투자 전략을 과거 데이터에 적용해보는 작업이다.

쉽게 말하면 다음 질문에 답하는 과정이다.

이 규칙대로 과거에 투자했다면 결과가 어땠을까?

예를 들어 다음과 같은 전략이 있다고 가정한다.

전략명: 저PER 전략

유니버스: 코스피 + 코스닥 전체
필터: PER > 0, 영업이익 흑자, 거래대금 50억 이상
팩터: PER 낮은 순
종목 수: 30개
비중: 동일비중
리밸런싱: 월 1회

백테스트는 이 전략을 과거 데이터에 적용해 다음을 확인한다.

2015년 1월부터 2025년 12월까지
매월 말 기준으로 조건에 맞는 종목을 고르고
다음 달 동안 보유했다면
수익률, MDD, CAGR이 어땠을까?

3. 백테스트의 목적

백테스트의 목적은 미래 수익을 보장하는 것이 아니다.

백테스트의 진짜 목적은 전략을 검증하고 의심하는 것이다.

핵심 목적은 다음과 같다.

내 아이디어가 과거에도 반복적으로 작동했는가?
위험이 감당 가능한 수준이었는가?
특정 기간에만 우연히 좋았던 것은 아닌가?
거래비용을 빼고도 성과가 남는가?
시장지수보다 나았는가?
실전에서 실행 가능한가?

즉, 백테스트는 미래를 맞히는 도구가 아니라 전략을 의심하고 검증하는 도구다.


4. 백테스트에 필요한 기본 요소

백테스트를 하려면 최소한 아래 요소가 필요하다.

1. 투자 대상 범위
2. 종목 선택 기준
3. 매수 시점
4. 매도 시점
5. 보유 기간
6. 리밸런싱 주기
7. 종목별 비중
8. 거래비용
9. 벤치마크
10. 성과지표

각 요소가 명확하지 않으면 백테스트 결과도 신뢰하기 어렵다.


4.1 투자 대상 범위

투자 대상 범위는 유니버스다.

예시:

코스피 전체
코스닥 전체
코스피200
코스피 + 코스닥 전체
시가총액 상위 500개
거래대금 상위 300개

유니버스가 달라지면 같은 전략이라도 결과가 달라진다.

예를 들어 저PER 전략을 코스피 대형주에 적용한 결과와 코스닥 소형주에 적용한 결과는 다를 수 있다.


4.2 종목 선택 기준

종목 선택 기준은 팩터와 필터다.

예시:

팩터: PER 낮은 순

필터:
- PER > 0
- 영업이익 흑자
- 부채비율 200% 이하
- 최근 20일 평균 거래대금 50억 이상

이 기준이 명확해야 백테스트가 가능하다.

나쁜 예:

괜찮아 보이는 종목을 산다.
차트가 좋아 보이면 산다.
뉴스가 좋으면 산다.

좋은 예:

PER이 0보다 크고,
최근 결산 영업이익이 흑자이며,
최근 20일 평균 거래대금이 50억 원 이상인 종목 중
PER이 낮은 상위 30개를 산다.

퀀트는 모호한 판단을 숫자로 바꾸는 작업이다.


4.3 매수 시점

백테스트에서는 언제 매수할지 정해야 한다.

예시:

매월 첫 거래일 시가에 매수
매월 첫 거래일 종가에 매수
매월 마지막 거래일 종가에 매수
리밸런싱 다음 날 시가에 매수

이 조건을 정하지 않으면 결과가 애매해진다.

실전에서는 보통 다음 구조가 더 현실적이다.

월말에 데이터를 확인하고
다음 거래일에 매수한다.

월말 데이터가 확정되기 전에 당일 종가로 매수했다고 가정하면 현실성이 떨어질 수 있다.


4.4 매도 시점

매도 기준도 정해야 한다.

예시:

다음 리밸런싱 때 제외되면 매도
손절 -10% 도달 시 매도
종가가 60일선 아래로 내려가면 매도
시장 지수가 200일선 아래면 전량 현금화

초보자 단계에서는 복잡한 손절 조건보다 단순한 리밸런싱 기준부터 시작하는 것이 좋다.

월 1회 리밸런싱 시점에
기준에서 벗어난 종목은 매도하고
새롭게 기준에 들어온 종목은 매수한다.

4.5 보유 기간

보유 기간은 종목을 얼마나 오래 들고 있을지다.

예시:

1주
1개월
3개월
6개월
1년

팩터마다 적절한 보유 기간이 다를 수 있다.

모멘텀 전략 = 비교적 짧은 주기 사용 가능
가치 전략 = 너무 짧게 보면 효과가 약할 수 있음
퀄리티 전략 = 중장기 보유에 적합할 수 있음

초보자는 월 1회 또는 분기 1회 리밸런싱으로 시작하는 것이 좋다.


4.6 리밸런싱 주기

리밸런싱은 정해진 주기마다 포트폴리오를 다시 구성하는 것이다.

주기 장점 단점
주간 빠른 대응 거래비용 큼
월간 균형적 일반적인 기본값
분기 비용 적음 대응 느림
반기 장기 전략에 적합 변화 반영 느림
연간 거래비용 매우 적음 전략 반응 느림

초보자는 월간 리밸런싱을 기본으로 이해하면 된다.


4.7 종목별 비중

몇 종목을 어느 비중으로 살지도 정해야 한다.

대표 방식은 두 가지다.

동일비중
시가총액비중

초보자 백테스트에서는 동일비중이 가장 이해하기 쉽다.

예시:

30개 종목 동일비중
= 각 종목 약 3.33%씩 투자

4.8 거래비용

실제 매매에는 비용이 든다.

대표적인 비용은 다음과 같다.

증권사 수수료
거래세
슬리피지
스프레드

백테스트에서 거래비용을 빼지 않으면 결과가 실제보다 과장된다.

월 1회 리밸런싱은 비교적 현실적일 수 있지만, 주 1회 또는 매일 매매하는 전략은 거래비용 때문에 실제 성과가 크게 줄어들 수 있다.


4.9 벤치마크

벤치마크는 전략과 비교할 기준이다.

예시:

코스피
코스닥
코스피200
S&P500
나스닥100

전략이 +20% 수익을 냈더라도 같은 기간 코스피가 +35%였다면, 전략은 시장보다 못한 것이다.

반대로 전략이 -5% 손실인데 코스피가 -25%였다면, 전략은 방어를 잘한 것이다.


4.10 성과지표

백테스트 결과에서 봐야 할 지표다.

총수익률
CAGR
MDD
변동성
샤프비율
승률
손익비
거래 횟수
벤치마크 대비 초과수익

가장 먼저 봐야 할 것은 다음 세 가지다.

CAGR
MDD
벤치마크 대비 성과

5. 좋은 백테스트와 나쁜 백테스트

5.1 좋은 백테스트

좋은 백테스트는 현실적인 조건을 반영한다.

당시 알 수 있었던 데이터만 사용한다.
상장폐지 종목을 고려한다.
거래비용을 반영한다.
슬리피지를 고려한다.
거래대금 부족 종목을 제외한다.
벤치마크와 비교한다.
CAGR과 MDD를 함께 본다.
전략 조건이 너무 복잡하지 않다.

좋은 백테스트는 좋은 결과를 보여주는 것이 아니라, 전략이 현실적으로 실행 가능한지 확인하게 해준다.


5.2 나쁜 백테스트

나쁜 백테스트는 과거 수익률만 좋게 보이도록 왜곡될 수 있다.

현재 살아남은 종목만 사용한다.
미래 실적 데이터를 사용한다.
거래비용을 빼지 않는다.
거래량이 거의 없는 종목도 마음대로 매수했다고 가정한다.
조건을 계속 바꿔가며 과거 성과가 제일 좋은 조합만 고른다.
벤치마크와 비교하지 않는다.
MDD를 보지 않고 수익률만 본다.

이런 백테스트는 실전에서 무너질 가능성이 크다.


6. 백테스트에서 가장 위험한 오류 3가지

가장 중요한 오류는 세 가지다.

생존자 편향
룩어헤드 편향
과최적화

이 세 가지를 이해하지 못하면 백테스트 결과를 쉽게 과신하게 된다.


6.1 생존자 편향

생존자 편향은 현재 살아남은 종목만으로 과거를 분석하는 오류다.

예를 들어 지금 상장되어 있는 기업만 가지고 2015년부터 백테스트를 한다고 가정한다.

문제는 2015년 이후 상장폐지된 종목이 빠진다는 점이다.

망한 기업은 빠지고
살아남은 기업만 남는다.

그러면 과거 성과가 실제보다 좋아 보인다.

올바른 접근은 다음과 같다.

해당 시점에 실제로 존재했던 종목군을 기준으로 해야 한다.
상장폐지 종목도 고려해야 한다.

6.2 룩어헤드 편향

룩어헤드 편향은 그 시점에는 알 수 없었던 미래 정보를 사용하는 오류다.

예시:

2020년 1월에 투자한다고 가정
그런데 2020년 연간 실적을 기준으로 종목 선정

이건 불가능하다. 2020년 1월에는 2020년 연간 실적을 알 수 없기 때문이다.

올바른 접근은 다음과 같다.

2020년 1월 투자라면
2019년까지 발표된 실적만 사용해야 한다.

실적 발표일을 고려하지 않으면 백테스트 결과가 크게 왜곡된다.


6.3 과최적화

과최적화는 과거 데이터에만 너무 잘 맞는 전략을 만드는 것이다.

예시:

PER 7 이하
PBR 0.8 이하
ROE 13.5% 이상
부채비율 87% 이하
최근 73일 수익률 상위 18%
매월 셋째 주 화요일 매수

이런 조건은 과거에는 잘 맞을 수 있지만, 미래에는 통하지 않을 가능성이 높다.

좋은 전략은 보통 단순하고 설명 가능해야 한다.

PER이 낮은 종목은 이익 대비 싸다.
ROE가 높은 종목은 자본 효율성이 좋다.
거래대금이 충분해야 실제 매매가 가능하다.

이처럼 논리가 분명해야 한다.


7. 백테스트 절차

초보자는 백테스트를 아래 순서로 이해하면 된다.

1. 전략 아이디어를 정한다.
2. 유니버스를 정한다.
3. 팩터와 필터를 정한다.
4. 리밸런싱 주기를 정한다.
5. 종목 수와 비중을 정한다.
6. 과거 데이터를 가져온다.
7. 날짜별로 종목을 선정한다.
8. 보유 기간 수익률을 계산한다.
9. 거래비용을 차감한다.
10. 성과지표를 계산한다.
11. 벤치마크와 비교한다.
12. 편향과 오류를 점검한다.

7.1 예시 절차: 저PER + 거래대금 필터

전략: 저PER + 거래대금 필터

1. 코스피+코스닥 전체를 대상으로 한다.
2. PER > 0인 기업만 남긴다.
3. 최근 20일 평균 거래대금 50억 이상만 남긴다.
4. PER이 낮은 순으로 30개를 고른다.
5. 각 종목을 동일비중으로 산다.
6. 매월 말 다시 선정한다.
7. 10년간 반복한다.
8. CAGR과 MDD를 계산한다.
9. 코스피와 비교한다.

8. 백테스트 결과 해석법

백테스트 결과가 다음과 같다고 가정한다.

전략 A
총수익률: +320%
CAGR: 15.4%
MDD: -42%
샤프비율: 0.8
벤치마크 CAGR: 8.2%
벤치마크 MDD: -35%

해석:

시장보다 수익률은 좋다.
하지만 MDD가 -42%로 매우 크다.
실제로 유지하기 어려울 수 있다.

다른 전략을 보자.

전략 B
총수익률: +210%
CAGR: 11.9%
MDD: -18%
샤프비율: 1.2
벤치마크 CAGR: 8.2%
벤치마크 MDD: -35%

해석:

수익률은 A보다 낮다.
하지만 MDD가 훨씬 작다.
벤치마크보다 수익률도 좋고 위험도 낮다.
실전 운용 가능성이 더 높을 수 있다.

초보자는 수익률만 보고 전략 A를 고르기 쉽다. 하지만 실제로는 전략 B가 더 좋은 전략일 수 있다.


9. 거래비용 반영 전후 비교

백테스트에서는 반드시 거래비용을 반영해야 한다.

예시:

거래비용 반영 전 CAGR: 18%
거래비용 반영 후 CAGR: 11%

이런 경우 거래비용이 전략 수익을 크게 깎아먹고 있다는 뜻이다.

특히 다음 전략은 조심해야 한다.

매일 리밸런싱
주간 리밸런싱
회전율 높은 전략

이런 전략은 백테스트상 좋아 보여도 실제로는 비용 때문에 성과가 낮아질 수 있다.


10. 백테스트에서 거래대금 필터가 중요한 이유

거래대금이 낮은 종목은 실제로 원하는 가격에 사고팔기 어렵다.

예를 들어 백테스트에서 어떤 종목이 좋아 보인다고 해도 다음 상황이면 문제가 된다.

하루 거래대금 5억 원
내 매수금액 1억 원

이 경우 내가 사는 것만으로 가격이 밀릴 수 있다.

그래서 보통 다음과 같은 필터를 둔다.

최근 20일 평균 거래대금 30억 이상
최근 20일 평균 거래대금 50억 이상
최근 20일 평균 거래대금 100억 이상

거래대금 필터는 수익률을 높이기 위한 조건이라기보다 실제 매매 가능성을 확보하기 위한 조건이다.


11. 백테스트와 실전의 차이

백테스트는 깔끔하다.

정해진 가격에 매수
정해진 가격에 매도
감정 없음
실수 없음
모든 종목을 같은 조건으로 매매

하지만 실전은 다르다.

체결이 안 될 수 있음
호가가 밀릴 수 있음
뉴스로 급락할 수 있음
심리적으로 손절이 어려움
리밸런싱을 놓칠 수 있음
세금과 비용이 발생함
전략이 몇 달간 부진할 수 있음

따라서 백테스트 결과를 100% 믿으면 안 된다.

백테스트는 전략의 가능성을 확인하는 1차 검증 도구다.


12. 초보자용 백테스트 체크리스트

백테스트 결과를 볼 때 아래 질문을 체크한다.

1. 유니버스가 명확한가?
2. 종목 선정 기준이 명확한가?
3. 해당 시점에 알 수 있었던 데이터만 사용했는가?
4. 상장폐지 종목 문제가 반영되었는가?
5. 거래비용을 반영했는가?
6. 슬리피지를 고려했는가?
7. 거래대금이 충분한 종목만 매매했는가?
8. 리밸런싱 주기가 현실적인가?
9. CAGR은 얼마인가?
10. MDD는 감당 가능한가?
11. 벤치마크보다 나은가?
12. 특정 기간에만 잘 된 것은 아닌가?
13. 조건이 너무 복잡하지 않은가?
14. 실전에서도 그대로 실행 가능한가?

이 체크리스트를 통과하지 못하면 전략을 바로 믿으면 안 된다.


13. 백테스트를 퀀트식 언어로 표현하기

감으로 말하면 다음과 같다.

이 전략 괜찮아 보인다.
과거 수익률이 좋다.

퀀트식으로 말하면 다음과 같다.

2015년부터 2025년까지
코스피+코스닥 전체 중
PER > 0, 영업이익 흑자, 거래대금 50억 이상 종목을 대상으로
PER 낮은 순 30개를 월간 동일비중 리밸런싱했을 때
거래비용 0.3% 반영 후
CAGR 13.2%, MDD -22.5%,
코스피 대비 연평균 5%p 초과수익을 냈다.

이렇게 말할 수 있어야 한다.

이것이 감 투자와 퀀트 투자의 차이다.


14. 백테스트 입문자가 가장 먼저 해볼 전략

처음에는 복잡한 전략보다 단순한 구조가 좋다.

전략명: 단순 저PER 전략

유니버스:
코스피 + 코스닥 중 거래대금 충분한 종목

필터:
PER > 0
영업이익 흑자
최근 20일 평균 거래대금 50억 이상

팩터:
PER 낮은 순

종목 수:
30개

비중:
동일비중

리밸런싱:
월 1회

성과지표:
CAGR, MDD, 샤프비율

벤치마크:
코스피 또는 코스피200

이 전략은 완벽해서가 아니라 퀀트 구조를 배우기 좋기 때문에 적합하다.


15. 핵심 용어 요약

개념 의미
백테스트 과거 데이터로 전략을 검증하는 작업
유니버스 투자 후보군
팩터 종목을 고르는 기준
필터 위험하거나 부적합한 종목 제외 조건
리밸런싱 정해진 주기마다 종목을 다시 구성
거래비용 수수료, 세금, 슬리피지 등 비용
벤치마크 전략과 비교할 시장 기준
생존자 편향 살아남은 종목만 보는 오류
룩어헤드 편향 미래 정보를 사용하는 오류
과최적화 과거에만 맞춘 전략
CAGR 연평균 복리수익률
MDD 최대낙폭

16. 반드시 기억해야 할 구조

백테스트는 다음 구조로 정리할 수 있다.

전략 아이디어
→ 유니버스 설정
→ 팩터 설정
→ 필터 설정
→ 종목 수 설정
→ 비중 설정
→ 리밸런싱 설정
→ 과거 데이터 적용
→ 거래비용 반영
→ 성과지표 계산
→ 벤치마크 비교
→ 오류와 편향 점검
→ 실전 가능성 판단

17. 이번 장 핵심 결론

백테스트는 퀀트 투자에서 핵심이다.

하지만 백테스트의 목적은 좋은 결과를 찾는 것이 아니다.

진짜 목적은 다음이다.

내 전략이 과거에도 반복적으로 작동했는지 확인하고,
위험이 감당 가능한지 확인하고,
실전에서 실행 가능한지 점검하는 것

좋은 백테스트는 다음 조건을 만족해야 한다.

규칙이 명확하다.
당시 알 수 있던 데이터만 사용한다.
거래비용을 반영한다.
슬리피지를 고려한다.
벤치마크와 비교한다.
CAGR과 MDD를 함께 본다.
조건이 과도하게 복잡하지 않다.
실전 매매 가능성이 있다.

한 문장으로 정리하면 다음과 같다.

백테스트는 전략의 미래를 보장하는 도구가 아니라,
전략을 실제로 믿고 운용해도 되는지 의심하고 검증하는 도구다.

18. 다음 단계 학습 주제

다음 단계는 첫 퀀트 전략 설계다.

9장에서는 실제로 다음과 같은 전략을 설계한다.

저PER + 퀄리티 필터 + 거래대금 필터 + 월간 리밸런싱 전략

학습할 내용은 다음과 같다.

1. 첫 전략의 목적 설정
2. 유니버스 정하기
3. 팩터 정하기
4. 필터 정하기
5. 종목 수 정하기
6. 리밸런싱 주기 정하기
7. 백테스트 기준 정하기
8. 실전 적용 가능성 점검하기