멀티팩터 퀀트 투자 백테스트 검증 | 10년 워크포워드 결과 엑셀 공개



안녕하세요, 육성라이프입니다 😊

지난 6편에서 “매일 종목을 추천하기보다 관찰 기록을 남기겠다”고 말씀드렸습니다. 그 뒤로 한 가지가 계속 마음에 걸렸습니다. 지금까지 쓰던 신호들이 정말 맞는가? 그래서 이번에는 제 전략을 처음부터 다시 의심해 보기로 했습니다. 2016년 9월부터 2026년 10월까지 약 10년 치 코스피·코스닥 시세, DART 공시와 분기 영업이익, 월말 PER·PBR·배당, 공매도 잔고, 기관·외국인 순매수를 모두 다시 불러와 직접 파이썬으로 돌렸습니다. 모든 결과는 왕복 거래비용 0.3%를 뺀 뒤의 숫자이고, 엑셀 원자료도 이 글 아래에 그대로 올려 두었습니다.

✅ 이 글의 요점
① 1편부터 써 온 ‘거래량 흡수’ 신호는 10년 중 한 해도 플러스가 아니었습니다 — 버려야 할 신호였습니다.
② 기관·외국인 순매수 추종은 효과가 없거나 오히려 반대였습니다.
③ 살아남은 것은 ‘영업이익 개선 공시(공시 후 5거래일 안)’와 여러 팩터를 섞은 멀티팩터 순위였습니다.
④ 그래도 같은 기간 시가총액 가중(지수)이 더 높았습니다 — 지수 ETF가 중심, 멀티팩터는 보조라는 결론은 그대로입니다.
🔄 2026-10-05 업데이트 — 이 글의 성과는 모든 종목에 거래비용 0.3%를 똑같이 뺀 결과입니다. 거래대금별로 비용을 다르게 잡아 다시 계산하니 이 방식은 연 +7.6% → +4.7%로 줄었고, 거래대금 100억 원 이상 종목에서만 고르는 방식으로 바꿨습니다. 자세한 내용은 8편 · 백테스트 거래비용 현실화에 정리했습니다.
돋보기로 주식 시세 데이터를 살펴보는 모습
기존 신호를 하나씩 다시 의심하는 것에서 이번 검증을 시작했습니다.
사진: N. Voitkevich · Pexels (Pexels 라이선스)

1. 내 전략, 10년 데이터로 다시 채점해 보니

검증 대상은 시가총액 500억 원 이상, 20일 평균 거래대금 10억 원 이상, 주가 1,000원 이상인 종목입니다(우선주·스팩 제외). 신호가 나온 뒤 60거래일 동안 ‘같은 날 아무 종목이나 산 경우’보다 얼마나 더 벌었는지(초과수익)로 채점했습니다. t값은 결과가 우연인지를 가르는 숫자로, 보통 절댓값 2를 넘으면 우연이라 보기 어렵다고 봅니다.

방법결과(60일 초과수익)판정
거래량 흡수 (20일 평균 3배 거래 · 주가 ±3% 이내)−1.5%p, t −4.8, 11년 중 플러스 0년❌ 피해야 할 신호
기관 매집 모델AUC 0.49 (0.5가 동전 던지기)❌ 효과 없음
기관·외국인 20일 순매수 (다른 팩터 통제)다음 달 −0.4%p / −0.5%p (t −1.8 / −2.5)⚠️ 오히려 약간 부진
실적 발표 직후 2일 주가 반응t 0.3 ~ 1.8❌ 효과 없음
내부자 매수DART 자료가 2024년 10월 이후뿐⏸ 검증 불가
영업이익 개선 공시 (시총의 2% 이상 개선)+2.4%p, t 2.8, 11년 모두 플러스✅ 유효 — 단 공시 후 5거래일 안

