2. 과적합 징후 6가지 — 샤프지수부터 체크

과적합 징후 체크 — 내 전략, 이래도 괜찮을까
과적합 징후 체크 — 내 전략, 이래도 괜찮을까

백테스트 결과가 너무 좋아서 오히려 불안해진 적 있으신가요. 지난 글에서 과적합이 무엇인지 살펴봤는데요, 문제는 “이게 과적합인지 아닌지”를 실전에 넣기 전에는 알기 어렵다는 겁니다.

그래서 이번 글에서는 개념 설명은 건너뛰고, 전략을 점검할 때 실제로 확인해볼 수 있는 과적합 징후를 정리해보려고 합니다. 미리 말씀드리면 아래 신호 중 하나에 걸린다고 해서 그 전략이 무조건 나쁘다는 뜻은 아닙니다. 다만 신호가 여러 개 겹칠수록 의심해볼 필요가 있어 보입니다.

왜 미리 알아채야 하나

과적합 징후를 실전 투입 후에 발견하면 이미 손실을 본 뒤인 경우가 많습니다. 백테스트 단계에서 몇 가지만 확인해도 걸러낼 수 있는 문제를, 실제 계좌로 확인하는 셈이니까요.

이런 일은 개인 전략만의 이야기가 아닙니다. 2018년 뱅가드가 내놓은 팩터 기반 ETF들은 2023년 기준으로 보면 여러 개 중 사실상 1개 정도만 전체 시장 지수 대비 초과수익을 냈고, 나머지는 벤치마크를 밑돌았습니다(Vanguard 출시 보도자료 2018-02-15 및 Yahoo Finance·etf.com 후속 보도 기준).

정교하게 설계된 상품조차 출시 이후 성과가 기대에 못 미치는 경우가 있다는 뜻인데요. 개인이 만드는 전략이라고 예외일 이유는 없습니다.

과적합 징후 1 — 숫자로 드러나는 과최적화 신호

샤프지수가 비현실적으로 높다

샤프지수(성과 지표 읽는 법 글에서 다룬 지표)는 위험 대비 수익을 얼마나 효율적으로 냈는지 보여줍니다. 문제는 이 값이 지나치게 높게 나올 때입니다.

업계에서 비교 기준으로 자주 쓰는 수치를 보면 감이 잡힙니다. 5년 평균 기준으로 평균적인 헤지펀드의 샤프지수는 0.53, 상위 50개 헤지펀드는 1.43, S&P500 지수는 0.75 정도입니다(NilssonHedge, 「Top 50 Hedge Fund Survey」, 2024). 이게 무슨 뜻이냐면요, 전문 운용사들이 온갖 자원을 동원해서 낸 성과도 대부분 1.5를 넘기기 어렵다는 겁니다.

물론 예외는 있습니다. 르네상스 테크놀로지의 메달리온 펀드는 1988년부터 2018년까지 연평균 66%(수수료 차감 전)라는 이례적인 성과를 냈고, 샤프지수도 2.0을 넘은 것으로 분석됩니다(Gregory Zuckerman, 『The Man Who Solved the Market』, 2019; Bradford Cornell의 후속 분석).

다만 이런 사례는 극히 드문 예외로 보는 게 맞습니다. 내가 만든 백테스트에서 샤프지수가 3.0을 넘게 나온다면, 기뻐하기보다 먼저 의심해보는 편이 안전할 것 같습니다.

과적합 징후 점검용 샤프지수 비교 기준선: 평균 헤지펀드 0.53, S&P500 0.75, 상위 50개 헤지펀드 1.43
과적합 징후 점검용 샤프지수 비교 기준선: 평균 헤지펀드 0.53, S&P500 0.75, 상위 50개 헤지펀드 1.43

파라미터 수 대비 거래 횟수가 지나치게 적다

지난 글에서 다룬 것처럼 파라미터가 많아질수록 우연히 좋은 조합을 찾을 위험이 커집니다(Bailey·Borwein·López de Prado·Zhu, 「The Probability of Backtest Overfitting」, *Journal of Computational Finance*, 2017).

실무에서는 여기서 한발 더 나아가 “조정 가능한 파라미터 하나당 최소 이만큼의 거래는 있어야 그 파라미터의 효과를 믿을 만하다”는 경험칙을 쓰기도 하는데요. 이건 학술적으로 확정된 기준이 아니라 실무자들 사이에 통용되는 감각에 가깝습니다.

