콘텐츠로 이동
12 posts in the series “기본적 분석”

기본적 분석 11장: 백테스트 결과보다 먼저 검증할 것

기본적 분석 전략의 백테스트를 검증하는 장면

백테스트 표에서 누적수익률이 가장 큰 전략을 찾는 일은 쉽습니다. 어려운 일은 그 수익률이 미래 정보를 사용하지 않았고, 실제로 거래 가능한 방식으로 계산되었는지 확인하는 것입니다.

이번 결과는 탐색용 기준선이다

섹션 제목: “이번 결과는 탐색용 기준선이다”

현재 공개된 기준선은 거래대금 상위 300종목, 2026-01-01~2026-09-04 166거래일, 월별 리밸런싱, 동일가중 상위 25%입니다.

전략누적수익률Sharpe최대낙폭
Value+35.39%1.44-25.52%
Quality+58.26%1.56-34.12%
Composite+48.80%1.63-19.00%

이 수치는 벤치마크와 함께 봐야 하며, 166거래일에 연환산수익률을 크게 표시하면 오해가 커집니다. 짧은 기간의 누적수익률을 1년 성과처럼 받아들이지 않는 것이 중요합니다.

Value 전략 누적수익률

Quality 전략 누적수익률

Composite 전략 누적수익률

2025년 연간 재무지표를 2026년 초부터 사용했다면, 실제 공시일 이전 정보를 사용한 것입니다. 이 시리즈의 현재 데이터에는 기준일과 발표일이 분리되어 있지 않으므로, 위 결과를 실거래 성과로 해석할 수 없습니다.

현재 표본은 분석 시점의 거래대금 상위 300종목입니다. 과거에도 같은 종목만 사용했다면 현재 살아 있는 종목만 남는 생존자 편향이 생길 수 있습니다. 과거 각 리밸런싱 시점의 유니버스를 복원해야 합니다.

신호를 월초 종가로 만들고 같은 종가에 체결하면 안 됩니다. 다음 거래일 시가 또는 현실적인 지정가로 체결하고, 수수료·세금·슬리피지·거래량 제한·상하한가를 반영해야 합니다.

동일한 유니버스·리밸런싱·체결 규칙으로 벤치마크와 전략을 계산해야 합니다. 전략만 거래비용을 부담하고 벤치마크는 비용을 부담하지 않으면 비교가 공정하지 않습니다.

  1. 재무지표에 발표일을 추가합니다.
  2. 월별 시점에서 그날 이용 가능한 값만 사용합니다.
  3. 2024~2025년을 학습 구간, 2026년을 완전히 잠근 테스트 구간으로 둡니다.
  4. 산업 중립 버전과 비중 제한 버전을 함께 실행합니다.
  5. 다른 기간과 비용 가정에서 결과가 유지되는지 확인합니다.

따라서 현재 결과의 정직한 결론은 “이 기간에 Composite의 변동성이 상대적으로 낮았다” 정도입니다. “Quality가 미래에도 가장 좋은 전략”이라는 결론은 아직 뒷받침되지 않습니다.

원자료는 전략 결과 CSV에서 확인할 수 있습니다.


이 글은 교육 및 연구 목적의 자료이며 특정 종목의 매수·매도를 권유하지 않습니다. 과거의 백테스트 결과는 미래 수익을 보장하지 않습니다.

기본적 분석 12장: 기본적 분석과 기술적 분석을 공정하게 결합하는 법

재무 데이터와 가격 신호를 결합하는 장면

기본적 분석은 무엇을 살지 좁히는 데 강하고, 기술적 분석은 언제 위험을 감수할지 판단하는 데 도움을 줄 수 있습니다. 그러나 이 문장은 좋은 가설이지 자동으로 검증된 법칙은 아닙니다.

설계 항목예시
재무 신호산업 내 저PER·저PBR 또는 고ROE
가격 신호MA20 > MA60, 돌파, 모멘텀
결합 방식교집합, 점수 합산, 순차 필터
리밸런싱월 1회, 신호 확인 다음 거래일
포트폴리오동일가중, 종목·산업 비중 제한

교집합은 후보를 줄여 신호를 선명하게 만들 수 있지만, 표본과 분산도 함께 줄입니다. 반대로 점수 합산은 더 많은 종목을 담을 수 있지만 한 신호가 다른 신호를 희석할 수 있습니다.

“통합 전략이 항상 더 좋다”는 결론을 피해야 하는 이유

섹션 제목: ““통합 전략이 항상 더 좋다”는 결론을 피해야 하는 이유”

기술적 신호와 재무 신호를 여러 조합으로 시험한 뒤 가장 좋은 조합만 보여주면 과최적화가 발생합니다. 두 시리즈의 결과를 결합할 때는 다음 조건이 같아야 합니다.

  • 같은 종목 유니버스
  • 같은 가격·재무 데이터의 기준일
  • 같은 미래 정보 차단 규칙
  • 같은 체결 시점과 비용
  • 같은 리밸런싱 주기와 평가 기간

이 중 하나라도 다르면 “기본적 분석으로 후보를 고르고 기술적으로 진입하면 우월하다”는 비교는 성립하지 않습니다. 현재 공개된 기본적 분석 결과에는 발표일 기반의 완전한 point-in-time 처리가 확인되지 않으므로, 통합 성과도 확정 결론으로 제시하지 않습니다.

universe["fundamental_rank"] = (
universe.groupby("industry")["composite_score"]
.rank(pct=True)
)
universe["trend_ok"] = universe["ma20"] > universe["ma60"]
eligible = universe[
(universe["fundamental_rank"] <= 0.25)
& universe["trend_ok"]
]

이 규칙을 과거에 반복 적용할 때는 매월 기준일에 계산하고 다음 거래일에 체결해야 합니다. 결합 전후의 종목 수, 산업 노출, turnover, 최대낙폭을 함께 기록해야 “수익률이 좋아졌다” 이상의 설명이 가능합니다.

이번 탐색에서 저PER·저PBR·복합 점수는 고평가 그룹과 다른 결과를 보였지만, 그 차이는 기간·업종·데이터 시점에 의존합니다. ROE·성장·배당은 기업의 질을 이해하는 데 도움이 되지만 가격과 현금흐름을 대체하지 않습니다. 백테스트는 유용하지만, 발표일과 체결을 통제하지 않으면 과거에만 존재하는 전략이 됩니다.

기본적 분석을 실제 의사결정에 사용할 때의 순서는 다음과 같습니다.

  1. 공시 시점이 확인된 재무 데이터를 사용합니다.
  2. 같은 산업 안에서 가치·퀄리티·성장을 비교합니다.
  3. 현금흐름과 부채로 가치 함정을 걸러냅니다.
  4. 스크리닝 결과를 검토 목록으로만 사용합니다.
  5. 비용·낙폭·실패 구간까지 포함한 out-of-sample 테스트를 합니다.

결국 기본적 분석의 목표는 “좋은 종목 하나를 맞히는 것”이 아니라, 어떤 정보로 어떤 위험을 감수하는지 설명 가능한 규칙을 만드는 것입니다.


이 글은 교육 및 연구 목적의 자료이며 특정 종목의 매수·매도를 권유하지 않습니다. 과거의 백테스트 결과는 미래 수익을 보장하지 않습니다.