핵심 요약
대부분의 백테스트는 훈련되지 않은 눈에는 보이지 않는 편향들 때문에 지나치게 낙관적입니다. 생존편향, 선행편향, 데이터 스누핑, 그리고 실행 비용에 대한 비현실적 가정이 합쳐져 종이 위에서는 훌륭해 보이지만 실전 거래에서는 실패하는 전략을 만들어냅니다. 이러한 함정들을 이해하고 디플레이티드 샤프 비율 및 워크포워드 분석 같은 엄밀한 기법을 적용하면, 진정한 알파와 통계적 환상을 분리할 수 있습니다.
백테스트의 역설
백테스팅은 퀀트 전략 개발의 초석입니다. 모든 시스템 트레이더는 아이디어를 과거 데이터에 대해 테스트하는 것에서 시작합니다. 논리는 간단합니다: 과거에 작동한 전략은 시장 구조가 근본적으로 변하지 않았다면 미래에도 합리적인 확률로 작동할 것입니다.
문제는 백테스팅을 잘못하기가 매우 쉽다는 것입니다. Harvey, Liu, Zhu의 2016년 Review of Financial Studies 논문은 발표된 팩터 발견들의 전체 지형을 조사하고, 대다수가 거짓 양성일 가능성이 높다고 결론지었습니다. 저자들은 학계 문헌 전반에 걸쳐 테스트된 팩터의 절대적 숫자를 고려하면, 기존의 통계적 기준(t-통계량 2.0 이상)이 너무 관대하다고 주장했습니다. 이들은 기준을 3.0 이상으로 높일 것을 제안했으며, 이 기준은 발표된 이상현상의 대부분을 제거합니다.
이는 냉정한 발견입니다. 최고 저널에 발표하는 전문 학자들이 대부분 허위 결과를 만들어낸다면, 통제가 적은 개인 및 기관 백테스트는 거의 확실히 더 나쁩니다.
생존편향
생존편향은 아마도 가장 잘 알려진 백테스팅 오류이지만, 여전히 전략 개발을 괴롭히고 있습니다. 이는 백테스트가 표본 기간 종료까지 살아남은 증권만 포함하는 데이터셋을 사용하고, 상장폐지되었거나 파산했거나 인수된 종목을 제외할 때 발생합니다.
그 영향은 체계적이고 방향적입니다: 생존편향은 항상 백테스트를 현실보다 좋게 보이게 만듭니다. Elton, Gruber, Blake (1996)는 생존편향이 뮤추얼 펀드 수익률을 연간 약 0.9%포인트 부풀린다고 추정했습니다. 주식 백테스팅에서 그 효과는 연간 1~2%포인트에 달할 수 있는데, 전략이 종종 상장폐지될 가능성이 불균형적으로 높은 소형주나 부실 종목에 포지션을 보유하기 때문입니다.
원칙적으로 해결책은 간단합니다: 적절한 수익률 조정이 포함된 상장폐지 종목을 포함하는 생존편향 없는 데이터베이스를 사용하는 것입니다. CRSP, 상장폐지 수익률이 포함된 Compustat, FactSet이나 Bloomberg 같은 벤더의 시점(point-in-time) 데이터베이스가 이 범위를 제공합니다. 어려운 점은 비용입니다 -- 깨끗한 시점 데이터는 비싸기 때문에 많은 개인 연구자들이 여전히 편향된 데이터셋을 사용합니다.
선행편향
선행편향은 백테스트가 거래 결정 시점에는 사용할 수 없었을 정보를 무심코 사용할 때 발생합니다. 이는 생존편향보다 더 미묘하고 탐지하기 어려운 경우가 많습니다.
일반적인 원인으로는 재무제표 데이터를 실제 공시 날짜 이전에 사용하는 것이 있습니다. 기업의 4분기 실적이 2월에 보고될 수 있지만, 많은 데이터베이스는 해당 데이터를 12월로 할당합니다. 12월 날짜의 데이터를 1월 거래에 사용하는 백테스트는 부정행위입니다 -- 그 정보는 아직 존재하지 않았습니다.
또 다른 빈번한 원인은 지수 구성입니다. 현재 S&P 500 구성 종목에 대해 전략을 백테스트하면, 어떤 주식이 지수에 편입될 만큼 성공했는지를 암묵적으로 알고 있는 것입니다. 올바른 접근법은 시점별 지수 구성을 사용하여, 각 과거 날짜에 실제로 지수에 있던 주식만 거래하는 것입니다.
주가 데이터도 선행편향을 초래할 수 있습니다. 미래의 주식 분할과 배당을 포함하는 수정 종가를 사용하면 신호가 미묘하게 왜곡될 수 있습니다. 해결책은 모든 신호를 비수정 데이터로 계산하고, 수익률 계산에만 조정을 적용하는 것입니다.
데이터 마이닝과 다중 검정 문제
데이터 마이닝 편향 -- 데이터 스누핑 또는 p-해킹이라고도 불리는 -- 은 완전히 피하기가 가장 어렵기 때문에 아마도 가장 위험한 함정입니다. 전략의 변형을 테스트할 때마다 통계적 자유도를 하나씩 소비합니다. 충분한 변형을 테스트하면 순전히 무작위 데이터에서도 인상적으로 보이는 전략을 불가피하게 찾게 됩니다.
White (2000)의 사고 실험을 생각해보세요: 동일한 데이터셋에서 100개의 독립적 전략 변형을 각각 5%의 거짓 양성률로 테스트하면, 순전히 우연에 의해 통계적으로 유의해 보이는 전략을 약 5개 찾을 것으로 예상됩니다. 1,000개의 변형을 테스트하면 약 50개를 찾게 됩니다. 연구자는 그중 최고의 것을 발표하며, 알파를 발견했다고 진심으로 믿습니다.
금융에서 이 문제의 규모는 놀랍습니다. McLean과 Pontiff (2016)는 97개의 발표된 주식시장 이상현상을 연구하고, 발표 후 평균적으로 수익률이 26% 감소했으며, 원래 발견을 복제하거나 확장하려는 학자들의 발표 후 데이터 마이닝을 조정하면 58%까지 감소함을 발견했습니다.
디플레이티드 샤프 비율
Bailey와 Lopez de Prado (2014)는 엄밀한 해결책을 제안했습니다: 디플레이티드 샤프 비율(DSR). DSR은 전략의 관찰된 샤프 비율을 수행된 시행 횟수, 수익률의 왜도와 첨도, 표본 길이에 대해 조정합니다.
직관은 간단합니다. 최종 사양에 도달하기 전에 200개의 전략 변형을 테스트했다면, 최선의 것이 양의 기대수익을 가질 확률은 단독 t-통계량이 시사하는 것보다 훨씬 낮습니다. DSR은 모든 시행을 고려한 후 관찰된 샤프 비율이 0을 초과할 확률을 계산합니다.
500번의 시행에서 선택된 샤프 비율 1.5의 전략은 DSR 조정 확률이 50% 미만일 수 있습니다 -- 이는 진정으로 양의 기대수익을 가질 확률이 동전 던지기보다 낮다는 의미입니다. 이것은 강력한 현실 점검입니다.
비현실적 실행 가정
통계적 편향이 없는 백테스트조차도 실행에 대한 비현실적 가정을 통해 오도할 수 있습니다.
거래 비용. 많은 백테스트가 제로 또는 최소한의 거래 비용을 가정합니다. 실제로 비용에는 수수료, 매수-매도 스프레드, 시장 충격, 슬리피지가 포함됩니다. 고빈도 전략의 경우 이러한 비용이 수익을 지배합니다. 월간 리밸런싱 포트폴리오에서도 현실적인 비용 가정은 샤프 비율을 0.2~0.4 줄일 수 있습니다.
시장 충격. 백테스트는 암묵적으로 거래가 가격을 움직이지 않는다고 가정합니다. 이는 소규모 포트폴리오에서는 대략 맞지만, 규모가 커지면 무너집니다. 100만 달러로 작동하는 전략이 1억 달러에서는 수익성이 없을 수 있는데, 매수 압력만으로 가격이 불리하게 이동하기 때문입니다. Almgren과 Chriss (2001)가 시장 충격 모델링의 기초 프레임워크를 제공했습니다.
유동성. 백테스트는 일반적으로 과거 가격에서 어떤 규모든 거래할 수 있다고 가정합니다. 현실에서 비유동 종목은 넓은 스프레드와 얕은 호가창을 가질 수 있습니다. 마이크로캡에 집중된 전략은 놀라운 백테스트 수익률을 보여줄 수 있지만 실제로는 거래 불가능할 수 있습니다.
공매도 제약. 많은 전략이 공매도 포지션을 필요로 하지만, 차입 비용, 로케이트 요구사항, 공매도 규제는 시장과 시기에 따라 극적으로 다릅니다. 한국과 인도 주식시장은 특히 엄격한 공매도 규정을 가지고 있습니다.
표본외 검증
과적합에 대한 가장 기본적인 방어책은 표본외(OOS) 검정입니다. 원리는 간단합니다: 데이터의 한 부분으로 전략을 개발하고, 전혀 살펴보지 않은 별도의 부분에서 검증하는 것입니다.
일반적인 분할은 60/40 또는 70/30이며, 앞 기간을 개발에, 뒷 기간을 검증에 사용합니다. 전략은 어떤 파라미터 수정 없이도 OOS 기간에서 좋은 성과를 보여야 합니다.
그러나 OOS 테스팅에도 한계가 있습니다. OOS 결과를 본 후 반복적으로 전략을 수정하면, OOS 기간이 사실상 표본내가 됩니다. 이를 적응적 데이터 마이닝이라 하며, 전체 작업을 무효화합니다. 엄격한 규율이 필요합니다: OOS 데이터를 보기 전에 전략을 완전히 정의하고, OOS 실패를 전략이 작동하지 않는다는 진정한 신호로 받아들여야 합니다.
워크포워드 분석
워크포워드 분석은 단일 OOS 테스트의 한계를 해결하는 더 정교한 접근법입니다. 그 과정은 다음과 같습니다:
- 초기 표본내 기간을 정의합니다 (예: 5년의 데이터).
- 이 기간에서 전략을 최적화합니다.
- 최적화된 전략을 다음 표본외 기간 (예: 1년)에서 테스트합니다.
- 기간을 앞으로 이동시키고 반복합니다.
결과는 각각 이전 데이터에서만 추정된 파라미터로 생성된 일련의 진정한 표본외 수익률입니다. 이 OOS 기간들을 연결하면 현실적인 성과 추정치가 만들어집니다.
워크포워드 분석은 또한 전략의 최적 파라미터가 시간에 따라 얼마나 안정적인지 보여줍니다. 최적 룩백 기간이 연속 창에서 3개월에서 12개월, 다시 1개월로 뛰면, 전략이 진정한 신호가 아닌 잡음에 적합하고 있을 가능성이 높습니다.
단일 OOS 분할에 비한 핵심 장점은 워크포워드 분석이 전체 데이터셋을 최적화와 검증 모두에 사용하면서도, 평가를 오염시키지 않는다는 것입니다. 이는 과거 데이터가 제공할 수 있는 라이브 거래의 가장 근접한 근사입니다.
정직한 백테스트 구축: 체크리스트
신뢰할 수 있는 백테스트를 구축하려면 체계적인 규율이 필요합니다. 다음 체크리스트는 수십 년의 학술 및 실무 연구에서 얻은 교훈을 정리한 것입니다.
데이터 무결성. 적절한 상장폐지 조정이 포함된 생존편향 없는 데이터베이스를 사용하세요. 모든 펀더멘탈 데이터가 실제 공시 날짜를 반영하는 시점 데이터인지 확인하세요. 지수 구성이 현재가 아닌 과거 시점인지 확인하세요.
신호 구성. 거래 결정 시점에 사용 가능한 정보만 사용하여 모든 신호를 계산하세요. 신호 생성과 거래 실행 사이에 현실적인 시차를 적용하세요 -- 최소 1일, 펀더멘탈 데이터를 사용하는 전략에는 더 길게.
실행 모델링. 과거 매수-매도 스프레드를 기반으로 현실적인 거래 비용을 포함하세요. 일평균 거래량 대비 거래 규모의 함수로 시장 충격을 모델링하세요. 공매도 포지션에 차입 비용을 적용하세요. 비유동 종목에 대해 부분 체결을 가정하세요.
통계적 엄밀성. 테스트한 전략 변형의 수를 보고하세요. 디플레이티드 샤프 비율을 계산하거나 본페로니 보정을 적용하세요. 단일 전략에 3.0 이상, 대규모 탐색에는 더 높은 t-통계량을 요구하세요. 단일 표본내/표본외 분할에 의존하지 말고 워크포워드 분석을 수행하세요.
견고성 검토. 여러 하위 기간, 지역, 관련 자산군에 걸쳐 테스트하세요. 성과가 소수의 이상치 거래에 의존하지 않는지 확인하세요. 수익률이 알려진 위험 프리미아로 설명되지 않는지 팩터 익스포저를 검토하세요.
겸손. 잘 구성된 백테스트도 라이브 성과를 과대평가한다는 것을 받아들이세요. 실전 구현의 기본 기대치로 백테스트 수익률에 30~50%의 할인을 적용하세요. 이 조정 후에도 전략이 여전히 매력적이라면, 추구할 가치가 있을 수 있습니다.
한계
어떤 백테스팅 방법론도 라이브 거래 조건을 완전히 복제할 수 없습니다. 체제 변화, 구조적 단절, 과밀 효과는 과거 데이터로부터 본질적으로 예측 불가능합니다. 워크포워드 분석은 과적합 위험을 줄이지만 제거하지는 못합니다. 디플레이티드 샤프 비율은 시행 횟수의 정직한 보고에 의존하며, 이는 강제하기 어려운 규율을 요구합니다. 정직한 백테스트조차도 기저의 시장 역학이 변하면 실패할 수 있습니다. 백테스트와 라이브 성과 사이의 격차는 퀀트 금융의 핵심 도전 과제 중 하나로 남아있습니다.
참고문헌
- Harvey, C. R., Liu, Y., & Zhu, H. (2016). "...and the Cross-Section of Expected Returns." The Review of Financial Studies, 29(1), 5-68. https://doi.org/10.1093/rfs/hhv059
- McLean, R. D., & Pontiff, J. (2016). "Does Academic Research Destroy Stock Return Predictability?" The Journal of Finance, 71(1), 5-32. https://doi.org/10.1111/jofi.12365