예를 들어 파라미터 5개짜리 전략인데 백테스트 기간 전체 거래가 30건밖에 안 됐다면, 그 30건 안에서 파라미터를 5번씩 조정한 셈이라 우연이 끼어들 여지가 큽니다. 반대로 거래가 수백 건씩 쌓인 전략이라면 상대적으로 신뢰할 여지가 더 있다고 봅니다.

DSR로 보정하면 성과가 크게 줄어든다

디플레이티드 샤프지수(DSR)는 쉽게 말해 “이 샤프지수, 몇 번이나 시도해서 나온 값이냐”를 반영해 원래 샤프지수를 깎아내는 지표입니다(Bailey & López de Prado, *Journal of Portfolio Management*, 2014). 파라미터를 100번 조정해서 찾은 샤프지수 2.0과 딱 한 번 세운 가설로 나온 샤프지수 2.0은 신뢰도가 다른데, DSR은 이 시도 횟수를 반영해 값을 보정해줍니다.

정확한 계산에는 논문의 공식이 필요해서 이 글에서 구체적인 보정 수치를 제시하지는 않겠습니다. 다만 방향성은 분명합니다. DSR로 보정한 값이 원래 샤프지수보다 크게 낮아진다면, 그 성과의 상당 부분이 시도 횟수(운)에서 왔을 가능성이 있다는 신호로 볼 수 있습니다.

과적합 징후 2 — 그림과 구조로 드러나는 신호

수익곡선이 지나치게 매끈하다

실제 시장은 원래 울퉁불퉁합니다. 오르는 날이 있으면 떨어지는 날도 있고, 몇 달씩 횡보하는 구간도 반드시 나옵니다. 그런데 백테스트 자산 곡선이 45도 각도로 거의 직선에 가깝게 우상향한다면, 오히려 그게 이상한 신호일 수 있어요.

이런 곡선은 그 구간에서 우연히 잘 맞아떨어진 조건들이 겹쳐 나온 결과인 경우가 많습니다. 실제 시장의 굴곡을 반영한 게 아니라, 그 굴곡을 정확히 피해가도록 조건을 맞춘 셈이니까요.

파라미터를 살짝만 바꿔도 성과가 절벽처럼 무너진다

전략을 점검할 때 파라미터를 원래 값에서 10~20% 정도 바꿔보는 방법이 있습니다. 이때 샤프지수나 손익비(총이익을 총손실로 나눈 값) 같은 지표가 원래 값의 70% 안팎을 유지하면 구조적인 엣지(우위)가 있다고 보고, 조금만 건드려도 성과가 급격히 무너지면 과적합된 “절벽”에 가깝다고 봅니다. 학술 기준이라기보다 트레이딩 실무 가이드에서 흔히 쓰이는 프레임입니다(LuxAlgo 등 실무 블로그).

비유하자면 고원 지대는 어느 방향으로 몇 걸음 걸어도 높이가 크게 안 바뀌지만, 절벽 끝은 한 발짝만 잘못 디뎌도 바로 추락합니다. 이동평균 기간을 20일에서 16일이나 24일로 바꿨을 뿐인데 수익률이 반토막 난다면, 그 전략은 절벽 위에 서 있다는 뜻입니다.

파라미터 민감도 비교: 고원형은 샤프지수 1.2에서 1.0으로 완만하게 유지, 절벽형은 1.8에서 0.2로 급락
파라미터 민감도 비교: 고원형은 샤프지수 1.2에서 1.0으로 완만하게 유지, 절벽형은 1.8에서 0.2로 급락

조건이 지나치게 구체적이다

“매달 셋째 주 화요일에만 매수”, “특정 지수가 정확히 이 구간에 있을 때만 진입”처럼 조건이 과도하게 세밀하다면 의심해볼 만합니다. 시장의 보편적인 원리를 담은 규칙이라면 굳이 이렇게까지 좁은 조건이 필요할 이유가 없기 때문입니다.

데이터 마이닝 편향을 다룬 글에서 살펴본 우연한 패턴이 바로 이런 모양으로 만들어집니다. 앞의 두 신호와 함께 보면, 결국 백테스트 곡선과 실전 곡선이 왜 그렇게 다르게 생겼는지가 설명되는 셈이에요.

