|

백테스트 입문: 과거로 검증하되, 과거에 속지 않기

앞선 글들에서 “골든크로스가 나오면 오른다”, “RSI 30이면 사라” 같은 통념이 실제로는 잘 통하지 않는다고 이야기했습니다. 그런데 “통한다/안 통한다”를 어떻게 알 수 있을까요? 그 답을 데이터로 주는 것이 바로 백테스트입니다. 어떤 매매 규칙을 과거의 실제 데이터에 대입해, “이 규칙대로 했다면 과거에 어떤 성과가 났을까”를 검증하는 것입니다. 강력한 도구이지만, 동시에 초보자를, 때로는 전문가마저 가장 잘 속이는 도구이기도 합니다. 이 글에서는 백테스트가 무엇이고, 왜 그 화려한 결과를 그대로 믿으면 안 되는지를 다룹니다.

백테스트의 과정
과거 데이터로 규칙을 검증하는 흐름 · 개념 도해

백테스트란 무엇인가

백테스트는 네 단계로 이뤄집니다. 첫째, 매매 규칙을 명확히 정합니다(“20일선을 위로 뚫으면 사고, 아래로 뚫으면 판다” 같은). 둘째, 그 규칙을 과거의 실제 주가 데이터에 하나하나 대입해 모의로 매매를 돌립니다. 셋째, 그렇게 돌린 결과의 성과를 여러 각도로 측정합니다 — 누적 수익률, 최대낙폭(MDD), 승률, 변동성 등. 넷째, 그렇게 측정한 성과를 보고 “이 규칙이 과거에 통했는가”를 판단합니다.

백테스트의 매력은 분명합니다. 막연히 “이 방법이 좋을 것 같다”는 주관적 느낌 대신, 과거 데이터라는 증거로 규칙을 시험할 수 있기 때문입니다. 감이나 소문이 아니라 데이터로 검증한다는 점에서, 백테스트는 증거 기반 투자의 핵심 도구입니다. 실제로 퀀트로 불리는 체계적·계량적 투자는 모두 엄격한 백테스트 위에 서 있습니다. 문제는 이 도구가 잘못 쓰이기 쉽다는 것입니다.

함정 1 — 과최적화, 가장 흔하고 치명적인

백테스트의 가장 위험한 함정은 과최적화(오버피팅)입니다. 과거 데이터에 가장 좋은 성과가 나오도록 규칙의 설정을 이리저리 바꾸다 보면, 결국 “과거에 우연히 잘 맞았던 조합”을 찾게 됩니다. 이동평균을 20일이 아니라 23일로, 손절을 7%가 아니라 6.5%로 미세 조정하며 과거 수익을 극대화한 규칙은, 과거를 예측한 것이 아니라 과거를 외운 것입니다.

과최적화의 함정
과거엔 완벽, 미래엔 무너지는 규칙 · 개념 도해

위 그림이 그 함정을 보여 줍니다. 과거 구간(검증에 쓴 데이터)에서는 정교하게 맞춘 규칙이 화려한 성과를 내지만, 실제 미래 구간에 들어서면 무너집니다. 반대로 단순하고 정직한 규칙은 과거에 덜 화려해도 미래에 더 견고합니다. 과거에 완벽한 규칙일수록 미래에 무너질 가능성이 높다는 역설 — 이것이 백테스트를 대할 때 가장 먼저 새겨야 할 교훈입니다.

함정 2 — 미래참조편향

미래참조편향(look-ahead bias)은 그 시점에는 알 수 없었던 정보를 백테스트에 몰래 사용하는 실수입니다. 예컨대 “그날 종가가 이동평균 위면 그날 시가에 산다”는 규칙은, 그날 종가는 장이 끝나야 아는데 그날 시가에 매수한다는 모순을 담고 있습니다. 실적 발표 전에 실적을 아는 것처럼 계산하거나, 나중에 수정된 데이터를 과거 시점에 쓰는 것도 같은 오류입니다. 이 편향이 있으면 백테스트 성과가 비현실적으로 좋게 나옵니다.

함정 3 — 생존편향