가장 뼈아픈 건 첫 줄입니다. 대량 거래가 터졌는데 주가가 버티는 ‘흡수’ 패턴은 세력이 물량을 받아 간 흔적이라고 믿고 1편부터 써 왔는데, 실제로는 10년 동안 매년 시장보다 못했습니다. 반대로 영업이익 개선 공시는 꾸준했지만, 공시 후 20일이 지나면 효과가 사라졌습니다. “좋은 소식은 빨리 반영된다”는 교과서 그대로였습니다.

손절 −7%, 익절 +10% 규칙은 도움이 됐을까

많은 분들이 쓰는 ‘−7% 손절, +10% 익절’도 시험했습니다. 영업이익 개선 신호 기준으로 60일을 그냥 들고 있으면 평균 +4.2%였는데, 손절을 붙이면 +2.7%, 익절까지 붙이면 +1.3%로 줄었습니다. 손절은 큰 손실을 막아 주지만, 잠깐 흔들렸다가 회복하는 종목까지 잘라 내기 때문에 평균 수익은 오히려 깎였습니다.

차트가 있는 재무 스프레드시트를 검토하는 모습
신호 하나 대신 15개 팩터를 매달 순위로 섞는 방식으로 방향을 바꿨습니다.
사진: Mikhail Nilov · Pexels (Pexels 라이선스)

2. 새 방향: 15개 팩터를 섞는 멀티팩터 순위

사건 하나에 기대는 대신, 매달 말 모든 종목에 15가지 점수를 매겨 순위를 내는 멀티팩터(팩터 투자) 방식을 만들었습니다. 핵심은 각 팩터가 다른 팩터와 겹치지 않고 ‘혼자서도’ 효과가 있는지를 회귀분석(Fama-MacBeth)으로 따로 확인했다는 점입니다.

판정팩터근거
✅ 유효영업이익수익률, 배당수익률, 이익 증가 추세상위 20%가 월 +0.49 ~ +0.56%p, 통제 후에도 t 2.3 ~ 3.1
🔸 약함저변동성, 1/PER, 1/PBR저변동은 통제 후 t 5.3로 가장 강하지만 주로 하위 20%(월 −1.7%p)를 피하는 효과
🛡 하위 회피용ROE, 단기 급등 회피, 거래량 과열 회피고르는 데보다 나쁜 종목을 걸러 내는 데 쓸모
❌ 효과 없음12개월 모멘텀, 52주 신고가, 공매도 잔고, 외국인 순매수10년 동안 의미 있는 차이 없음
🔄 반대 방향기관 순매수, 소형주기관이 많이 산 종목은 다음 달 부진(IC t −3.2), 이 기간엔 대형주가 우세

흔히 알려진 ‘모멘텀’과 ’52주 신고가’가 한국 시장 10년 데이터에서 효과가 없었다는 점, 그리고 기관 순매수가 오히려 반대로 움직였다는 점은 저도 의외였습니다. 남의 매매를 따라가는 신호는 대체로 이미 가격에 반영돼 있었던 셈입니다.

3. 과거에 맞춘 결과가 아닌지 — 워크포워드 검증

2편에서 다뤘던 과최적화를 피하려고 워크포워드 검증을 했습니다. 매달 “그때까지의 과거 자료만” 보고 쓸 팩터를 고른 다음, 다음 달 성과를 기록하는 방식입니다. 2018년 11월부터 2026년 9월까지 95개월입니다.

항목결과
점수 상위 20% vs 같은 달 아무 종목월 +0.71%p (t 2.7), 9년 중 8년 플러스
앞 절반 / 뒤 절반+0.60%p / +0.81%p — 뒤로 갈수록 약해지지 않음
실제 추천 규칙 (20종목·업종당 3종목·희석 공시 제외)연 +7.6%, 최대 낙폭 −37%
같은 기간 아무 종목 동일 비중연 −0.8%, 최대 낙폭 −50%
같은 기간 시가총액 가중 (지수와 비슷)연 +12.7%, 최대 낙폭 −36%
석 달마다 교체연 +9.7% (t 2.0)
소형주(시총 600위 밖) / 대형주(상위 300)월 +1.35%p (t 5.7) / +0.17%p (t 0.5)
60일 안 +10%에 먼저 닿은 비율42% (아무 종목 40%)
60일 안 −7%에 먼저 닿은 비율49% (아무 종목 57%)

