3. UNIST Financial Engineering Lab. 2
Backtest (백테스팅)
알고리즘으로 투자 전략을 만들어 과거 데이터에 검증하는 과정
자산배분, 포트폴리오, 마켓타이밍, 보유 기간, 손절 기준 등 … 많은 요소가 있음
Backtest Overfitting
백테스팅에서 과적합은 기계학습의 overfitting 개념과 같습니다. 과거 데이터에서 수익률이 좋다
고 미래에 좋다는 보장이 없다는 것 입니다. 또한 금융시장은 market의 regime이 변화하기 때문에
근거가 탄탄해 보이는 전략도 시간이 지남에 따라 생명력을 잃을 가능성이 높습니다.
"2015년 - 2021년 데이터에 백테스팅해보니, PER이 13.75이상 17.23이하이고, 시가총액이
517억 이상 623억 이하면서 PBR은 1.172인 주식을 사면 연평균 70%의 수익”
4. UNIST Financial Engineering Lab. 3
전략의 예시 단일 종목
* p% 떨어지면 전량 매수, q% 오르면 전량 매도
P = {1,2,3,4,5}
Q = {1,2,3,4,5}
-> 25가지 조합을 백테스팅하여 optimal parameter 조합을 찾을 수 있음
* 이동평균선 교차 전략
(단기, 장기) = (5, 20), (20, 60), … 등
여러 조합을 테스트 하여
optimal 조합을 찾을 수 있음
6. UNIST Financial Engineering Lab. 5
과적합 예시
"2015년 - 2021년 데이터에 백테스팅해보니, PER
이 13.75이상 17.23이하이고, 시가총액이 517억
이상 623억 이하면서 PBR은 1.172인 주식을 사면
연평균 70%의 수익”
백테스팅 성과가 미래의 투자 수익률을
담보하지 않는다
7. UNIST Financial Engineering Lab. 6
감동실화
Security Selection
KRX Universe
거래량 터지지 않고
모멘텀 지속
재무지표 등 반영하는 로직
Market Timing
분할매수, 분할매도
보수적 접근
손절 rule 생성
Backtesting
다양한 항목 robustness check
8. UNIST Financial Engineering Lab. 7
감동실화
Security Selection
KRX Universe
거래량 터지지 않고
모멘텀 지속
재무지표 등 반영하는 로직
Market Timing
분할매수, 분할매도
보수적 접근
손절 rule 생성
Backtesting
다양한 항목 robustness check
대성홀딩스
선광
동일금속
기대수익 초과 달성
분할매도 하여
4/18 전체매도 완료
9. UNIST Financial Engineering Lab. 8
감동실화
Security Selection
KRX Universe
거래량 터지지 않고
모멘텀 지속
재무지표 등 반영하는 로직
Market Timing
분할매수, 분할매도
보수적 접근
손절 rule 생성
Backtesting
다양한 항목 robustness check
대성홀딩스
선광
동일금속
기대수익 초과 달성
분할매도 하여
4/18 전체매도 완료
10. UNIST Financial Engineering Lab. 9
Investment problem에서 과적합의 연구가 어려운 이유
1. 기존 전략들이 체계적인 시그널을 생성하지 못함
E.g. 이동평균 매수 시그널 -> 언제 까지 hold 해야 하는지 알 수 없음
2. 전략이 다양한 요소로 구성되어 있는 경우 각 부분의 영향력을
명확히 설명하기 어려움
3. 현실에서 불가능한 assumption 들을 포함 -> regime change 등에 대응하지 못함
4. Do not control the number of trials attempted. (p-hacking 개념)
11. UNIST Financial Engineering Lab. 10
• 생각보다 적은 수의 trial로 IS(in sample)에서 성과가 좋은 전략을 뽑을 수 있다.
• 최소 백테스트 길이를 정의함 (MinBTL)
• 백테스트 성과, 신뢰성 평가를위한 방법론 제공
12. UNIST Financial Engineering Lab. 11
전략을 바꾸며 (전체기간) SR을 계산할 때
나오는 SR이 Z에서 i.i.d.
랜덤하게 뽑힌다는 가정
-> 아무 의미 없는 전략임
(전혀 robust 하지 않음)
여러 번의 trial 중 가장 잘나온 SR의 기댓값
13. UNIST Financial Engineering Lab. 12
무의미한 전략이지만
10번만 시도해도
Max SR 의 기댓값은 1.57
하지만 OOS에서 SR의 기댓값은 0이 된다
Generally speaking, a Sharpe ratio
between 1 and 2 is considered good.
A ratio between 2 and 3 is very good, and
any result higher than 3 is excellent.
15. UNIST Financial Engineering Lab. 14
: 가장 잘 나온 IS_SR 여기서는 1로 가정
-> N에 따라 MinBTL 계산
E.g. 5년간의 IS 데이터 보유 -> N = 45
45회 이상 시행하여 IS_SR이 1이 넘었다면
높은 확률로 OOS에서 SR이 0일 것임
Trial Overfitting을 판단하는 지표로 사용될 수 있음
24. UNIST Financial Engineering Lab. 23
리딩방에서 신이 되는 방법
-> 모집 인원을 2^n 그룹으로 나눈다
-> 그룹의 절반에는 오른다 절반에는 내린다고 알려준다
-> 틀린 절반을 버린다
-> n번 반복하면 마지막 남은 그룹에서는 n번의 주가 움직임을 맞춘 신이 되어 있다
이런 행위는 분명히 사기이기에 백테스팅에서도 n에 대한 통제가 필요함
앞에서 살펴보았듯 무쓸모한 전략도 조금의 시행횟수만 주어진다면 IS에서 높은 SR을 뽑을 수 있음
특히 어떤 경우에는 IS에서 높은 SR이 OOS의 SR에 악영향을 충분히 줄 수 도 있음
25. UNIST Financial Engineering Lab. 24
백테스트 과적합은 피하기 어렵다는 것을 보여줌
(생각보다 작은 시행 횟수로 IS SR을 높일 수 있음)
끈기(?)가 있다면 IS에서 어느정도 원하는 샤프 비율을 맞출 수 있다.
게시된 대부분의 백테스트가 시도된 시도 수를 보고하지 않는다는
점을 감안할 때 많은 테스트가 과적합되었을 수 있음
전략 수익 프로세스에 메모리가 없으면 OOS의 SR은 거의 0
이 되지만 프로세스에 메모리가 있으면 IS에서 SR을 높이는
것이 부정적 영향을 줄 수 있음