생존편향은 지금까지 살아남은 종목만으로 백테스트를 돌리는 실수입니다. 과거 어느 시점의 전체 종목이 아니라 현재 상장된 종목으로만 과거를 검증하면, 그동안 상장폐지되거나 망한 회사들이 빠집니다. 그 망한 회사들도 과거에는 매수 후보였는데 말입니다. 그 결과 실제보다 성과가 좋게 나옵니다. “그때 이 규칙으로 샀으면”의 목록에는 나중에 사라진 회사도 들어 있어야 정직한 검증입니다.

함정 4 — 거래비용과 슬리피지

백테스트에서 매매 수수료, 세금, 그리고 슬리피지(원하는 값에 못 사고 불리하게 체결되는 것)를 빼먹으면 성과가 부풀려집니다. 특히 자주 매매하는 규칙일수록 이 비용이 누적돼, 종이 위에서는 수익이 나도 실제로는 비용에 다 잠식되는 경우가 많습니다. 앞서 캔들 글에서 다룬 유동성 문제도 여기서 이어집니다 — 거래가 얇은 종목은 슬리피지가 커서, 백테스트가 아무리 좋아도 실전에서는 그 값에 못 삽니다.

함정 5 — 데이터 스누핑과 다중검정

수많은 규칙과 설정을 시도하다 보면, 순전히 우연으로 과거에 잘 맞는 것이 반드시 나옵니다. 동전을 수천 번 던지면 연속으로 앞면이 나오는 구간이 생기는 것과 같습니다. 이것을 데이터 스누핑 또는 다중검정의 문제라고 합니다. 100가지 전략을 백테스트하면 그중 몇 개는 우연히 훌륭해 보이지만, 그 우연히 좋았던 결과는 미래에 재현되지 않습니다. 그래서 “이 전략은 백테스트가 좋다”는 말은, 그 전략이 몇 개의 시도 중에서 골라진 것인지를 함께 알기 전에는 사실상 의미가 없습니다.

이 글이 말하지 않는 것

이 글은 “백테스트 성과가 좋으면 미래에도 통한다”고 말하지 않습니다. 과최적화·미래참조·생존편향·거래비용 누락·데이터 스누핑 때문에, 화려한 백테스트 결과의 상당수는 과거를 외운 것이거나 우연의 산물입니다. 특히 개인이 손쉽게 돌리는 백테스트는 이런 함정에 무방비인 경우가 많습니다. 백테스트는 규칙을 반증하고 겸손히 검증하는 도구이지, 미래 수익을 약속하는 증명서가 아닙니다. “백테스트 수익률 연 50%” 같은 광고는 거의 항상 이 함정 중 하나 이상에 걸려 있습니다.

수익률만 보면 안 된다 — 성과의 여러 얼굴

백테스트 결과에서 초보자는 누적 수익률에만 눈이 갑니다. 하지만 같은 수익률이라도 그 과정이 전혀 다를 수 있습니다. 그래서 반드시 함께 봐야 할 것이 최대낙폭(MDD)입니다. 아무리 최종 수익률이 높아도 중간에 −60%를 견뎌야 했다면, 대부분의 사람은 그 구간에서 규칙을 포기하고 팔았을 것입니다. 투자 위험에서 다룬 것처럼, 실패는 대개 최악의 구간에서 계획을 버릴 때 옵니다.

그래서 백테스트는 수익률과 함께 낙폭, 변동성, 그리고 위험 대비 수익(샤프비율 등)을 봐야 합니다. 승률도 참고하지만 함정이 있습니다 — 승률 90%여도 지는 10%에서 크게 잃으면 전체는 마이너스일 수 있고, 반대로 승률 40%여도 이길 때 크게 벌면 수익일 수 있습니다. 성과는 하나의 숫자가 아니라 여러 얼굴을 함께 봐야 정직하게 평가됩니다.

레짐 변화 — 시장은 같은 시장이 아니다

백테스트의 근본적 한계 하나는, 과거의 시장과 미래의 시장이 같지 않다는 것입니다. 금리 환경, 시장 참여자, 규제, 정보 전파 속도가 시대에 따라 달라집니다. 이것을 레짐 변화라고 합니다. 어떤 규칙이 저금리 시대에 통했다고 고금리 시대에도 통하리란 보장이 없습니다. 특히 특정 시기에만 유효했던 현상을 붙잡은 규칙은, 그 특정 시기가 끝나면 무너집니다.

