퀀트 투자에서 가장 널리 알려진 전략 중 하나는 **‘저PER + 저PBR 점수 기반 전략’**입니다.
PER(주가수익비율, Price to Earnings Ratio)과 PBR(주가순자산비율, Price to Book Ratio)은
주식이 ‘저평가’되었는지를 판단하는 핵심 지표입니다.
이 전략은 두 지표를 동시에 고려하여 값이 낮을수록 점수를 부여하고, 총 점수가 낮은 상위 종목을 포트폴리오로 구성합니다.
오늘은 이 전략을 파이썬으로 구현하는 전 과정을 코드와 함께 소개해드리겠습니다.
프로그래밍을 처음 접하는 분도 복사해서 실행할 수 있도록 친절히 구성했습니다.
1. 전략 개요와 사용 데이터 정리
먼저 구현할 전략의 조건은 다음과 같습니다:
- PER가 낮은 순으로 점수 부여 (낮을수록 1등)
- PBR도 마찬가지로 낮을수록 높은 점수
- 두 점수를 합산해 총합이 낮은 종목 상위 10개를 포트로 구성
데이터는 예제로 만든 가상의 종목 리스트를 사용하겠습니다.
실제로는 네이버금융, investing.com, 딥서치, FnGuide 등에서 수집한 데이터를 CSV 파일로 저장해서 불러올 수 있습니다.
엑셀에서 아래와 같은 CSV 파일을 만들고 저장합니다:
종목,PER,PBR
삼성전자,12.3,1.1
LG화학,8.7,0.9
현대차,11.5,0.8
POSCO홀딩스,6.2,0.6
셀트리온,32.1,3.2
...
이 파일을 data.csv로 저장한 후 파이썬에서 불러오겠습니다.
2. 파이썬 코드 – 점수 계산부터 종목 선정까지
아래 코드는 파이썬에서 직접 실행 가능한 버전입니다.
주피터 노트북이나 VSCode 등에서 사용하세요.
import pandas as pd
# 1. 데이터 불러오기
df = pd.read_csv("data.csv") # 같은 폴더에 data.csv 파일이 있어야 합니다
# 2. 결측치 제거 (PER, PBR이 없는 종목 제외)
df = df.dropna(subset=["PER", "PBR"])
# 3. PER 순위 계산 (낮을수록 높은 순위)
df["PER_score"] = df["PER"].rank(method="min")
# 4. PBR 순위 계산 (낮을수록 높은 순위)
df["PBR_score"] = df["PBR"].rank(method="min")
# 5. 점수 합산 (낮을수록 고평가)
df["total_score"] = df["PER_score"] + df["PBR_score"]
# 6. 점수 기준 상위 10개 종목 선정
result = df.sort_values("total_score").head(10)
# 7. 출력
print("<< PER + PBR 점수 상위 10종목 >>")
print(result[["종목", "PER", "PBR", "total_score"]])
✅ 실행 결과 예시 (출력 화면)
<< PER + PBR 점수 상위 10종목 >>
종목 PER PBR total_score
3 POSCO홀딩스 6.2 0.6 2.0
1 LG화학 8.7 0.9 4.0
2 현대차 11.5 0.8 6.0
0 삼성전자 12.3 1.1 8.0
...
이렇게 하면 가장 저평가된 종목 10개가 자동으로 계산됩니다.
엑셀보다 훨씬 빠르고 정확하게 결과를 얻을 수 있습니다.
3. 전략 확장: 리밸런싱과 성과 추적을 위한 기초
현재 코드는 ‘한 시점’ 기준으로만 종목을 선정합니다.
하지만 퀀트 전략의 핵심은 **정기적인 리밸런싱(포트 재구성)**입니다.
이를 위해선 다음과 같은 확장이 필요합니다:
- 날짜별로 PER/PBR 데이터를 수집 (예: 분기별, 월별)
- 매월 혹은 분기별로 위 코드를 반복 실행
- 종목별로 수익률 계산 → 누적 수익률 계산
이를 실현하려면
**야후파이낸스(yfinance)**나 KRX 데이터 API를 사용해
주가와 지표 데이터를 자동 수집하는 기능을 붙이면 좋습니다.
또한 백테스트 결과로는 아래 지표들을 함께 계산해볼 수 있습니다:
- CAGR (연복리 수익률)
- MDD (최대 낙폭)
- 승률 (리밸런싱마다 수익을 낸 비율)
- Sharpe Ratio (샤프지수): 위험 대비 수익률
다음 글에서 이 확장 기능을 소개해드릴 예정입니다.
4. 마무리 – 나만의 전략을 데이터로 검증해보자
이번 글에서는 파이썬으로
저PER + 저PBR 전략을 직접 구현하는 기본 흐름을 다뤘습니다.
지표 데이터를 불러오고, 점수를 부여하고, 상위 종목을 선정하는 과정까지
엑셀이나 플랫폼보다 유연하고 자유롭게 조정할 수 있는 장점이 있습니다.
처음에는 코드가 어렵게 느껴질 수 있습니다.
하지만 작은 전략부터 반복해서 실행하다 보면
점점 복잡한 조건, 리스크 관리, 리밸런싱까지 다루는 수준으로 발전하게 됩니다.
단순히 전략을 쓰는 투자자가 아니라
전략을 설계하고 증명하는 투자자가 되어보세요.
'Quant' 카테고리의 다른 글
파이썬 퀀트 – 수집한 종가 데이터로 CAGR, MDD 계산하기 (0) | 2025.06.29 |
---|---|
파이썬을 활용한 코스피·코스닥 전 종목 10년 종가 데이터 가져오기 (0) | 2025.06.28 |
파이썬으로 만드는 나만의 퀀트 백테스트 시스템 – 기초부터 시작 (0) | 2025.06.28 |
엑셀로 퀀트전략 백테스트 하는 법 – 코스피·코스닥 종목 다운로드부터 수익률 계산까지 (0) | 2025.06.27 |
[퀀트 플랫폼] ③ 퀀터스 - 단계별 설정 방식과 다양한 전략 분석 (0) | 2025.06.27 |
[퀀트 플랫폼] ② 젠포트 - 다양한 지표 설정을 지원하는 Tool (1) | 2025.06.26 |
[퀀트 플랫폼] ① 퀀트킹 - 단순하지만 강력한 퀀트 투자 시스템 (4) | 2025.06.25 |
퀀트 투자 지속적으로 실천하는 법 – 시스템화 전략 (1) | 2025.06.25 |