Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
yfinance 기반 주식 KPI CLI, 티커별 기본지표와 일일 CNN 공포·탐욕 감성 스냅샷 제공, API 키와 스크래핑 필요 없음
Library-based stock KPI CLI: per-ticker fundamentals via yfinance plus a daily CNN Fear & Greed sentiment snapshot. No API keys, no scraping.
금융Python · JavaScriptGitHub @qte77온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Library-based stock KPI CLI: per-ticker fundamentals via yfinance plus a daily CNN Fear & Greed sentiment snapshot — no API keys, no scraping.README 전문 보기 ↗
Library-based stock KPI CLI: per-ticker fundamentals via yfinance plus a daily CNN Fear & Greed sentiment snapshot — no API keys, no scraping.
results/fundamentals/<UTC>.json.results/series/cnn_fg/YYYY.json, refreshed by a GitHub Actions cron./,
opens it filtered), and a collapsed Methodology section closes the page.make setup_dev # uv sync (dev + test groups)
make run UNIVERSE=qte77-watchlist # fundamentals -> results/fundamentals/<UTC>.json
make run TICKERS=AAPL,MSFT # ad-hoc tickers (SHOW_SCORES=1 appends score columns)
make help # list available recipes
make validate # lint + types + complexity + md + tests
make preview # dashboard at http://localhost:8000/analyze-stock-kpi/ (PORT=8000)
CLI args double as env vars with the SSK_ prefix (e.g. SSK_TICKERS=AAPL,MSFT).
Per-ticker Sortino is reported at fixed 1y/3y/5y/10y/20y/30y windows plus an
optional operator-chosen frame via --sortino-from YYYY-MM-DD [--sortino-to YYYY-MM-DD] (--sortino-to defaults to each ticker's latest close), e.g.:
uv run python -m analyze_stock_kpi --tickers AAPL --sortino-from 2015-01-01 --sortino-to 2020-12-31
The dashboard keeps its state in the URL, so views can be shared. A parameter is omitted while it has its default value, and clearing a filter in the UI removes it from the URL:
| Parameter | Values | Default |
|---|---|---|
universe | comma-separated universe ids, e.g. sp500 | the first universe |
date | snapshot date YYYY-MM-DD | latest |
sort / sortDir | a column key, e.g. composite_scores.screener_score / 1 = ascending | Score, descending |
filter | ticker/name text filter | none |
sector | sector name (from the donut) | none |
view | simple or detailed | simple |
ltFgWindow / ycWindow | 1y, 5y, 10y, all (a non-default value opens the Market mood panel on its long-term tab) | all |
theme | light, dark, system | the last choice (stored in the browser), else system |
base | data origin URL, e.g. a fork's raw.githubusercontent.com/<owner>/<repo>/data | this deployment's own data branch |
A non-default table parameter (universe, date, sort/sortDir, filter, sector,
view) opens the collapsed "Browse all stocks" section on load, so a shared table view is
visible straight away. The Methodology topics have stable anchors for linking: #methodology,
#why-charts, #why-universes, #backtest-rules and #decisions. On the page, / focuses
the quick search, and the arrow keys (plus Home/End) move between tabs.
See docs/architecture.md for the module map, the persisted
FundamentalsSnapshot fields, the composite-score formulas, and the universe presets.
Fundamentals-plus-sentiment dashboards usually sit behind a paid data terminal or a
fragile scraping layer. analyze-stock-kpi fills the gap between a raw yfinance REPL and
a paid feed: a reproducible, keyless CLI + dashboard over public sources, versioned to
a data branch so the demo and the numbers stay auditable. See
docs/UserStory.md for product intent and non-goals.
docs/architecture.md — module map + data flowdocs/UserStory.md — product intent + non-goalsdocs/roadmap.md — milestones + tracked issuesui/ — static dashboard sources (deployed to GitHub Pages); preview with make previewdocs/decisions/ — MADR ADRsdocs/cnn-fg-api.md — CNN F&G endpoint schemaCHANGELOG.md — release history + known issuesCONTRIBUTING.md — dev workflow (tests, commits, GHA, changelog, release)AGENTS.md — AI-agent-specific behavioural rules