게다가 시장에는 자기소멸적 성질이 있습니다. 누군가 통하는 규칙을 발견해 널리 알려지면, 많은 사람이 따라 하면서 그 효과가 사라집니다. 그래서 과거에 통했던 규칙일수록 지금은 이미 통하지 않을 가능성이 있습니다. 백테스트는 과거를 보여 줄 뿐, 그 과거가 반복된다고 가정하는 순간 틀릴 수 있습니다.

표본이 작으면 우연을 실력으로 착각한다

통계적으로 신뢰할 만한 결론을 얻으려면 충분한 표본이 필요합니다. 몇 번의 매매나 짧은 기간의 백테스트로는, 그 성과가 실력인지 우연인지 구분할 수 없습니다. 10번 매매해서 7번 이겼다고 승률 70%의 전략이라 말할 수 없는 것과 같습니다. 그래서 정직한 백테스트는 오랜 기간, 많은 종목, 여러 시장에 걸쳐 충분한 매매 횟수를 확보해야 합니다.

표본이 작으면 특히 앞서 말한 데이터 스누핑의 위험이 커집니다. 적은 데이터에서는 우연히 잘 맞는 규칙이 너무 쉽게 나오기 때문입니다. “이 종목에서 이 규칙이 지난 6개월간 완벽했다”는 말이 거의 무의미한 이유입니다. 6개월, 한 종목은 우연이 지배하기에 충분히 짧고 좁은 표본입니다.

왜 진짜 필승 전략은 팔리지 않나

시중에는 “백테스트로 검증된 필승 매매법”을 파는 곳이 많습니다. 여기서 한 가지 상식을 기억하면 됩니다. 만약 정말로 손쉽게 큰돈을 버는 규칙이 있다면, 그것을 굳이 남에게 팔 이유가 없습니다. 스스로 조용히 쓰면 되니까요. 그리고 그런 규칙이 널리 팔려 많은 사람이 쓰면, 앞서 말했듯 그 효과는 곧 사라집니다.

그래서 “검증된 필승 전략”이라는 말 자체가 모순에 가깝습니다. 진짜 통하는 것은 대개 단순하고 이미 알려져 있으며, 그마저 꾸준히 지키기 어렵습니다. 화려한 백테스트 곡선과 높은 수익률 광고를 보면, 감탄하기 전에 이 글에서 다룬 함정들 — 과최적화, 생존편향, 거래비용 누락, 데이터 스누핑 — 중 무엇에 걸렸을지를 먼저 떠올리는 것이 안전합니다.

그렇다면 백테스트를 어떻게 정직하게 쓰나

백테스트를 제대로 쓰는 몇 가지 원칙이 있습니다. 첫째, 표본 밖 검증(out-of-sample)입니다. 규칙을 만들 때 쓴 기간과, 검증할 기간을 분리해 “만들 때 안 본 데이터”에서도 통하는지 확인합니다. 둘째, 단순하게 유지합니다. 조정할 설정이 적을수록 과최적화 위험이 낮습니다. 셋째, 거래비용을 넉넉히 반영합니다. 넷째, 표본을 크게(많은 종목·긴 기간·여러 시장) 잡아 우연을 걸러냅니다. 다섯째, 결과를 의심의 눈으로 봅니다 — 너무 좋으면 어딘가 틀렸을 가능성이 높습니다.

백테스트가 놓치는 사람의 심리

백테스트는 규칙이 완벽하게 지켜졌다고 가정합니다. 하지만 실제 매매는 사람이 합니다. 백테스트에서는 −30% 낙폭 구간을 데이터가 무심히 지나가지만, 실제로 내 돈이 −30% 빠진 구간을 감정 없이 규칙대로 버티는 것은 전혀 다른 일입니다. 대부분은 그 구간에서 공포에 규칙을 버립니다. 그래서 화면상 좋은 백테스트도, 사람이 그것을 실제로 지켜 낼 수 있느냐는 완전히 별개의 문제입니다.