숫자만 보면 그럴듯하지만, 한 줄을 꼭 같이 보셔야 합니다. 같은 기간 시가총액 가중이 연 +12.7%로 더 높았습니다. 2019~2026년은 대형주 쏠림 장이었고, 멀티팩터의 힘은 주로 소형주 구간에서 나왔습니다. 2026년 9월 한 달만 해도 대형주 급등장에서 −4.7%p를 기록했습니다. 또 −7% 손절을 붙이면 월 −0.34%p가 줄었습니다. 이 모델의 장점은 ‘대박 종목 찾기’가 아니라 −7%로 먼저 떨어질 종목을 덜 고르는 것에 가깝습니다.

차트가 인쇄된 주식 보고서와 계산기, 돋보기
결과가 우연인지 확인하려고 점수를 무작위로 섞는 위약 시험까지 했습니다.
사진: RDNE Stock project · Pexels (Pexels 라이선스)

우연이 아닌지 확인한 두 가지 시험

  • 위약 시험 — 종목 점수를 무작위로 섞어서 같은 과정을 돌렸더니 t값이 가장 높아도 1.4였습니다. 실제 모델의 2.7은 우연으로 나오기 어려운 숫자입니다.
  • 시점 일치 시험 — 2026년 8월 31일까지의 자료로 계산한 과거 점수와 전체 자료로 계산한 점수를 비교했더니 120개월 동안 차이가 0이었습니다. 미래 정보가 섞이지 않았다는 뜻입니다(5편 백테스트 함정 체크리스트의 ‘미래 참조’ 항목).

4. 교차 검증: 사건 신호 × 팩터 점수

마지막으로 두 방향을 겹쳐 봤습니다. 사건(거래량 흡수, 영업이익 공시)이 나온 종목을 ‘사건 직전 월말 팩터 점수’로 세 그룹으로 나눠 다시 채점했습니다.

조합60일 초과수익쓰는 법
거래량 흡수 × 팩터 하위 1/3−4.2%p (t −5.3, 9년 중 플러스 0년)추천에서 제외
거래량 흡수 × 팩터 중간·상위−0.7%p / −0.2%p효과 없음
영업이익 정체 × 팩터 하위 1/3−2.9%p (t −3.0)추천에서 제외
영업이익 개선 × 팩터 점수하위와 나머지 차이 t 0.3같은 순위끼리 정렬할 때만 사용

교차 검증의 가장 큰 쓸모는 ‘고르기’보다 ‘빼기’였습니다. 나쁜 사건과 낮은 팩터 점수가 겹친 종목은 10년 동안 일관되게 부진했습니다. 반대로 좋은 공시에 높은 점수를 더한다고 성과가 더 좋아지지는 않았습니다.

서류 옆에 놓인 계산기
프로그램은 검증 결과대로 추천 순서와 제외 규칙을 바꿨습니다.
사진: Anna Nekrashevich · Pexels (Pexels 라이선스)

5. 프로그램은 이렇게 바꿨습니다

  • 멀티팩터 모듈 추가 — 매달 15개 팩터 점수와 워크포워드 순위를 계산합니다.
  • 종합 추천 순서 — 영업이익 개선 공시(5거래일 안) → 멀티팩터 상위 20종목 → 나머지 사건 신호(팩터 점수순).
  • 제외 규칙 — 유상증자 등 희석 공시, ‘거래량 흡수 × 하위 1/3’, ‘영업이익 정체 × 하위 1/3’. 상장 120거래일 미만 종목도 뺐고, 업종당 3종목까지만 담습니다.
  • 관찰 기록 — 한 달에 한 번 순위를 기록해 두고, 21거래일 뒤 아무 종목과 비교하는 점검 시트를 자동으로 만듭니다.
  • 손절 안내 수정 — 기계적인 −7% 손절 대신 “보유 기간을 정해 두고 다음 점검일에 순위를 다시 본다”로 바꿨습니다.
