个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
레이 달리오의 All Weather Portfolio 프레임워크를 참고해, 현재 경제 상황이 4분면(성장 ↑↓ × 인플레이션 ↑↓) 중 어디에 속하는지 판단하기 위한 개인용 지표 모니터링 대시보드입니다. 자동화의 목표는 데이터 수집과 시각화까지이며, 해석과 판단은 수동으로 진행합니다. 주간 판단 노트는 이 리포지토리가 아니라 별도 Obsidian vault(luke-wiki)에 수기로 작성합니다. 지표를 추가/수정하려면 scripts/fetch_fred.py 상단의 INDICATORS 딕셔너리만 편집하면 됩니다. 수집 이후 scripts/analyze.py 가 두 층의 판정을 assessment 블록에 저장합니다. 종합 판정 (Primary — 백테스트 검증 모델) 대시보드 헤드라인. 1980–2026 워크포워드 백테스트(발표 지연 시뮬레이션 포함)에서 8개 후보 모델 중 가장 좋았던 모델 H 의 판정입니다.查看完整 README ↗
레이 달리오의 All Weather Portfolio 프레임워크를 참고해, 현재 경제 상황이 4분면(성장 ↑↓ × 인플레이션 ↑↓) 중 어디에 속하는지 판단하기 위한 개인용 지표 모니터링 대시보드입니다.
자동화의 목표는 데이터 수집과 시각화까지이며, 해석과 판단은 수동으로 진행합니다. 주간 판단 노트는 이 리포지토리가 아니라 별도 Obsidian vault(luke-wiki)에 수기로 작성합니다.
| 분면 | 성장 | 인플레이션 | 유리한 자산 (참고) |
|---|---|---|---|
| 1 | ↑ | ↑ | 원자재, 신흥국 주식, 인플레 연동채 |
| 2 | ↑ | ↓ | 선진국 주식, 회사채 |
| 3 | ↓ | ↑ | 금, 인플레 연동채, 원자재 |
| 4 | ↓ | ↓ | 국채(장기), 현금 |
| 지표 | FRED 코드 | 분면 | 변환 | 비고 |
|---|---|---|---|---|
| 10Y-2Y 금리차 | T10Y2Y | 성장 | — | 역전 시 침체 경고 (선행) |
| 산업생산 YoY | INDPRO | 성장 | YoY% | 성장 현재 상태 |
| 비농업 고용 YoY | PAYEMS | 성장 | YoY% | 성장 확산 지표 |
| 주 단위 선행지수 | USSLIND | 성장 | — | Philly Fed, 6개월 성장 전망 |
| CPI YoY | CPIAUCSL | 인플레 | YoY% | 표면 인플레 |
| Core CPI YoY | CPILFESL | 인플레 | YoY% | 끈적한(sticky) 인플레 |
| PCE YoY | PCEPI | 인플레 | YoY% | Fed 통화정책 준거 |
| 10Y BEI | T10YIE | 인플레 | — | 시장 기대 인플레 |
| WTI YoY | DCOILWTICO | 인플레 | YoY% (일간→월말) | 공급측 압력 |
지표를 추가/수정하려면 scripts/fetch_fred.py 상단의 INDICATORS 딕셔너리만 편집하면 됩니다.
수집 이후 scripts/analyze.py 가 두 층의 판정을 assessment 블록에 저장합니다.
대시보드 헤드라인. 1980–2026 워크포워드 백테스트(발표 지연 시뮬레이션 포함)에서 8개 후보 모델 중 가장 좋았던 모델 H 의 판정입니다.
| 신호 | 적중 | 중위 선행 | FPR | flips/yr |
|---|---|---|---|---|
| 성장 low → NBER 침체 | 4/4 | +16개월 | 7.7% | 0.54 |
| 인플레 high → 고인플레 국면 | 3/3 | +0개월 | 5.9% | 0.52 |
(베이스라인 단순 백분위 평균 대비 FPR 을 1/3~1/2 로 줄이면서 선행성 유지.
전체 비교는 data/eval/comparison.json, 재현은 python scripts/compare_models.py)
각 지표의 현재값을 두 개의 참조 창에 대한 백분위(percentile) 로 환산한 단순 평균 — 종합 판정과 엇갈리는지 비교하는 보조 뷰로 유지합니다.
high, ≤ 40 → low, 그 사이 → neutral한국 탭은 백테스트 정답지(침체/인플레 episode)가 미국 기준이라 아직 종합 판정 없이 참조용 백분위 뷰만 제공합니다.
기존 JSON 에 assessment 를 재계산만 하고 싶을 때는 네트워크 없이 이렇게:
python scripts/analyze.py
data/labels/ 의 정답지(NBER 침체 + 사전 등록 규칙 기반 인플레 episode)에 대해
각 월말 시점에 "그때 알 수 있었던 데이터"(발표 지연 시뮬레이션)만으로 판정을
재실행해 채점합니다. 하이퍼파라미터는 모두 사전 등록 — 결과를 보고 조정하지
않습니다 (과적합 방지).
python scripts/backtest.py # 베이스라인 채점 → data/eval/baseline.json
python scripts/compare_models.py # 모델 A~H 비교 → data/eval/comparison.json
dalio-dashboard/
├── README.md
├── .gitignore
├── index.html # 대시보드 진입점 (Chart.js CDN 로드)
├── style.css # 다크 테마 + 반응형 카드 레이아웃
├── app.js # data/ fetch & 차트 렌더링 (국가 탭 + 섹터 서브탭)
├── vercel.json # Vercel 배포 설정 (JSON 캐시 정책)
├── data/
│ ├── index.json # 메타데이터 + assessment (4분면 판정) 요약
│ ├── indicators/
│ │ └── <CODE>.json # 지표별 전체 payload — 개별 편집 가능
│ ├── assets/
│ │ └── <CODE>.json # 비교 자산별 전체 payload
│ └── principles/
│ └── timeline.json # 원칙 탭 시나리오 데이터 (scripts/build_principles.py)
├── scripts/
│ ├── fetch_fred.py # FRED API → data/ 분할 저장
│ ├── analyze.py # percentile/label/quadrant 재계산 (CLI)
│ ├── build_principles.py # 원칙 탭용 국면·자산수익률 타임라인 생성
│ └── requirements.txt
└── .github/workflows/
└── update.yml # 주 1회 자동 수집 + 커밋
각 지표/자산의 시계열은 개별 JSON 파일로 분리 저장됩니다. 개별 파일을 직접 열어서 편집·가공한 뒤
python scripts/analyze.py를 돌리면current(백분위·레이블) 와assessment를 재계산해 반영합니다.
# 1. FRED API 키 발급: https://fred.stlouisfed.org/docs/api/api_key.html
export FRED_API_KEY="your_api_key_here"
# 2. 의존성 설치
pip install -r scripts/requirements.txt
# 3. 수집 실행
python scripts/fetch_fred.py
실행이 끝나면 data/indicators.json 이 갱신되고, 각 지표별로 Fetching T10Y2Y... OK (520 points) 형태의 로그가 찍힙니다.
정적 파일이라 어떤 HTTP 서버로도 띄울 수 있습니다. 파이썬 내장 서버가 가장 간편합니다.
python -m http.server 8000
# 브라우저에서 http://localhost:8000 접속
⚠️
file://로 직접index.html을 열면fetch("data/indicators.json")이 CORS 정책에 막혀 데이터가 안 보입니다. 반드시 HTTP 서버로 띄우세요.
자동 수집을 위해 리포지토리에 FRED API 키를 Secret 으로 등록해야 합니다.
FRED_API_KEY, Value: 발급받은 API 키이후 .github/workflows/update.yml 이 매주 월요일 09:00 UTC (한국시간 월요일 18:00) 에 자동 실행되며, 데이터가 바뀌었을 때만 chore: update indicators (YYYY-MM-DD) 커밋을 생성합니다.
Actions 탭의 "Update FRED Indicators" → Run workflow 버튼으로 수동 실행도 가능합니다.
정적 사이트라 빌드 단계가 없고, Vercel 이 자동으로 감지해 루트를 그대로 서빙합니다.
lukeeee73/Indicator_dashboard 선택 → ImportOther (자동으로 잡힐 것)https://<프로젝트명>.vercel.app URL 발급Vercel 이 GitHub 의 default branch 를 감시하므로,
data/indicators.json 을 자동 커밋하면자동으로 재배포됩니다. 별도 동작 필요 없음.
vercel.json)data/indicators.json 은 Vercel Edge CDN 에서 최대 5분만 캐시되도록 설정되어 있어, 주간 갱신이 곧바로 반영됩니다. 나머지 정적 파일은 기본 캐시 정책을 따릅니다.
대시보드 상단의 🧭 원칙 탭은 "과거 특정 시점으로 돌아가 그 때 알 수 있었던 정보만으로 투자 결정을 내렸다면 수익률이 어땠을까"를 시뮬레이션하는 개인용 백테스트 실험실이다. 레이 달리오의 성장×인플레이션 4분면 프레임워크에서 아이디어를 가져왔다.
scripts/backtest.py / compare_models.py
가 이미 구현한 발표 지연(release lag) 시뮬레이션 + 모델 H(백테스트 승자)
워크포워드를 그대로 재사용한다 — 그 시점 이후 데이터는 전혀 보지 않는다.DGS10 금리에서 duration 근사로 총수익 지수 역산data/indices/GSPC.json (S&P500, 가격지수, 배당 미반영)data/assets/KOSPI.json (가격지수, KRW)data/assets/GOLD.json (XAU/USD 현물, 수집된 뒤부터 자동으로 나타남)data/principles/timeline.json 의 note
필드에 그대로 노출된다.localStorage 에 쌓이며, 반복해서
시나리오를 시험하며 나만의 투자 원칙을 만들어가는 것이 목적이다. JSON 내보내기로
백업할 수 있다.데이터 갱신:
python scripts/build_principles.py # data/principles/timeline.json 재생성
새 지표를 수집하지 않고 기존 data/ 를 재조합만 하므로 네트워크 호출이 없다.
국면/지표 데이터가 갱신되면(주간 자동 수집) 다시 실행해 최신 상태로 맞춘다.
⚠️ 국면 판정과 자산 수익률 모두 이 레포 데이터로 만든 교육용 근사치이며, 투자 조언이 아니다.
requests 만 사용. 학습과 유지보수 부담을 낮추기 위함.대시보드 왼쪽 사이드바의 위키 탭은 Obsidian vault(lukeeee73/luke_wiki)의
노트와 [[위키링크]] 구조를 frontmatter 기반 3D 지식 좌표계로 시각화한다.
confidence + type + sources + fact/claim calloutweight + type (reference → foundational)authorship/origin 명시값을 우선하고, 없으면 폴더·type·
[!judgment] callout으로 추정 — 위로 갈수록 내 판단·원칙, 아래는 AI·루틴 수집나의 개입도는 저자를 단정하는 값이 아니다. 현재 노트 대부분에는 작성 주체 필드가
없어 휴리스틱으로 추정하며, 정확히 고정하려면 노트 frontmatter에
authorship: human | mixed | ai | routine을 추가한다. 노드를 클릭하면 상세 패널에
원본 frontmatter, 세 축 점수, fact/claim/judgment callout 수가 뜨고,
📖 이 화면에서 읽기 로 노트 본문을 대시보드 안에서 마크다운으로 읽을 수 있다
(본문 속 [[위키링크]] 를 클릭하면 그 노트로 바로 이동).
노트 뷰어는 위키 탭 전용이 아니다 — 시장 지도의 노드/기업 상세 패널에도 "옵시디언 위키 노트" 섹션이 붙어, 지도의 짧은 요약을 vault 의 긴 글로 확장해서 읽을 수 있다. 노트는 두 경로로 연결된다:
markets[].wiki: [{path, label}] (vault 상대 경로,
예: wiki/concepts/hbm.md). 연결된 노드에는 지도에서 📖 n 배지가 붙는다.players[].ticker 를 루틴 뉴스 로그(wiki/news/tickers/{TICKER} - *.md)와
매칭 — daily-market-analysis 루틴이 매일 누적하는 종목 뉴스가 그대로 지도에 꽂힌다.
플레이어 지도(예: HBM)의 기업 상세에서도 같은 방식으로 열린다.data/wiki/graph.json 이 아직 동기화 전이면 섹션은 조용히 숨겨진다.
scripts/build_wiki_graph.py 가 vault 를 파싱해 두 가지를 만든다:
data/wiki/graph.json — 노드/엣지 + frontmatter + 인식론 callout + 3D 좌표 점수data/wiki/notes/{i}.json — 노트 본문 (노트 뷰어; --no-content 로 끌 수 있음)⚠️ 본문을 내보내면 대시보드 배포본에 노트 내용이 포함된다. 대시보드가 공개 URL 이면 노트도 공개되는 셈이니, 원치 않으면 워크플로의 빌드 명령에
--no-content를 붙일 것.
접근 설정:
WIKI_REPO_TOKEN
시크릿 추가 (luke_wiki Contents: Read 권한의 fine-grained PAT).| 방법 | 지연 | 설정 |
|---|---|---|
wiki-sync.yml 시간별 폴링 | 최대 1시간 | 기본 동작, 설정 불필요 |
| Actions 에서 Sync Wiki Graph 수동 실행 | 즉시 | 버튼 클릭 |
luke_wiki push → repository_dispatch | 푸시 후 ~1분 | 아래 참고 |
푸시 즉시 반영 설정 — luke_wiki 저장소에 아래 워크플로를 추가한다
(.github/workflows/notify-dashboard.yml). Obsidian 의 git 플러그인으로
commit-and-sync 하는 순간 대시보드가 자동 갱신된다:
name: Notify dashboard
on:
push:
branches: ["**"] # 또는 사용 중인 기본 브랜치만
jobs:
notify:
runs-on: ubuntu-latest
steps:
- run: |
curl -sS -X POST \
-H "Authorization: Bearer ${{ secrets.DASHBOARD_DISPATCH_TOKEN }}" \
-H "Accept: application/vnd.github+json" \
https://api.github.com/repos/lukeeee73/Indicator_dashboard/dispatches \
-d '{"event_type":"wiki-updated"}'
DASHBOARD_DISPATCH_TOKEN 은 luke_wiki 저장소의 시크릿으로,
Indicator_dashboard 에 Contents: Read and write 권한이 있는
fine-grained PAT 를 넣는다 (repository_dispatch 호출에 필요).
로컬 생성: python scripts/build_wiki_graph.py --vault ../luke_wiki --out data/wiki/graph.json
index.html + app.js + style.css + Chart.js 기반 카드형 대시보드data/markets/ai-semiconductor.json 하나에 모이며, 티커별 narrative_score 가
시장별로 자동 집계된다. 조사·갱신은 .claude/routines/market-research/ 루틴 담당.signals: 공급 긴축/완화·수요 확대/축소, 강도 1~3)를 달고,
scripts/market_pulse.py 가 시장별 병목 판정 기준
(data/markets/criteria/)에 따라 시간 감쇠·다중 소스 hysteresis 로 집계해
시장별 병목 압력·수요 모멘텀·severity 전이 제안·병목 이동 경보
(data/markets/analysis/)를 산출한다 (예: 2024 CoWoS → 2026 HBM·전력 이동 패턴).
스크립트는 지도를 직접 고치지 않는다 — 탐지(스크립트)와 판단(루틴) 분리:
주간 market-research 루틴이 제안을 교차 검증한 뒤 지도에 반영한다. 웹 시장
지도에는 노드 ▲▼ 압력 화살표·보드 상단 자동 신호 스트립·상세 패널 게이지로 표시.data/markets/power-ai.json, 14개 시장). 핵심 질문은 "BTM(구내 전용 발전)에
얼마나 몰리는가 vs 그리드(계통 접속·PPA)에 얼마나 몰리는가" — 전기가 만들어지는
구조([연료 → 발전(터빈·원자로·PV) → 승압 → 송전 → 부하])를 따라
연료(가스·우라늄) → 장비(가스터빈·변압기·ESS) → 발전원(가스·기존 원전·SMR·
재생+ESS·연료전지) → 조달 경로(BTM vs FTM·송전망) → AI DC 수요의 5단 캐스케이드로
배치했다. 어떤 경로든 터빈·변압기라는 공통 장비 관문을 지나는 것이 구조의 핵심.
watchlist 에 "전력 인프라 (AI)" 그룹 10종(GEV·ETN·VRT·PWR·BE·OKLO + K-전력기기
4종) 신설, market pulse 자동 신호·criteria·주간 루틴() 동일 적용.대시보드의 주식 탭 → 개별 종목 에서 섹터별로 묶인 모든 종목 카드를 확인할 수 있다.
종목 정의는 scripts/watchlist_data.py 한 파일에 모여 있으며, 변경 후
python scripts/gen_watchlist.py 한 줄로 fetch_fred.py / competitors.py /
app.js 가 일관되게 재생성된다. 자세한 절차는
.claude/routines/daily-market-analysis.md
"종목·섹터 추가 가이드" 참고.
🤖 이 daily 루틴과 주간 시장 리서치 루틴을 Claude Code 웹 (claude.ai/code/routines)에 등록·복원하는 폼 입력값(프롬프트 전문 · 스케줄 · 환경 설정 체크리스트)은 .claude/routines/SETUP.md 가 단일 기준이다. 루틴은 레포가 아니라 개인 계정에 저장되므로, 삭제했다면 저 문서를 보고 다시 등록한다.
| 섹터 그룹 | 종목 수 | 대표 종목 |
|---|---|---|
| 빅테크 / 소프트웨어 | 10 | AAPL · MSFT · GOOGL · AMZN · META · ORCL · CRM · ADBE · IBM · PLTR |
| 반도체 — AI 칩 · 설계 | 11 | NVDA · AMD · INTC · QCOM · AVGO · MRVL · MediaTek · MBLY · SNPS · CDNS · ARM |
| 반도체 — 메모리 (HBM·DRAM) | 3 | 삼성전자 · SK하이닉스 · MU |
| 반도체 — 파운드리 · 패키징 · 기판 | 3 | TSM · AMKR · Ibiden |
| 반도체 — 장비 · 소재 | 10 | ASML · AMAT · LRCX · TOELY · KLAC · 한미반도체 · Advantest · DISCO · BESI · Shin-Etsu |
| AI 인프라 — 네트워킹 · 광 · 네오클라우드 | 5 | ANET · COHR · MPWR · CRWV · NBIS |
| 로보틱스 / 피지컬 AI | 5 | TER · HSAI · MP · FANUC · Harmonic Drive |
| 자동차 / 모빌리티 | 10 | TSLA · TM · F · GM · STLA · HMC · RIVN · NIO · 현대차 · 기아 |
| 바이오 / 제약 / 헬스케어 | 10 | LLY · NVO · JNJ · PFE · MRK · ABBV · AZN · UNH · TMO · ABT |
| 에너지 / 원자재 | 10 | XOM · CVX · COP · SHEL · OXY · SLB · FCX · NEM · LIN · APD |
| 금융 | 10 | JPM · BAC · WFC · C · GS · MS · V · MA · AXP · BRK-B |
| 소비재 | 10 | WMT · COST · KO · PEP · PG · MO · MCD · HD · NKE · SBUX |
| 산업재 / 방산 | 14 | CAT · DE · BA · LMT · RTX · NOC · HON · GE · UPS · FDX · AVAV · KTOS · 한화에어로스페이스 · LIG넥스원 |
| 부동산 (REITs) | 10 | AMT · CCI · PLD · EQIX · DLR · O · SPG · WELL · PSA · VICI |
| 통신 / 미디어 | 10 | VZ · T · TMUS · CMCSA · CHTR · NFLX · DIS · SPOT · EA · TTWO |
| 유틸리티 / 전력 | 10 | NEE · SO · DUK · AEP · EXC · CEG · VST · SRE · ED · D |
| 전력 인프라 (AI) | 10 | GEV · ETN · VRT · PWR · BE · OKLO · 두산에너빌리티 · HD현대일렉트릭 · 효성중공업 · LS일렉트릭 |
| 조선 (한국, KRW) | 4 | HD현대중공업 · 한화오션 · 삼성중공업 · HD현대미포 |
각 카드에는 사업 모델 한 줄 설명, 1년 가격 추이, 4가지 핵심 재무 지표 (P/E·영업이익률·ROE·배당수익률), 분기 매출/이익 추세, 자체 산출 fair value 와 valuation gap, watchlist 내 경쟁사 비교, daily-market-analysis 루틴이 누적하는 정성 분석(narrative_score) 이 표시된다.
watchlist 가 155 종목으로 늘어 하루에 다 처리하면 부담이 크므로, daily routine 은
요일별로 섹터를 나눠서 처리한다. 매핑은 scripts/watchlist_data.py 의
DAY_OF_WEEK_SECTORS 에 정의되어 있다:
| 요일 | 처리 섹터 | 종목 수 |
|---|---|---|
| 월요일 | 빅테크 / 소프트웨어 + AI 인프라 (네트워킹·광·네오클라우드) | 15 |
| 화요일 | 반도체 4개 그룹 (AI 칩·설계 / 메모리 / 파운드리·패키징 / 장비·소재) | 27 |
| 수요일 | 로보틱스 / 피지컬 AI + 자동차 / 모빌리티 + 조선 (한국) | 19 |
| 목요일 | 바이오 / 제약 / 헬스케어 | 10 |
| 금요일 | 에너지 / 원자재 + 유틸리티 / 전력 + 전력 인프라 (AI) | 30 |
| 토요일 | 금융 + 부동산 (REITs) | 20 |
| 일요일 | 소비재 + 산업재 / 방산 + 통신 / 미디어 | 34 |
7일에 한 번 모든 종목이 한 바퀴 도는 구조다. 가격·재무 데이터(update.yml)
는 여전히 주 1회 일괄 수집한다 — 가벼우므로.
power-ai.mdvaluation.qualitative.as_of == 오늘)만 그날 자동으로
열리고 🗞️ 배지가 붙는다. 그리고 가치 발굴 탭 (주식 탭 → 🎯 가치 발굴):
버핏식 "훌륭한 기업을 훌륭한 가격에" 월간 스크리닝 — scripts/value_screen.py 가
매월 1일(value-screen.yml) 전 종목 재무제표를 훑어 사업의 질 3가지(ROE ≥ 15% ·
영업이익률 ≥ 15% · 4분기 연속 흑자) × 가격 1가지(적정가치 대비 20%+ 할인)를
모두 통과한 기업만 data/value_screen.json 에 기록한다. 통과 기업은 카드
모아보기 + 일반 카드에 🎯 배지, '기준 3개 통과(가격만 남은)' 후보는 지켜보기
리스트로 표시. 통과 0개인 달이 정상 — 그것이 '기다림'이다.