그래서 좋은 전략의 조건에는 “수익이 높은가”뿐 아니라 “내가 나쁜 구간을 견디며 지켜 낼 수 있는가”가 들어갑니다. 감당하기 어려운 낙폭을 가진 전략은, 백테스트가 아무리 화려해도 실전에서는 포기로 끝납니다. 자신의 심리적 한계를 넘는 전략은 그 사람에게는 나쁜 전략입니다. 이 점이 백테스트 숫자만으로는 결코 보이지 않는, 실전과 이론의 결정적 간극입니다.

펀더멘털에도 검증이 필요하다

백테스트는 기술적 규칙에만 쓰이는 것이 아닙니다. “저PER 종목이 시장을 이겼는가”, “고ROE 종목이 초과수익을 냈는가” 같은 펀더멘털 전략도 데이터로 검증됩니다. 실제로 가치·수익성·규모 같은 요인의 장기 성과는 학계에서 오래 연구돼 왔습니다. 다만 여기서도 같은 함정이 적용됩니다 — 과거에 통한 요인이 미래에도 통하리란 보장은 없고, 널리 알려지면 효과가 약해집니다.

그래서 펀더멘털이든 기술적이든, 어떤 규칙을 접하면 “이것이 정직하게 검증됐는가”를 묻는 태도는 동일하게 필요합니다. 이 사이트가 화려한 백테스트 수익률을 내세우는 대신, 개별 종목의 시나리오를 걸고 분기마다 실제로 현황을 업데이트하며 기록을 쌓아 가는 이유가 여기에 있습니다. 과거를 외운 정교한 곡선보다, 미래에 검증되는 정직한 기록이 더 믿을 만하기 때문입니다. 백테스트의 진짜 교훈은 “검증하라, 그러나 검증에 속지 마라”입니다.

개인 투자자와 백테스트

그렇다면 개인 투자자는 백테스트를 어떻게 대해야 할까요. 직접 정교한 백테스트를 돌릴 필요는 없지만, 그 정신은 반드시 필요합니다. 어떤 매매법이나 지표를 접했을 때 “이게 정말 검증된 것인가, 검증됐다면 그 검증이 이 함정들을 피했는가”를 묻는 태도입니다. 특히 “백테스트로 검증된 필승 전략”을 파는 곳은 강하게 의심해야 합니다. 진짜 통하는 단순 규칙이 있다면 이미 널리 알려져 그 효과가 사라졌을 것이기 때문입니다.

이 사이트가 종목 분석마다 반증 가능한 핵심 시나리오를 걸고 분기마다 종목 추적에서 업데이트하는 것도, 백테스트의 정신을 미래에 적용하는 방식입니다. 과거를 외우는 대신, 지금 세운 논리가 앞으로의 실제 데이터에서 맞는지를 시간으로 검증하는 것입니다. 이 “전향적 검증(forward test)”은 과최적화에서 자유롭습니다 — 아직 오지 않은 미래는 외울 수 없기 때문입니다.

한 가지 비유가 도움이 됩니다. 백테스트는 지나온 길을 뒤돌아보며 “이렇게 갔으면 빨랐겠다”고 최적의 경로를 그리는 것과 같습니다. 이미 어디에 웅덩이가 있었는지 다 알고 나서 그린 경로는 완벽해 보입니다. 하지만 앞으로 갈 길에는 어디에 웅덩이가 있을지 모릅니다. 지나온 길에 딱 맞춘 경로일수록, 앞길에서는 오히려 헛디디기 쉽습니다. 이것이 과최적화의 본질입니다.

그래서 백테스트를 배우는 진짜 목적은 “완벽한 규칙을 찾는 것”이 아니라, “그럴듯한 규칙에 속지 않는 눈”을 기르는 것입니다. 화려한 성과 곡선 앞에서 함정을 떠올리고, 검증이 정직했는지 묻고, 너무 좋은 것을 의심하는 태도. 이 회의적이면서도 데이터를 존중하는 균형이, 증거 기반 투자의 핵심입니다. 검증하되 그 검증에 겸손한 것 — 바로 그것이 백테스트가 우리에게 주는 가장 값진 교훈입니다.

페이퍼 트레이딩 — 실전 전의 다리

