Files
All-in-one-Financial-Analysis/README.md
T

91 lines
3.9 KiB
Markdown
Raw Normal View History

# All-in-One Financial Analysis Dashboard
**하이브리드 금융 대시보드** — 10-K·MD&A AI 인사이트, DCF/밸류에이션, 산업 비교, 포트폴리오·워치리스트, 크립토(빗썸/바이낸스)를 한 화면에서 제공합니다.
- **비용 효율**: 숫자/차트는 yfinance·YahooQuery 기반, **텍스트 인사이트만 Gemini** 사용
- **다중 시장**: 미국·한국 등 글로벌 티커 검색 및 통화(USD/KRW/JPY 등) 지원
---
## 최근 업데이트
### Portfolio & Watchlist
- **통화(Currency) 컬럼**: 종목별 매수 통화 선택 (USD, GBP, EUR, KRW, JPY, CNY). Sync 시 자산 거래 통화로 FX 환산 후 수익률 계산.
- **소수 수량(Quantity)**: 분수 주식·소수 주식 지원 (예: 30.395107). AI 스크린샷 추출 시에도 소수점 유지.
- **FX 반영 수익률**: 입력 평단가·통화 → 실시간 환율로 자산 통화 기준 `adjusted_avg` 계산 → `Total Return %` = (현재가 adjusted_avg) / adjusted_avg. 다중 통화 포트폴리오에서 일관된 수익률 표시.
- **AI 스크린샷 (Gemini Vision)**: 브로커 화면에서 Ticker, Average Price, **Currency**($, £, €, ₩, ¥ → USD/GBP/EUR/KRW/JPY), **Quantity**(소수 포함) 자동 추출.
### 앱 전반 다중 통화·환율
- **티커별 통화**: `get_currency_for_ticker`로 종목 거래 통화 자동 감지 (USD/KRW/JPY 등).
- **실시간 환율**: `get_fx_rate`(통화→통화), `get_fx_rate_to_usd`(→USD). yfinance FX 페어 사용, TTL 60~120초 캐시.
- **가격 표기**: 비-USD 종목에 대해 `format_price_with_usd`로 로컬 통화 + USD 환산 병기 (예: ₩ 181,200 (≈ $ 132.50)).
### Valuation Hub (DCF / RIM)
- DCF·Reverse DCF·RIM 결과가 **티커 통화** 기준으로 표시되며, 비-USD일 경우 USD 환산액을 함께 표시.
### Earnings & Estimates
- 애널리스트 목표가·추천·현재가에 **티커 통화** 적용 및 필요 시 USD 환산 표기.
---
## 주요 기능 (8개 탭)
| 탭 | 설명 |
|----|------|
| **10-K & MD&A Insights** | SEC 10-K Item 7·Item 1A 기반 Gemini 요약, DuPont·Altman Z·Red Flags·YoY, Sankey·Radar·5년 재무·KPI |
| **Market Heatmap** | 섹터·매크로 히트맵, 금리·원유·VIX 등 지표 |
| **Valuation Hub** | 표준 DCF, Reverse DCF, RIM(잔여이익) 밸류에이션 |
| **Industry Analysis & Comps** | 산업 동료사 비교(Forward P/E, EV/EBITDA, P/B), AI 산업 전망 |
| **SEC Filings (Raw)** | SEC 제출 문서 목록 및 원문 링크 |
| **Earnings & Estimates** | 실적 컨센서스, Beat/Miss 차트, 애널리스트 목표가·추천 |
| **Portfolio & Watchlist** | 보유 종목 **종목별 통화(USD/GBP/EUR/KRW/JPY/CNY)**·**소수 수량** 지원, AI 스크린샷 추출, **실시간 FX 환산 수익률** |
| **Crypto** | 빗썸(KRW)·바이낸스(USD) 실시간 시세 |
---
## 설치 및 실행
### 요구 사항
- Python 3.10+
- [requirements.txt](requirements.txt) 의존성
### 1. 저장소 클론 후 의존성 설치
```bash
cd ici
pip install -r requirements.txt
```
### 2. 환경 변수 (선택)
- **Google API Key**: 사이드바에서 입력하거나 `.env``GOOGLE_API_KEY=...` 설정
- Tab 1(10-K 인사이트), 포트폴리오 스크린샷 AI 추출에 사용
- **SEC 이메일**: 10-K 다운로드 시 User-Agent용 이메일 (사이드바 입력 권장)
### 3. 실행
```bash
streamlit run app.py
```
브라우저에서 `http://localhost:8501` 로 접속합니다.
---
## 프로젝트 구조
```
ici/
├── app.py # 메인 Streamlit 앱 (탭·API·UI)
├── requirements.txt # Python 의존성
├── data/ # 10-K 캐시 (ticker_latest.json 등, .gitignore 권장)
└── .app_prefs.json # 로컬 저장 API 키·이메일 (선택, .gitignore 권장)
```
---
## 라이선스
이 프로젝트는 개인/교육 목적으로 제공됩니다. 외부 API(Google Gemini, SEC EDGAR, Yahoo Finance 등) 사용 시 각 서비스 약관을 확인하세요.