성장률·수익률을 주간 단위로 추적하기 — WoW·언더워터·샤프 근사·자동 스냅샷
월간 보고만으로는 흐름의 변곡을 놓치기 쉽습니다. 주간 단위(WoW)로 수익률·성장률을 추적하면, 언더워터(드로다운)와 변동성, 샤프 근사까지 한 눈에 보입니다. 오늘은 구글 시트로 ①데이터 구조 ②주간 KPI 수식 ③차트 ④금요일 21:00 자동 스냅샷/메일까지 세팅합니다.
1) 데이터 구조(주간 마감 기반)
열 | 라벨 | 예시/수식 | 설명 |
---|---|---|---|
A | WeekEnd | 2025-09-12 | 해당 주 금요일(마감일) |
B | StartBal | =OFFSET(E2,-1,0) | 전 주 EndBal |
C | Inflow | +500,000 | 입금(+)·출금(-) 분리 권장 |
D | Outflow | -120,000 | 출금(음수) |
E | EndBal | 직접 입력/연동 | 해당 주 금요일 잔고 |
F | NetFlow | =C2+D2 | 순유입 |
G | WoWReturn | =(E2-B2-F2)/B2 | 흐름 보정 수익률 |
H | HighWater | =MAX($E$2:E2) | 누적 고점 |
I | Drawdown | =E2/H2-1 | 언더워터(음수일수록 깊음) |
J | AssetClass | 주식/채권/현금… | 선택(스파게티용) |
가드레일(권장선): 현금 10~15%, 주식 합산 ≤ 55%, 드리프트 |편차| ≤ 20%, 1회 이동 ≤ 3%p.
2) 주간 KPI & 연환산 지표(샤프 근사)
지표 | 수식(예시) | 해석 |
---|---|---|
평균 주간 수익률 | =AVERAGE(G:G) | 기대 주간 수익률 |
연환산 수익률 | =(1+AVERAGE(G:G))^52-1 | 주 52회 복리 가정 |
연환산 변동성 | =STDEV.P(G:G)*SQRT(52) | 주간 표준편차 기반 |
무위험수익률 | =셀(Rf) | 보수적 값(연간) 수동 입력 |
샤프 근사 | =(연수익-무위험)/연변동성 | 클수록 효율적 |
최대 드로다운 | =MIN(I:I) | 가장 깊은 낙폭 |
3) 차트 4종(해석 중심)
- 언더워터(Underwater): I열 라인을 0 아래 음영 처리 → 회복 속도 확인.
- 스파게티: J=자산군별 G(주간 수익률) 라인 겹치기 → 무엇이 변동을 만들었나.
- 히트맵: 월×주간 수익률 색상 → 계절성/패턴 탐지.
- 워터폴: 순유입·투자수익 분해.
4) 자산군별 주간 추적(선택)
열 | 라벨 | 예시/수식 | 설명 |
---|---|---|---|
A | WeekEnd | 2025-09-12 | |
B | Ticker/Index | KOSPI/AGG/MMF | |
C | Weight | 0.35 | 비중 |
D | Ret_w | 0.012 | 주간 수익률 |
E | Contrib | =C2*D2 | 기여도 |
5) 조건부 서식(빨리 반응하기)
- G:WoWReturn < -2% → 빨강 배경.
- I:Drawdown ≤ -10% → 진한 파랑 음영.
- 샤프 < 0.2 → 주석: “변동 대비 보상 낮음”.
6) 구글 시트 블록(복붙 수식)
셀 | 라벨 | 값/수식 | 메모 |
---|---|---|---|
K2 | Avg_w | =AVERAGE(G:G) | 평균 주간 |
K3 | AnnRet | =(1+K2)^52-1 | 연환산 |
K4 | AnnVol | =STDEV.P(G:G)*SQRT(52) | 연변동성 |
K5 | Rf | 0.02 | 연 2% 예시 |
K6 | Sharpe | =(K3-K5)/K4 | 샤프 근사 |
K7 | MaxDD | =MIN(I:I) | 최대 DD |
7) 자동 스냅샷 & 주간 메일(앱스 스크립트)
금요일 21:00 기준. 비교기호는 엔티티 처리.
// 금 20:55 - 주간 스냅샷 복사 function weeklySnapshot(){ const ss=SpreadsheetApp.getActive(); const tag=Utilities.formatDate(new Date(),Session.getScriptTimeZone(),'yyyyMMdd'); ss.copy('Weekly_'+tag); } // 금 21:00 - 주간 리포트 메일 function weeklyReport(){ const s=SpreadsheetApp.getActive().getSheetByName('Weekly'); const k=SpreadsheetApp.getActive().getSheetByName('KPI'); // 선택: KPI 별도 시트 const last=s.getLastRow(); const wow=s.getRange('G'+last).getValue(); const dd=s.getRange('I'+last).getValue(); const annRet=k?k.getRange('B3').getValue():null; const annVol=k?k.getRange('B4').getValue():null; const sharpe=k?k.getRange('B6').getValue():null; const msg=[ '📈 주간 리포트', 'WoW 수익률: '+(wow*100).toFixed(2)+'%', '언더워터: '+(dd*100).toFixed(1)+'%', (annRet!=null?'연수익/연변동성/샤프: '+(annRet*100).toFixed(1)+'% / '+(annVol*100).toFixed(1)+'% / '+sharpe.toFixed(2):''), '규칙: 현금 10~15% · 주식 ≤55% · 드리프트 ≤20% · 1회 이동 ≤3%p' ].join('\n'); MailApp.sendEmail(Session.getActiveUser().getEmail(),'[금 21:00] 주간 성과 요약',msg); }
8) 해석 팁(데이터에서 행동으로)
- WoW 음전환 2주 연속 → 금 21:00 “결정 3개”에서 축소 1건 포함.
- 언더워터 -10% 하회 → 신규 매수 24h 쿨다운, 현금 버퍼 점검.
- 샤프 < 0.2 4주 연속 → 비용 낮추기/드리프트 교정부터.
9) 인쇄용 한 장(주간 추적 체크리스트)
[입력] WeekEnd □ StartBal □ In/Out □ EndBal □ [KPI] WoW ____% | MaxDD ____% | AnnRet ____% | AnnVol ____% | Sharpe ____ [차트] 언더워터 □ 스파게티 □ 히트맵 □ 워터폴 □ [결정 3개(금 21:00)] 유지 ____ | 축소 ____ | 증액 ____
FAQ
- Q. 입출금이 많은데 수익률 왜곡이 걱정됩니다.
A. WoW=(End-Start-NetFlow)/Start로 흐름을 보정했습니다. 월 단위 XIRR은 보충 지표로 별도 계산하세요.
마무리 — 주간 추적의 목표는 빠른 인지와 작은 조정입니다. 오늘 시트를 만들어 금요일 21:00 자동 리포트까지 연결해 보세요. 작은 변화를 꾸준히 쌓으면, 분기 리밸런싱의 품질이 달라집니다.
※ 교육용 일반 정보입니다. 상품·세율·수수료·약관은 각 기관의 최신 공지를 확인하세요.
🔜 다음 글 예고 | 12주 재테크 여정, 한 권의 전략서로 정리하자
- 전략 캔버스 통합: 목표·레버·가드레일·루틴
- 케이스 스터디: 성공/실패 분기점과 복구 로그
- 부록: 시트 템플릿 링크 모음·앱스 스크립트 번들
- 출력용 PDF: 목차/요약/체크리스트 3장
다음 편에서 12주간 콘텐츠를 한 권의 전략서로 묶는 레이아웃과 파일 구조를 공개합니다.