백테스트가 과거의 검증이라면, 페이퍼 트레이딩(모의투자)은 미래를 향한 검증입니다. 실제 돈을 넣기 전에, 정한 규칙대로 가상으로 매매하며 지금부터의 데이터로 그 규칙을 시험하는 것입니다. 이는 앞서 말한 전향적 검증의 한 형태로, 과최적화에서 자유롭고 미래참조편향도 없습니다. 아직 오지 않은 데이터로 검증하기 때문입니다.

다만 페이퍼 트레이딩에도 한계가 있습니다. 가상의 돈은 진짜 돈이 아니라, 낙폭 구간의 공포나 수익 구간의 탐욕이 실제만큼 작동하지 않습니다. 그래서 모의투자에서는 잘 지키던 규칙을 실전에서 무너뜨리는 일이 흔합니다. 그럼에도 페이퍼 트레이딩은 규칙의 논리적 결함을 미리 발견하고, 실전에 앞서 규칙을 손에 익히는 데 유용한 다리입니다. 과거 검증(백테스트)과 미래 검증(전향적)을 함께 쓰는 것이, 어느 하나에만 기대는 것보다 안전합니다.

정리하면, 백테스트·페이퍼 트레이딩·전향적 검증은 모두 “내 판단이 맞는지 데이터로 확인한다”는 같은 정신에서 나온 도구들입니다. 방향(과거/미래)과 방식이 다를 뿐입니다. 이 검증의 정신이야말로 감과 소문에 휘둘리지 않는 투자의 뿌리이며, 이 사이트가 모든 종목 분석에 논리를 걸고 기록으로 남기는 이유입니다.

자주 묻는 질문 (FAQ)

Q1. 백테스트 수익률이 높으면 좋은 전략 아닌가요?

꼭 그렇지 않습니다. 과최적화·생존편향·거래비용 누락 등으로 부풀려졌을 수 있습니다. 특히 너무 좋은 결과일수록 의심해야 합니다. 그 백테스트가 표본 밖에서도 통하는지, 함정을 피했는지가 수익률 숫자보다 중요합니다.

Q2. 그럼 백테스트는 소용없나요?

아닙니다. 정직하게 하면 규칙을 반증하고 걸러 내는 데 매우 유용합니다. 다만 “좋은 전략을 증명”하기보다 “나쁜 전략을 배제”하는 데 더 강합니다. 그리고 좋은 결과보다 함정을 피했는지를 봐야 합니다.

Q3. 전향적 검증(포워드 테스트)이 더 나은가요?

과최적화에서 자유롭다는 큰 장점이 있습니다. 아직 오지 않은 미래 데이터로 검증하므로 과거를 외울 수 없기 때문입니다. 다만 시간이 오래 걸립니다. 이 사이트가 핵심 시나리오를 걸고 분기마다 종목 추적에서 현황을 업데이트하는 것이 일종의 전향적 검증입니다.

백테스트를 대하는 체크리스트

  1. 표본 밖 검증: 만들 때 안 본 데이터에서도 통하나.
  2. 단순함: 조정 설정이 적을수록 과최적화 위험 낮음.
  3. 비용 반영: 수수료·세금·슬리피지를 넉넉히.
  4. 표본 크기: 긴 기간·많은 종목·충분한 매매 횟수.
  5. 의심: 너무 좋으면 어딘가 틀렸다.

정리

백테스트는 매매 규칙을 과거 데이터로 검증하는 강력한 도구이지만, 과최적화·미래참조편향·생존편향·거래비용 누락·데이터 스누핑이라는 함정으로 가득합니다. 그래서 화려한 백테스트 결과는 대개 과거를 외운 것이거나 우연입니다. 정직한 백테스트는 표본 밖 검증, 단순함, 넉넉한 비용 반영, 큰 표본, 그리고 의심의 태도를 지킵니다. 무엇보다 좋은 백테스트는 미래를 약속하지 않고 규칙을 반증합니다. 다음 글에서는 기술적 트랙의 마지막으로, 시장의 관심 밖에 있는 소외주를 차트로 볼 때 특히 조심해야 할 유동성 함정을 다루며, 펀더멘털과 기술적 두 트랙을 하나로 잇습니다.

투자 공부 · 기술적 분석. 이 글은 정보 제공을 위한 것이며 특정 종목의 매수·매도 권유가 아닙니다. 예시 차트는 개념 설명을 위한 가상 데이터입니다.

이 글 공유하기 —

Similar Posts