퀀트 전략을 검증하고 월별 수익률을 계산했다면, 이제 그것을 보기 좋게 리포트 형태로 정리하는 단계가 필요합니다.
보통은 엑셀이나 텍스트로 보고하곤 하지만, 투자자에게 제출하거나 백테스트 결과를 문서화할 때는 PDF 리포트가 가장 신뢰도 있어 보입니다.
그렇다면 매번 손으로 복사 붙여넣기를 해야 할까요? 그럴 필요 없습니다.
파이썬으로 작성한 수익률 리포트를 PDF로 자동 저장하면, 매월 또는 전략별로 “한 줄 실행”만으로 문서를 만들어낼 수 있습니다.
이번 글에서는 FPDF라는 파이썬 PDF 생성 라이브러리를 이용해 월별 수익률 테이블, 누적 수익률, 전략 요약 등을 포함한 PDF 리포트를 자동 생성하는 방법을 알려드리겠습니다.
1. 필요한 라이브러리 설치와 환경 구성
우선 PDF 생성에 필요한 라이브러리를 설치합니다.
대표적으로 fpdf2라는 라이브러리를 사용할 예정입니다.
pip install fpdf pandas
또한 이전에 만든 월별 수익률 테이블을 기반으로 PDF를 생성할 것이므로
이전 글에서 저장한 pivot_table 데이터를 불러와서 활용하는 구조로 이어집니다.
import pandas as pd
from fpdf import FPDF
데이터 예시:
pivot_table = pd.read_csv("monthly_returns.csv", index_col=0)
예를 들어 아래와 같은 구조의 테이블입니다:
Year | 1월 | 2월 | 3월 | ... | 11월 | 12월 |
2023년 | 3.24% | 1.52% | -1.10% | ... | 1.80% | 2.99% |
2024년 | 1.85% | -0.85% | 3.77% | ... | -0.90% | 4.73% |
이 테이블을 PDF로 변환해 저장해보겠습니다.
2. PDF 리포트 생성 클래스 만들기 (FPDF 활용)
이제 FPDF 클래스를 확장해서 커스텀 리포트 클래스를 만들어봅니다.
class PDFReport(FPDF):
def header(self):
self.set_font("Arial", "B", 14)
self.cell(0, 10, "퀀트 전략 월별 수익률 리포트", ln=True, align="C")
self.ln(10)
def footer(self):
self.set_y(-15)
self.set_font("Arial", "I", 8)
self.cell(0, 10, f"페이지 {self.page_no()}", align="C")
def add_table(self, df):
self.set_font("Arial", size=10)
col_width = 25
row_height = 8
# 헤더 출력
for col in df.columns:
self.cell(col_width, row_height, str(col), border=1)
self.ln(row_height)
# 데이터 출력
for index, row in df.iterrows():
self.cell(col_width, row_height, str(index), border=1) # 연도 (행 인덱스)
for item in row:
self.cell(col_width, row_height, str(item), border=1)
self.ln(row_height)
3. PDF 저장 실행 코드
위 클래스를 활용해 실제로 PDF를 생성하고 저장해보겠습니다.
# PDF 객체 생성
pdf = PDFReport()
pdf.add_page()
# 테이블 삽입
pdf.add_table(pivot_table)
# 저장
pdf.output("quant_report.pdf")
print("PDF 리포트가 저장되었습니다.")
이 코드를 실행하면 현재 폴더에 'quant_report.pdf'라는 문서가 자동으로 생성됩니다.
문서에는 상단에 제목이 들어가고, 아래에는 월별 수익률이 정리된 표가 들어갑니다.
이 기능을 활용하면 매달 전략 리밸런싱 후
월별 성과 요약을 투자일지나 고객 보고서 형태로 출력하는 데 매우 유용합니다.
4. 리포트 자동화 확장 – 여러 전략 일괄 처리도 가능
만약 전략이 여러 개라면, 각각의 전략별 리포트를 자동 생성하도록 확장할 수도 있습니다.
예를 들어 폴더에 다음과 같은 CSV 파일들이 있다고 가정해 봅니다:
- strategy_PERPBR.csv
- strategy_MOM.csv
- strategy_LowVol.csv
아래와 같이 반복 처리 루틴을 작성해 각 전략의 PDF를 자동 생성할 수 있습니다.
import os
for file in os.listdir("strategies"):
if file.endswith(".csv"):
strategy_name = file.replace(".csv", "")
df = pd.read_csv(f"strategies/{file}", index_col=0)
pdf = PDFReport()
pdf.add_page()
pdf.set_font("Arial", "B", 12)
pdf.cell(0, 10, f"전략명: {strategy_name}", ln=True)
pdf.ln(5)
pdf.add_table(df)
pdf.output(f"reports/{strategy_name}_report.pdf")
print(f"{strategy_name} 리포트 저장 완료.")
이제 수십 개 전략의 리포트를
단 몇 초 만에 PDF로 생성하고 아카이빙할 수 있습니다.
✅ 마무리 – 전략 수익률 문서화의 자동화는 ‘신뢰’를 만든다
퀀트 전략은 수익률 못지않게 그 성과를 ‘어떻게 전달하는가’가 중요한 영역입니다.
특히 실전 운용을 목표로 한다면 전략별 리포트를 명확하고 깔끔하게 보여주는 것은
투자자 신뢰와 시스템 운영의 핵심입니다.
이번 글에서 소개한 방식은 단순한 수익률 계산을 넘어서 파이썬으로 실전 수준의 전략 리포트 자동화 구조를 만드는 시작점이 될 수 있습니다.
👉 다음 글에서는 여기에 누적 수익률 그래프, MDD 시각화, 전략 개요 텍스트까지 포함해 PDF 전략 보고서 완성본 만들기로 확장해보겠습니다.
'Quant' 카테고리의 다른 글
파이썬으로 월별 수익률 리포트 자동 생성하기 (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 |
[퀀트 플랫폼] ③ 퀀터스 - 단계별 설정 방식과 다양한 전략 분석 (0) | 2025.06.27 |
[퀀트 플랫폼] ② 젠포트 - 다양한 지표 설정을 지원하는 Tool (1) | 2025.06.26 |