매김

종목 검색

종목명, 6자리 코드, 초성(예: ㅅㅅㅈㅈ)으로 검색할 수 있어요

English

백테스트 성과가 좋았던 전략이 실제 매매(라이브 트레이딩)에서 성과가 떨어지는 이유는 무엇인가요?

고급백테스트·검증최종 수정일

백테스트에서 우수했던 전략이 라이브 트레이딩에서 무너지는 것은 예외가 아니라 오히려 흔한 결과이며, 그 원인은 크게 데이터·검증의 문제와 실행 환경의 문제로 나눌 수 있습니다. 먼저 개념적으로, 백테스트는 과거 데이터라는 '이미 정답이 정해진 표본' 위에서 규칙을 다듬는 작업이므로, 실제로 존재하는 예측력이 아니라 그 표본에만 들어맞는 우연한 패턴을 학습하기 쉽습니다. 이를 과최적화(overfitting)라 하며, 파라미터를 계속 바꿔가며 성과가 좋은 조합을 찾는 순간 사실상 노이즈를 신호로 오인하게 됩니다. 여기에 ①데이터 스누핑(data snooping) 편향이 더해지는데, 같은 데이터에서 수백 가지 조합을 반복 검정하면 순전히 통계적 우연으로 좋아 보이는 전략이 반드시 하나쯤 나오기 때문입니다[1]. 즉 표본 내(in-sample) 성과가 좋다는 사실 자체가 미래 수익을 보장하지 않습니다.

메커니즘 측면에서 더 근본적인 문제는 백테스트가 '과거를 안다는 특권'을 알게 모르게 이용한다는 점입니다. ②룩어헤드 편향(look-ahead bias)은 그 시점에는 확정되지 않았을 정보(수정 전 재무제표, 사후 확정된 종가·수정주가 등)를 매매 판단에 끌어다 쓰는 오류이고, ③생존 편향(survivorship bias)은 상장폐지·합병으로 사라진 종목이 데이터에서 빠져 있어, 실패한 종목을 애초에 고르지 않았던 것처럼 성과가 부풀려지는 오류입니다. 이 둘은 검증 단계에서 거의 눈에 띄지 않지만 라이브에서는 존재할 수 없는 이점이므로, 실전 성과와의 간극을 만드는 핵심 원인입니다.

실행 환경의 문제도 못지않게 큽니다. 백테스트는 흔히 체결이 원하는 가격에 즉시·전량 이루어진다고 가정하지만, 실제로는 ④거래비용(수수료·세금)과 슬리피지(호가 스프레드, 시장 충격, 체결 지연)가 매 거래마다 성과를 갉아먹습니다. 특히 회전율이 높은 단타·고빈도 전략일수록 이 마찰비용에 민감해서, 이론상 수익 곡선이 실제로는 우하향으로 뒤집히기도 합니다[2]. 국내 주식의 경우 매도 시 증권거래세, 유동성이 낮은 종목의 넓은 호가 간격, 대량 주문이 스스로 가격을 밀어 올리거나 내리는 마켓 임팩트가 대표적입니다. 나아가 ⑤시장 국면(regime) 변화도 결정적입니다. 과거 특정 구간에서 통했던 전략은 그 시기의 변동성·유동성·금리·상관관계 구조에 맞춰진 것이므로, 국면이 바뀌면 전제 자체가 무너집니다.

정리하면, 백테스트가 좋았는데 라이브가 나쁜 것은 대개 전략이 '틀렸다기보다' 백테스트가 현실보다 유리하게 측정되었기 때문입니다. 이를 줄이려면 표본 외(out-of-sample) 검증과 워크포워드 분석으로 과최적화를 걸러내고, 시점정보(point-in-time)·상폐 종목 포함 데이터로 편향을 제거하며, 현실적인 수수료·세금·슬리피지를 반영해 검증하는 것이 필요합니다. 다만 이런 절차를 거쳐도 미래 수익이 보장되는 것은 아니며, 최종 투자 판단과 그 책임은 투자자 본인에게 있습니다.

본 콘텐츠는 일반적 정보·교육 목적이며 특정 종목의 매수·매도 추천이 아닙니다. 세부 조건과 제도는 기관·시점에 따라 다를 수 있으므로 실제 거래 전 해당 기관의 안내를 확인하시기 바랍니다. 투자 판단과 책임은 투자자 본인에게 있습니다.

참고 자료

  1. Gainium, Common Backtesting Problems: Why Your Strategies Fail in Live Trading
  2. EBC Financial Group, Backtesting vs Live Trading: 4 Reasons Why Your Results Don’t Match

개념을 익혔다면, 실제 기업에 적용해 보세요

매김은 한국 상장주 전 종목을 공시 데이터로 채점해 등급과 근거를 원천 공시까지 공개합니다.

스크리너에서 종목 찾기산출 방법론 보기

같은 주제 다른 질문

자주 묻는 질문 전체 보기