들어가며
6편까지 주식 정보 사이트를 완성했다. 데이터를 보여주는 건 이제 할 수 있다. 그런데 결국 투자자의 고민은 하나다:
"그래서 뭘 사야 하는데?"
3,970종목을 매일 하나하나 분석하는 건 불가능하다. 그래서 자동으로 좋은 종목을 골라주는 시스템이 필요했다. 소위 퀀트(Quant) 전략 — 사람의 감이 아니라 숫자와 규칙으로 종목을 고르는 방식이다.
이번 편에서는 퀀트 전략을 어떻게 만들고, 어떻게 검증하고, 매일 자동으로 종목을 추천하는 시스템을 구축했는지 다룬다.
사실 나의 최종 목표는 다양한 퀀트 전략을 만들고 웹에서 바로 검증하며 이를 실전투자로 활용하는 것이다. 따라서 가장 신경쓰고 공을 들여서 만든 것이 바로 이 퀀트 투자 페이지라 할 수 있다. 사이트 구현에 투자된 시간중 1/2은 이곳에 투자되었다. 전략 하나 만들고 매수/매도 로직 체크하고, 거래 원장 검증하고 테스트 하는데 보통 5시간 이상은 꼬박 걸린다. 더 어려운 것은 5시간을 투자해도 성공전략이라는 보장이 없다. AI를 활용해서 백테스트만 수천번 돌려도 실패하는 전략만 무수히 쏟아진다.
퀀트 투자란
쉽게 말하면 "이런 조건을 만족하는 종목을 사라"는 규칙을 정해놓고, 그 규칙대로만 투자하는 것이다.
예를 들어:
"PBR 1 이하, ROE 10% 이상, 시총 1,000억 이상인 종목 중에서 최근 3개월 수익률 상위 10개를 사라"
이런 규칙을 세워놓으면 매일 컴퓨터가 자동으로 종목을 골라준다. 감정에 흔들리지 않고, 일관된 기준으로 투자할 수 있다는 게 장점이다.
물론 규칙 자체가 잘못되면 의미가 없다. 그래서 백테스트가 필요하다 — 과거 데이터로 "이 규칙대로 투자했으면 결과가 어땠을까?"를 시뮬레이션하는 것이다.
퀀트 투자 용어 정리
이 글에서 자주 나오는 용어들을 먼저 정리한다. 주식 초보라도 이것만 알면 이후 내용을 따라갈 수 있다.
재무 평가 지표
| 용어 | 뜻 | 쉽게 풀어서 |
| PER | Price to Earnings Ratio (주가수익비율) |
주가 ÷ 주당순이익. 낮을수록 저평가. "이 회사가 버는 돈 대비 주가가 싼가?" |
| PBR | Price to Book Ratio (주가순자산비율) |
주가 ÷ 주당순자산. 1 이하면 자산보다 싸게 거래되는 것. "회사를 청산하면 주가보다 돈이 더 남는다" |
| ROE | Return on Equity (자기자본이익률) |
순이익 ÷ 자기자본 × 100. 높을수록 돈을 잘 버는 회사. "주주가 맡긴 돈으로 얼마나 벌었나?" |
| EPS | Earnings Per Share (주당순이익) |
순이익 ÷ 발행주식수. "주식 1주당 벌어들인 돈" |
| BPS | Book value Per Share (주당순자산) |
순자산 ÷ 발행주식수. "주식 1주가 가진 실제 자산 가치" |
| 시가총액 | 주가 × 발행주식수 | 회사의 전체 가치. 삼성전자가 400조, 동네 중소기업이 500억 |
| 영업이익률 | 영업이익 ÷ 매출 × 100 | "매출 중 실제로 남는 이익의 비율". 높을수록 장사를 잘하는 것 |
투자 전략 용어
| 용어 | 뜻 |
| 밸류(Value) | 저평가된 종목을 찾는 관점. PER·PBR이 낮은 종목에 투자 |
| 퀄리티(Quality) | 실적이 좋은 종목을 찾는 관점. ROE·영업이익률이 높은 종목에 투자 |
| 모멘텀(Momentum) | 최근 주가가 오르고 있는 종목이 계속 오르는 경향. "추세를 따라간다" |
| 변동성(Volatility) | 주가가 얼마나 출렁이는지. 변동성이 낮으면 안정적, 높으면 위험하지만 수익 기회도 큼 |
| 수급 | 외국인·기관·개인의 매수/매도 흐름. "큰손이 사고 있는가?" |
| 리밸런싱 | 정해진 주기(주 1회, 월 1회, 분기 1회 등)마다 종목을 새로 골라 교체하는 것 |
| 벤치마크 | 비교 기준. 보통 KOSPI 200 지수를 기준으로 "이 전략이 시장 평균보다 나은가?" 판단 |
검증 관련 용어
| 용어 | 뜻 |
| 백테스트 | 과거 데이터로 전략을 시뮬레이션. "2015년부터 이 규칙대로 했으면 얼마 벌었을까?" |
| 과적합(Overfitting) | 과거에만 맞는 전략. 과거 수능 시험지 풀어보면 쉬운데? 지금 현재 수능 시험 보면 망하는 원리 |
| PIT (Point-In-Time) | 백테스트 시 해당 시점에 실제로 알 수 있었던 데이터만 쓰는 것. 미래 정보 유입 방지 |
성과 측정 지표
| 용어 | 뜻 | 쉽게 풀어서 |
| CAGR | Compound Annual Growth Rate (연평균 복합 성장률) | 투자 기간 전체를 연 단위로 환산한 수익률. "10년간 총 100% 벌었다"보다 "연평균 7.2% 벌었다"가 비교하기 쉽다 |
| MDD | Maximum Drawdown (최대 낙폭) |
고점에서 저점까지 최대 얼마나 빠졌는지. MDD -30%면 "최악의 경우 100만 원이 70만 원까지 떨어졌다"는 뜻. 낮을수록 안전 |
| 샤프 지수 (Sharpe Ratio) |
(수익률 - 무위험 수익률) ÷ 변동성 | "위험 대비 얼마나 벌었나"를 나타내는 효율 지표. 1 이상이면 양호, 2 이상이면 우수. 수익이 높아도 변동성이 크면 낮게 나온다 |
| 소르티노 지수 (Sortino Ratio) | 샤프 지수와 비슷하지만 하락 변동성만 계산 | 샤프는 오르내림 전부를 리스크로 보지만, 소르티노는 "떨어질 때만" 리스크로 본다. 투자자 입장에서 더 현실적 |
| 승률 (Win Rate) | 전체 거래 중 수익이 난 비율 | 10번 중 6번 올랐으면 승률 60%. 단, 승률이 높아도 손실이 크면 총 수익은 마이너스일 수 있다 |
| 손익비 (Profit Factor) | 총 이익 ÷ 총 손실 | 1보다 크면 이익이 손실보다 많다는 뜻. 2.0이면 "번 돈이 잃은 돈의 2배" |
| 알파 (Alpha) | 벤치마크 대비 초과 수익률 | KOSPI가 10% 올랐는데 전략이 15%면 알파 = +5%. "시장보다 얼마나 더 벌었나" |
| 베타 (Beta) | 시장 대비 민감도 | 베타 1.2면 시장이 10% 오를 때 12% 오르고, 10% 빠질 때 12% 빠진다. 1보다 크면 시장보다 출렁임이 크다 |
| 턴오버 (Turnover) | 리밸런싱 시 교체되는 종목 비율 | 30종목 중 매달 20개가 바뀌면 턴오버 67%. 높으면 매매 수수료가 많이 든다 |
개인적인 경험상 MDD가 -30% 미만이면 견디기 힘들었다. 그래서 MDD -30% 미만의 전략은 다른 수치가 아무리 높아도 폐기했다.
이 용어들이 이후 전략 설명에서 계속 나온다. 모르는 게 나오면 여기로 돌아오면 된다.
3가지 월간 전략
성향이 다른 3가지 전략을 만들었다. 한 가지만 따르는 것보다 여러 전략을 비교하면서 판단하는 게 낫다.
기본 아이디어는 내가 만들고 제안했으나 상세 전략 구현은 AI가 진행했다.
1. 안정형 (LVQ)
Low Volatility + Quality의 약자. "변동성 낮고 실적 좋은 종목"을 고르는 전략이다.
- 주가 변동이 적은 종목 (휘청거리지 않는 안정적인 종목)
- ROE 높고 영업이익률 좋은 종목 (실질적으로 돈 잘 버는 종목)
- 두 점수를 합산해서 상위 종목을 추천
폭발적인 수익보다는 꾸준히, 안정적으로 가는 전략. 보수적인 투자자에게 적합하다.
2. 최대수익형 (섹터VQ)
Sector Value + Quality. "업종별로 저평가된 우량주"를 고른다.
- 같은 업종 안에서 상대적으로 싸면서 실적이 좋은 종목
- 업종 내 비교라서, "반도체는 비싸고 금융은 싸다" 같은 업종 간 차이를 보정
- 리스크가 있지만 수익률도 높은 공격적 전략
3. 중수익형 (모멘텀가드)
Momentum + Guard. "오르고 있는 종목 중에서 안전장치가 있는 것"만 고른다.
- 최근 상승 추세가 뚜렷한 종목 (모멘텀)
- 하지만 너무 과열되지 않은 것만 (가드)
- 추세를 따라가되, 무리하지 않는 중도적 전략
이 3개 전략이 첫 번째 세대(v1)다. 다양한 팩터(변동성, 섹터, 모멘텀)를 조합해서 성격이 다른 전략을 만들었다는 데 의미가 있었지만, 한 가지 약점이 있었다 — PIT(Point-In-Time) 검증이 완벽하지 않았다.
v2: 새 전략 3개 추가 - PIT 검증 완료
기존 3개 전략에 더해, PIT 검증을 철저하게 통과한 새 전략 3개를 추가했다. 총 6개 전략 체제로 확대된 것이다.
새 전략은 모두 저PBR + 고ROE라는 핵심 팩터에 집중한다. 8편에서 자세히 다루겠지만, 수백 번의 백테스트를 거쳐서 찾은 팩터 조합이 바로 이것이었다.
4. KOSDAQ 소형주 밸류 (최대수익)
KOSDAQ 소형주 중에서 저PBR/고ROE 상위 12종목에 집중 투자하는 전략이다.
- PBR 50% + ROE 50% 가중치로 랭킹 스코어링
- filing_date 기반 PIT 검증 완료
- 시장 타이밍 없이 항상 풀 투자 - 시장이 빠져도 버티면서 수익을 극대화
- CAGR 25.42%, MDD -29.35%, 샤프비율 1.18
6개 전략 중 가장 공격적이다. 소형주에 집중하는 만큼 변동성이 크지만, 장기적으로 가장 높은 수익률을 기대할 수 있다.
5. KOSDAQ 밸류 안정형 (중수익)
같은 KOSDAQ 소형주 기반이지만, 시장 방어 장치를 추가한 전략이다.
- PBR 45% + ROE 55% 가중치로 랭킹 - 퀄리티(ROE)에 약간 더 비중
- filing_date 기반 PIT 검증 완료
- 120일 이동평균선 하회 시 전량 현금 전환 - 하락장에서 빠지는 안전장치
- CAGR 18.49%, MDD -15.37%, 샤프비율 1.32
최대수익형보다 CAGR은 낮지만, MDD가 -15%로 절반 수준이다. 수익과 안정성의 균형이 가장 좋다. 샤프비율 1.32는 6개 전략 중 최고다.
6. 전체시장 퀄리티 안정형 (안정화)
KOSDAQ만이 아니라 KOSPI+KOSDAQ 전체 시장을 대상으로 하는 전략이다.
- PBR 40% + ROE 60% 가중치 - 퀄리티(ROE)에 가장 높은 비중
- date lag 60일 PIT 적용
- 120일 이동평균선 하회 시 전량 현금 전환
- CAGR 17.05%, MDD -20.36%, 샤프비율 1.11
전체 시장을 대상으로 하기 때문에 대형주도 포함된다. KOSDAQ 전략보다 수익률은 낮지만, 유동성이 좋은 종목 비율이 높아서 실전 매매가 더 수월하다.
v1 vs v2 비교
구분v1 (기존 3개)v2 (새 3개)
| 구분 | V1 (기존 3개 전략) | V2 (새로운 3개 전략) |
| PIT 검증 | 의식했으나 filing_date 미적용 | filing_date 또는 date lag 60일 적용 |
| 핵심 팩터 | 변동성, 섹터, 모멘텀 등 다양 | 저PBR + 고ROE에 집중 |
| 시장 범위 | 전체 시장 | KOSDAQ 소형주 또는 전체 시장 |
| 백테스트 기간 | 2015년~ | 2016년 3월~ (재무데이터 한계) |
| 검증 강도 | 기본 백테스트 | 50회+ 반복 백테스트, 4차 검증 |
v2 전략의 백테스트 시작이 2016년 3월인 이유는 간단하다. filing_date 기반 PIT를 적용하려면 실적 공시일 데이터가 필요한데, 이 데이터가 2016년부터 존재하기 때문이다. PIT 정확도를 위해 백테스트 기간을 희생한 것이다.
백테스트 - 과거로 돌아가서 검증
"이 전략이 진짜 돈이 되나?"를 확인하려면 과거 데이터로 시뮬레이션해야 한다.
예를 들어 LVQ 전략을 2015년부터 적용했으면 어떤 결과가 나왔을까?
- 2015년 1월: 전략 기준으로 종목 30개 선정
- 1개월 보유 후 매도, 다시 30개 선정
- 이걸 2026년까지 반복
- 매달 수익률을 기록하고, KOSPI 200 지수와 비교
결과가 "10년간 KOSPI 200보다 연평균 5% 높았다"라면 의미 있는 전략이다. 반대로 KOSPI보다 못 했다면 "그냥 ETF 사는 게 낫다"는 결론이 나온다.
6개 전략 모두 백테스트를 통과한 것만 사이트에 올렸다. 백테스트에서 기준 이하인 전략은 아무리 아이디어가 좋아도 탈락시켰다.
일일 추천 - 매일 TOP 5를 자동 산출
월간 전략 외에 매일 갱신되는 일일 추천도 만들었다. 3가지 관점에서 매일 TOP 5를 뽑는다:

