퀀트 투자의 가장 강력한 무기는 누구나 접근 가능한 공개 지표만 사용하는 것이 아니라, 직접 계산한 커스텀 팩터를 바탕으로 차별화된 전략을 만드는 데 있습니다.
이러한 팩터는 기존의 PER, PBR처럼 단순한 지표가 아닌, 복수의 데이터를 조합해 만들어낸 투자자의 논리를 담은 계산식입니다.
예를 들어, PFCR, PEG, NCAV는 네이버 금융이나 증권사 리포트에서는 흔히 볼 수 없는 지표지만 퀀트 투자자들 사이에서는 실전 전략에 자주 사용되는 유의미한 신호입니다.
이번 글에서는 커스텀 팩터를 사용해 종목을 스코어링하고, 상위 종목으로 포트폴리오를 구성하는 전략을 파이썬으로 구현하는 방법을 단계별로 안내하겠습니다.
특히 코드 작성에 익숙하지 않은 분들도 이해할 수 있도록 쉽게 설명드리겠습니다.
1. 커스텀 팩터 조합 아이디어 – 전략적 구성
먼저 어떤 팩터를 사용할지 선정하고, 그것을 어떤 방식으로 조합할 것인지 전략을 구상해야 합니다.
이번 예시에서는 다음 세 가지 팩터를 사용합니다.
- PFCR (시가총액 / 영업현금흐름) – 현금 창출력 대비 저평가 여부
- PEG (PER / EPS 성장률) – 성장성 반영 가치 지표
- NCAV ((유동자산 - 총부채) / 시가총액) – 안전마진 기반 절대저평가
이 팩터들은 단독으로도 강력하지만, 서로 상반된 성격을 가질 수 있어 조합했을 때 더욱 효과적인 필터링이 됩니다.
예를 들어, PEG는 성장 중심 팩터이고, NCAV는 전통적 가치 중심 팩터이기 때문입니다.
각 팩터별로 순위를 매겨서 점수화하고, 총점을 기준으로 상위 종목을 선별하는 것이 기본 전략입니다.
2. 실전 코드 – 종목 스코어링 및 포트폴리오 선별
아래는 커스텀 팩터 3종을 계산하고 점수화하여 포트폴리오를 구성하는 파이썬 예제 코드입니다.
(데이터는 가상의 예시입니다. 실제 운용 시에는 네이버 금융, DART 등에서 수집한 CSV 기반으로 구성 가능합니다.)
import pandas as pd
# 가상의 재무 데이터
df = pd.DataFrame({
"종목명": ["A기업", "B기업", "C기업", "D기업"],
"시가총액": [5000, 8000, 3000, 10000],
"영업현금흐름": [900, 600, 500, 1200],
"PER": [10.0, 15.5, 8.3, 12.1],
"EPS_작년": [200, 180, 150, 220],
"EPS_올해": [250, 210, 180, 250],
"유동자산": [7000, 9000, 5000, 11000],
"총부채": [3000, 4000, 2500, 5000],
})
# 커스텀 팩터 계산
df["PFCR"] = df["시가총액"] / df["영업현금흐름"]
df["EPS성장률"] = (df["EPS_올해"] - df["EPS_작년"]) / df["EPS_작년"]
df["PEG"] = df["PER"] / (df["EPS성장률"] * 100)
df["NCAV"] = (df["유동자산"] - df["총부채"]) / df["시가총액"]
# 각 팩터별 순위 산정 (낮을수록 좋음)
df["PFCR_순위"] = df["PFCR"].rank()
df["PEG_순위"] = df["PEG"].rank()
df["NCAV_순위"] = df["NCAV"].rank(ascending=False)
# 총합 점수 계산
df["총점"] = df["PFCR_순위"] + df["PEG_순위"] + df["NCAV_순위"]
# 점수 기준 상위 종목 선정
portfolio = df.sort_values("총점").head(2) # 상위 2개 종목 구성
print(portfolio[["종목명", "PFCR", "PEG", "NCAV", "총점"]])
이 코드를 실행하면,
3가지 커스텀 팩터를 조합해 스코어링한 후 상위 종목만 골라 포트폴리오를 구성할 수 있습니다.
3. 리밸런싱과 적용 주기 설정
실전에서는 단순히 한번 구성하고 끝내는 것이 아니라, **정해진 주기에 따라 리밸런싱(재구성)**을 해주는 것이 핵심입니다.
많은 퀀트 전략에서는 월 1회 또는 분기 1회 리밸런싱 주기를 선택합니다.
리밸런싱 시 필요한 것은 다음과 같습니다.
- 최신 재무 데이터 업데이트 (네이버 금융 크롤링 또는 DART API)
- 커스텀 팩터 재계산
- 동일 방식의 스코어링 및 포트 구성
- 기존 포트와 비교하여 편출입 종목 파악
또한 리밸런싱 주기마다 리포트를 PDF로 출력하거나 익셀에 저장하는 루틴을 함께 작성하면 장기 추적 관리에 도움이 됩니다.
4. 전략 평가 및 개선 방향
커스텀 팩터 조합 전략이 정말 유효한지 판단하려면, **과거 수익률(백테스트)**를 통해 성과를 검증해야 합니다.
포트폴리오 구성 이후 아래 지표들을 측정해 평가할 수 있습니다.
- 연복리 수익률 (CAGR)
- 최대 낙폭 (MDD)
- 샤프 지수 (Sharpe Ratio)
- 리밸런싱 간 평균 수익률
- 종목 유지율, 변동성
이러한 지표는 파이썬으로 쉽게 자동화할 수 있으며, 앞서 구성한 포트폴리오에서 일자별 수익률을 누적 계산해 차트로 시각화하거나, 지표 표로 PDF에 삽입하는 것도 가능합니다.
궁극적으로는 자신만의 커스텀 팩터 라이브러리를 구축하고 각 전략의 성과를 비교 분석하는 것이 퀀트 투자자로서의 완성 단계입니다.
✅ 마무리 – 나만의 팩터 조합이 결국 알파를 만든다
퀀트 투자는 누구나 할 수 있지만, 자신만의 팩터 조합을 설계하고, 그것을 구조화된 전략으로 실현하는 사람만이 알파를 만들어냅니다.
커스텀 팩터는 단순한 계산이 아니라, 시장에 대한 통찰과 투자 철학이 반영된 도구입니다.
이번 글에서 소개한 PFCR, PEG, NCAV 전략은 단독으로도 유효할 수 있지만, 이들을 조합하고 점수화한 전략은 더 강력한 분산 효과와 리스크 관리 능력을 가질 수 있습니다.
👉 다음 글에서는 이렇게 구성한 커스텀 전략을 엑셀 또는 구글 스프레드시트에 자동 반영하여 실시간 수익률을 추적하는 방법도 소개드리겠습니다.
'Quant' 카테고리의 다른 글
수익률 그래프와 MDD 시각화 포함한 PDF 리포트 완성하기 (0) | 2025.07.01 |
---|---|
파이썬 수익률 리포트를 PDF로 자동 저장하기 (1) | 2025.06.30 |
파이썬으로 월별 수익률 리포트 자동 생성하기 (0) | 2025.06.30 |
파이썬 퀀트 – 수집한 종가 데이터로 CAGR, MDD 계산하기 (0) | 2025.06.29 |
PER+PBR 점수 전략 구현 – 파이썬 실전 코드 예시 (1) | 2025.06.29 |
파이썬을 활용한 코스피·코스닥 전 종목 10년 종가 데이터 가져오기 (0) | 2025.06.28 |
파이썬으로 만드는 나만의 퀀트 백테스트 시스템 – 기초부터 시작 (0) | 2025.06.28 |
엑셀로 퀀트전략 백테스트 하는 법 – 코스피·코스닥 종목 다운로드부터 수익률 계산까지 (0) | 2025.06.27 |