매끈한 백테스트 수익곡선과 등락을 반복하는 실전 수익곡선 비교
매끈한 백테스트 수익곡선과 등락을 반복하는 실전 수익곡선 비교

한국 개인 투자자가 놓치기 쉬운 착시 — 거래비용

과적합 징후는 아니지만, 백테스트와 실전의 격차를 만드는 또 다른 요인으로 거래비용을 빼놓을 수 없습니다. 2026년 현재 국내 증권거래세는 코스피가 거래세 0.05%에 농어촌특별세 0.15%를 더해 0.20%, 코스닥은 0.20%입니다(찾기쉬운생활법령정보, 2026-07-15 갱신 기준).

참고로 이건 세율이 새로 인상된 게 아닙니다. 2025년 한 해 동안 금융투자소득세 도입에 대비해 한시적으로 낮춰뒀던 세율이 금투세 폐지와 함께 종료되면서, 2023~2024년 수준으로 되돌아간 것입니다.

0.20%라는 숫자 자체는 크지 않아 보입니다. 하지만 회전율이 높은 전략, 그러니까 매매를 자주 하는 전략일수록 이 비용이 슬리피지(주문한 가격과 실제 체결 가격의 차이)까지 겹치며 누적됩니다.

백테스트에서 거래비용을 아예 반영하지 않거나 실제보다 낮게 잡아뒀다면, 인샘플(전략을 만들 때 쓴 과거 구간)에서 보던 성과가 실전에서 재현되지 않는 이유 중 하나가 여기서 나올 수 있습니다.

자가 점검 체크리스트

지금까지 나온 신호들을 질문 여섯 개로 묶었습니다. 전략을 실전에 넣기 전에 하나씩 답해보시면 좋겠습니다.

1. 내 전략의 샤프지수가 벤치마크 대비 지나치게 높지 않은가.

2. 조정한 파라미터 개수에 비해 백테스트 기간의 거래 횟수가 충분히 많은가.

3. 수익곡선이 실제 시장 흐름치고 지나치게 매끈하지 않은가.

4. 파라미터를 10~20% 바꿔봐도 성과가 완만하게 유지되는가, 아니면 급격히 무너지는가.

5. 진입·청산 조건이 특정 요일이나 특정 구간에만 맞춰진 지나치게 좁은 형태는 아닌가.

6. 거래비용과 세금을 백테스트에 현실적으로 반영했는가.

이 체크리스트를 통과했다고 해서 완벽한 전략이 되는 건 아닙니다. 다만 전략이 여전히 유효한지 점검하는 체크리스트와 함께 주기적으로 다시 확인해보면, 위험을 미리 줄이는 데는 도움이 될 것 같습니다.

과적합 징후 자가 점검 6문항 체크리스트
과적합 징후 자가 점검 6문항 체크리스트

하나면 우연, 여럿이 겹치면 의심

세 줄로 줄이면 이렇습니다. 첫째, 과적합 징후는 샤프지수·거래 횟수·DSR 같은 숫자로도, 수익곡선의 모양이나 파라미터 민감도 같은 구조로도 드러납니다. 둘째, 이 신호들은 하나만 걸렸다고 단정할 근거는 못 되지만 여러 개 겹치면 의심할 이유가 됩니다. 셋째, 한국 시장에서는 거래비용과 세금까지 백테스트에 현실적으로 반영했는지도 함께 봐야 합니다.

다음 글에서는 이 신호들 중에서도 자주 언급되는 “파라미터가 많을수록 왜 위험해지는가”를 조금 더 깊이 다뤄보겠습니다.


※ 이 글은 개인이 공부하며 정리한 기록으로, 특정 상품·종목에 대한 투자
권유가 아닙니다. 모든 투자의 판단과 책임은 투자자 본인에게 있으며,
글의 수치는 작성일 기준이므로 실제 가입·투자 전 최신 정보를 꼭 확인하세요.

글쓴이

한결

재테크와 주식을 처음부터 공부하며 정리합니다. 금리·세율·한도 같은 수치는 기관 원문에서 확인하고, 글에 기준일을 함께 적습니다. 틀린 내용을 발견하시면 문의 페이지로 알려주세요. 확인 후 고치고 무엇을 언제 고쳤는지 남깁니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다