📊 검증 엑셀 파일 내려받기
이 글의 모든 표를 만든 원자료입니다. 시트 7개(읽는 법 · 멀티팩터 검증 10년 · 워크포워드 성과 · 손절·익절 검증 · 교차 검증 · 신호 검증 10년 · 팩터 회귀·상관). 특정 종목 이름은 넣지 않았습니다.
⬇ stock-screener-part7-verification.xlsx (약 29KB)
나무 블록으로 만든 PORTFOLIO 글자
결론은 그대로: 지수 ETF가 중심, 멀티팩터는 보조입니다.
사진: Ann H · Pexels (Pexels 라이선스)

6. 그래서 어떻게 쓸 것인가

이번 검증으로 6편의 코어·위성 전략은 더 단단해졌습니다. 10년 동안 가장 높은 수익을 낸 건 결국 시가총액 가중, 즉 지수였습니다. 그래서 저는 계속 지수 ETF를 중심(코어)에 두고, 멀티팩터 순위는 작은 비중의 위성으로 관찰만 하려 합니다. 직접 스크리너를 만들고 계신 분이라면 “무엇을 살까”보다 “무엇을 빼야 할까”부터 검증해 보시길 권합니다. 저에게는 그게 가장 많이 남는 공부였습니다.

자주 묻는 질문

Q. 멀티팩터 백테스트에서 t값 2.7이면 믿어도 되나요?
A. 우연일 가능성은 낮다는 뜻이지 앞으로도 같다는 보장은 아닙니다. 그래서 위약 시험과 시점 일치 시험을 함께 했고, 그래도 시가총액 가중보다 낮았다는 점을 같이 봐야 합니다.

Q. 워크포워드 검증이 일반 백테스트와 뭐가 다른가요?
A. 일반 백테스트는 10년 전체를 보고 가장 좋은 조합을 고르기 쉬워 과최적화되기 쉽습니다. 워크포워드는 매달 그 시점까지의 자료만으로 고르고 다음 달 결과를 기록하므로 실제 투자와 더 비슷합니다.

Q. 손절을 하지 말라는 뜻인가요?
A. 아닙니다. 이 데이터에서 기계적인 −7% 손절이 평균 수익을 줄였다는 결과일 뿐입니다. 감당할 수 있는 손실 한도는 각자 정해 두는 것이 맞습니다.

Q. 엑셀에 종목 이름이 없는 이유는요?
A. 이 시리즈는 개발·검증 기록이고 종목 추천이 아니기 때문입니다. 방법과 집계 결과만 공개합니다.

정리

  • ‘거래량 흡수’와 기관·외국인 추종 신호는 10년 데이터에서 효과가 없거나 반대였습니다.
  • 영업이익 개선 공시는 유효했지만 공시 후 5거래일 안에서만 의미가 있었습니다.
  • 15개 팩터 멀티팩터 순위는 워크포워드에서 월 +0.71%p(t 2.7)였지만, 시가총액 가중보다는 낮았습니다.
  • 교차 검증은 ‘고르기’보다 ‘빼기’에 쓸모가 컸습니다.
  • −7% 손절·+10% 익절은 평균 수익을 줄였습니다.
⚠️ 투자 유의 — 이 글은 개인적으로 진행한 프로그램 개발·검증 기록이며 특정 종목의 매수·매도 권유가 아닙니다. 과거 백테스트 결과는 미래 수익을 보장하지 않으며, 투자 판단과 그 결과의 책임은 투자자 본인에게 있습니다.

“멀티팩터 퀀트 투자 백테스트 검증 | 10년 워크포워드 결과 엑셀 공개”에 대한 3개의 생각

댓글 남기기