1. 종합점수
거래대금, 재무, 모멘텀, 수급, 차트 패턴을 종합적으로 점수화해서 상위 5종목을 추천한다. 가장 균형 잡힌 관점이다.
2. 숨은 가치주
재무는 우량한데 주가가 아직 저평가된 종목. 시장이 아직 주목하지 않은 잠재력 있는 종목을 찾는다.
3. 인기 폭발
거래량이 갑자기 급증하면서 모멘텀과 수급이 몰리는 종목. 추세를 빠르게 따라가는 스타일이다.
안전장치
무조건 추천만 하는 게 아니라 안전장치도 넣었다:
- 쿨다운: 한 번 추천된 종목은 5거래일간 재추천하지 않는다. 같은 종목만 계속 나오는 걸 방지
- 최소 기준: 시총, 거래대금이 일정 수준 이하면 제외. 너무 소형주나 유동성 부족 종목은 위험하니까
- 시장 국면 판단: 시장 전체가 급락 중이면 추천을 중단하고, 대신 인버스 ETF를 제안한다
성과 추적 - 추천한 종목이 진짜 올랐나?
추천만 하고 끝이면 무책임하다. 핵심은 "추천한 종목이 실제로 얼마나 올랐는지"를 추적하는 것이다.
시장 지수 대비 수익률을 비교하는 것이 공정하다. 시장 지수를 벤치마크 삼는 것은 일반적인 펀드에서도 많이 사용하는 방식이다.
일정 기간(1~3개월 예상) 추적을 진행한 후 전략이 안좋으면 추천 로직을 변경해야 한다.
일일 검증
매일 장 마감 후, 전날 추천한 종목의 수익률을 자동으로 기록한다. "어제 추천한 5종목이 오늘 평균 +1.2% 올랐다" 같은 데이터가 쌓인다.
월별 확정
월말이 되면 한 달치 성과를 확정한다. "3월에 추천한 종목들이 평균 +8.5%였다" 같은 월별 이력이 누적된다.
백테스트 vs 실제
백테스트에서는 연 15% 수익이었는데 실제로는 5%라면? 전략이 과적합(overfitting)됐다는 뜻이다 — 과거에만 잘 맞고 미래에는 안 통하는 전략이라는 의미.
백테스트 수익률과 실제 수익률을 나란히 비교할 수 있어서, 전략이 실전에서도 작동하는지 지속적으로 모니터링한다.
ETF 추천도 있다
개별 종목이 부담스러운 사람을 위해 ETF 추천도 만들었다. ETF는 여러 종목을 묶어놓은 상품이라 개별 종목보다 리스크가 분산된다. 일반 ETF 5개, 그리고 요즘 유행인 액티브 ETF를 5개 추천한다. 수익률, 거래대금, 변동성 등을 기준으로 매일 상위 ETF를 추천한다. "요즘 어떤 테마 ETF가 잘 나가는지" 확인하는 용도로도 쓸 수 있다.
화면에서 어떻게 보이나
퀀트 추천 페이지를 열면 탭으로 전략을 선택할 수 있다:
- 일일 추천 — 종합점수 / 숨은 가치주 / 인기 폭발 / ETF (매일 갱신)
- 월간 전략 — LVQ / 섹터VQ / 모멘텀가드 (월 1회 리밸런싱)
각 종목은 카드 형태로 보여준다. 종합점수, 세부 점수(밸류/퀄리티/모멘텀), 현재가, 등락률이 한눈에 보인다. 종목을 클릭하면 6편에서 만든 종목 상세 페이지로 바로 이동한다.
월간 전략에는 백테스트 수익률 차트와 월별 검증 이력도 함께 보여준다. "이 전략이 지금까지 어떤 성과를 냈는지" 투명하게 공개하는 것이다.
삽질 기록
백테스트의 함정 - 미래 데이터 유입
백테스트할 때 가장 조심해야 하는 게 "미래 정보를 몰래 쓰는 것"이다. 예를 들어 2020년 3월 시점에서 종목을 고르는데, 2020년 6월에 발표된 실적 데이터를 쓰면 안 된다. 당시에는 그 데이터가 없었으니까.
이걸 PIT(Point-In-Time) 처리라고 하는데, 실적 발표 시점을 정확히 지켜야 백테스트 결과를 믿을 수 있다. 이 처리를 빠뜨리면 백테스트에서는 수익이 나는데 실전에서는 전혀 안 되는 "환상의 전략"이 만들어진다.
소형주 유동성 문제
시총이 작은 종목이 퀀트 점수가 높게 나오는 경우가 많다. PBR이 엄청 낮고 ROE가 높은 종목 — 그런데 하루 거래대금이 1,000만 원도 안 되면 실제로 사고 팔 수가 없다. 거래대금 필터를 넣어서 유동성이 최소 수준 이상인 종목만 남기도록 했다.
시장 하락기에 전략이 무너진다
아무리 좋은 종목을 골라도, 시장 전체가 폭락하면 같이 빠진다. 2020년 코로나 급락, 2022년 금리 인상기에 백테스트 수익률이 크게 떨어졌다.
그래서 시장 전체의 추세를 판단하는 로직을 추가했다. 시장이 하락 추세일 때는 주식 비중을 줄이거나, 추천 자체를 중단한다. 완벽하진 않지만, 대형 손실을 줄이는 데 효과가 있었다. v2의 KOSDAQ 밸류 안정형과 전체시장 퀄리티 안정형이 120일 이동평균선을 시장 방어 장치로 쓰는 것도 이 교훈에서 나왔다.
같은 종목만 계속 나온다
쿨다운 없이 추천을 돌리면, 점수가 높은 종목이 매일 반복해서 나온다. "어제도 삼성전자, 오늘도 삼성전자" — 이러면 추천의 의미가 없다. 5거래일 쿨다운을 넣어서 다양한 종목이 나오도록 했다.
정리
- 6가지 월간 전략 - v1: 안정형(LVQ), 최대수익형(섹터VQ), 중수익형(모멘텀가드) / v2: KOSDAQ 소형주 밸류, KOSDAQ 밸류 안정형, 전체시장 퀄리티 안정형
- v1 vs v2 차이 - v2는 filing_date 기반 PIT 검증 완료, 저PBR+고ROE 팩터에 집중
- 일일 추천 3종 + ETF - 종합점수, 숨은 가치주, 인기 폭발, ETF 추천
- 백테스트 - 과거 데이터로 시뮬레이션, KOSPI 200 벤치마크 비교
- PIT의 중요성 - 미적용 시 CAGR 39% → 적용 시 3.9%, 90% 차이
- 성과 추적 - 매일 수익률 기록, 월별 확정, 백테스트 vs 실제 비교
- 안전장치 - 쿨다운, 유동성 필터, 시장 하락기 추천 중단, 120MA 방어
퀀트까지 포함해서 이 프로젝트의 주요 기능은 전부 소개했다. 이 시리즈를 통해 "데이터 수집 → DB → 백엔드 → 프론트엔드 → 종목 상세 → 퀀트 전략"까지, AI와 함께 주식 분석 플랫폼을 만드는 전 과정을 다뤘다.
개발 경험이 없어도 어느 정도 기획력과 판단 능력만 있으면 AI Agent와 함께 이정도 시스템을 만들 수 있다.
다음편은 퀀트 전략을 어떻게 만들었는지 소개하고 그 이후에는 어떤 기능들을 더 추가했는지 소개할 예정이다.
'바이브 코딩 > 주식 정보 분석 사이트 만들기' 카테고리의 다른 글
| 9편: 시장 지도를 통해 오늘의 주식 시황을 한 눈에 파악하기 (0) | 2026.03.18 |
|---|---|
| 8편: 퀀트 전략 삽질기 - 수많은 실패와 검증의 반복 (0) | 2026.03.17 |
| 6편: 종목 상세 페이지 - 종목의 모든 정보를 쉽게 찾아서 보자 (0) | 2026.03.16 |
| 5편: 모든 정보를 화면에서 보여주는 프론트엔드 만들기 (0) | 2026.03.15 |
| 4편: 데이터를 웹에서 보여주는 백엔드 서버 만들기 (0) | 2026.03.15 |