1. 배경
작년부터 포트폴리오 리밸런싱을 적극적으로 해보려고 구글 시트로 작업을 해뒀는데, 주가와 금값이 크게 출렁이기 시작하면서 손도 못 댄 채 지금까지 와버렸다. 그때 AI가 옆에서 적극적으로 등을 떠밀어 줬다면 리밸런싱도 성공하고 마음도 한결 편했을 것이다.
그래서 포트폴리오 리밸런싱을 도와주는 시스템을 만든다. 단순히 "비중이 높으니 팔아라/사라" 수준이 아니라, 매도하는 금액에 맞춰 포트폴리오 안에서 가장 저평가된 종목을 골라 복잡한 계산 없이 매도 → 매수로 곧바로 이어주는 가이드가 목표다.
2. 목표
- 정해진 시간에 리밸런싱 점검 결과를 알림으로 받는다.
- 비중이 초과한 종목을 매도하고, 그 자리에 저평가된 보유 종목을 매수하는 "교체" 가이드를 받는다.
- 현재 포트폴리오 상태(초과/미달/적정)를 온라인에서 확인한다.
3. 산출물 (2단계)
- 1차 — 정시 알림 (텔레그램): 매 거래일 오전 7:30(KST) 에 텔레그램 봇으로 푸시한다. 알림 내용:
- 버킷·종목별 현재 비중과 초과/미달 현황
- 버킷 드리프트(예: 금이 목표 +X%p 초과) 표시
- 리밸런싱 조건 성립 시 교체 가이드("코카콜라 N주 팔고 엔비디아 M주 매수")
- 7:30은 국장 시작 전이라 확인이 가능하고, 미국장 종가(KST 새벽 5~6시 마감) 반영 후라 데이터도 최신.
- 2차 — 온라인 조회 (Streamlit Community Cloud): 깃허브 레포에 연결해 무료로 배포. 서버 불필요, Streamlit이 호스팅하고 streamlit.app 공개 URL을 발급. 뷰어 허용 목록으로 본인만 보게 제한 가능. 제약: 앱당 약 1GB 리소스, 미사용 시 슬립.
- 화면 구성: 종목·버킷별 현재 비중 / 목표 비중 / 차액을 나란히 표시(기존 구글 시트의 목표·현재·차액 뷰를 실시간 가격으로 재현).
- 보유 수량 편집 가능 — 실제 보유가 바뀌면 대시보드에서 수량을 조정한다.
- 데이터 흐름: 목표 비중은 고정 설정값, 현재 보유 수량은 사용자가 관리, 현재 비중은 (수량 × 실시간 가격)으로 자동 산출. 초기엔 현재 = 목표로 맞춰 시작하고, 이후 실제 보유로 업데이트.
4. 포트폴리오 구조 (목표 비중)
| 버킷 |
목표 비중 |
세부 목표 |
| 지수 투자 |
50% |
QQQ 25% / VOO 25% |
| 미래 투자 |
10% |
BOTZ 5% / NASA 5% |
| 미국 직접 투자 |
30% |
10종목 균등 3%씩 |
| 금 투자 |
10% |
KRX 금 |
- 직접투자 10종목: GOOG, MSFT, AAPL, NVDA, TSLA, ASML, PLTR, TSM, KO, LLY (각 3%)
- 발표용 시트는 보유 종목수를 목표 비중에 맞춰 표시한다(실제 현황 대신 균형 잡힌 상태). 실제 종목수는
(목표비중 × 총액) ÷ 현재가로 계산.
5. 리밸런싱 구조 — 2층 모델
- 1층 (버킷 간): 지수·미래·금 버킷의 ETF/금은 개별 밸류에이션을 매기지 않고 목표 비중으로만 채우고 덜어낸다.
- 2층 (직접투자 버킷 안): 개별주를 저평가 점수로 교체한다. "초과 종목을 팔고 가장 저평가된 종목을 산다"는 로직은 이 층에서만 작동한다.
6. 저평가 점수 체계 (직접투자 버킷 전용)
이론적 뼈대는 가치투자의 안전마진(margin of safety) — 가격을 과거 가격이 아니라 공정가치 기준에 비교하고, 함정과 칼날을 걸러낸다. 세 기둥으로 구성한다.
6-1. 가치 점수 — 지표 묶음 (C + EV/Sales + PEG)