具成本效益的代理人,依價值與基本面成長對約90個全球股票指數進行排名,提供互動式儀表板及市場/使用者回饋迴路。
AI 翻譯
Cost-effective agent ranking ~90 world equity indices by value and fundamental growth, with an interactive dashboard and market/user feedback loops.
金融JavaScript · PythonGitHub @Karthik-Velu上線中營運者未確認
試用過了嗎? 點一下就好,不需要登入。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Where is the world's equity value — and where's the opportunity?
A cost-effective research agent that ranks ~90 global market indices by value and
fundamental growth, surfaces the handful of calls worth your attention, and learns
from whether its past calls actually played out — so you spend a minute, not an afternoon.檢視完整 README ↗Where is the world's equity value — and where's the opportunity? A cost-effective research agent that ranks ~90 global market indices by value and fundamental growth, surfaces the handful of calls worth your attention, and learns from whether its past calls actually played out — so you spend a minute, not an afternoon.
· ▶ Live demo · Architecture · Data-ingestion agent
[!WARNING] For research/education only — not investment advice. The rankings are experimental and unvalidated — a first stock-level walk-forward backtest has run (2026-07-22) with an encouraging but not yet statistically significant signal (see docs/STATUS.md for the numbers). Do your own research. See DISCLAIMER.md.
Most equity tools are either data terminals you dig through (Bloomberg, Koyfin, TIKR) or opaque ratings that never show whether they worked (Simply Wall St, Stockopedia). This is neither. It is an agent that does the research for you and shows its work:
Try it: https://global-index-valuation-agent.vercel.app (the strategist read, the insight cards, and the Value × Growth map are the one-minute answer).
flowchart LR
SRC["Free data sources<br/>(ETF holdings, prices, fundamentals)"] --> ENG
subgraph ENG["Engine — deterministic, free (weekly)"]
direction TB
F["Fetch + normalize"] --> M["Score: value · growth · momentum · opportunity<br/>(within each peer group)"]
M --> S["Surface the few insights that matter"]
M --> L["Record predictions → grade past calls → auto-tune weights"]
end
ENG --> J["dashboard_data.json (published snapshot)"]
J --> UI["Static dashboard on Vercel<br/>insights · Value×Growth map · scoreboard"]
LLM["LLM (optional, cheap tier)<br/>tags + strategist brief"] -.-> S
The deterministic spine. Fetching, parsing, computing P/E and other metrics, scoring, ranking, and grading are all plain Python — free, exact, auditable. The LLM is optional and only ever narrates the final ≤90-row scoreboard. With no API key the product still runs end-to-end for $0 (deterministic fallbacks fill in the text).
The scores (all ranked within a peer-group kind, so adding US sectors never
distorts the country comparison):
| Score | Question it answers |
|---|---|
| Value | Is it cheap? (P/E, P/B, P/S, yields — with value-trap guards) |
| Growth | Are the underlying fundamentals growing? (revenue + earnings growth of the top holdings + forward estimates — not price momentum) |
| Opportunity (GARP) | Cheap and growing and not overvalued? (value 40% · growth 40% · momentum 12% · mean-reversion 8%) |
Two feedback loops make it an agent, not a report:
Cost model — right model for the right task. Deterministic work is free; LLM work is routed by frequency × stakes: cheap/owned models (self-hosted Qwen, GLM-4-Flash, DeepSeek) for frequent customer-facing calls, frontier models only for the rare weekly synthesis. Full design in docs/ARCHITECTURE.md.
We keep the terminology precise (see docs/AGENTS.md):
Jobs running today:
engine/) — sources indices, scores them, surfaces
insights, grades itself, publishes the dashboard. (weekly)engine/datapipeline.py) — one sequenced job: probe sources →
ingest fundamentals (SEC EDGAR) → tag stocks by sector → validate + auto-fix the
KPI catalog → data-quality checks → recalibration check. Validation runs right
after ingestion. (daily) See docs/DATA_INGESTION.md.Agents (LLM): provider-agnostic with a waterfall router — each role has an
ordered chain (scheme:model → Ollama Cloud / Groq / DeepSeek / GLM / OpenRouter /
Anthropic) that falls through to the next tier on rate-limit or error, and degrades to
free deterministic text if every tier is down. Activatable for $0 (local Ollama).
Shared, model-agnostic instructions live in version-controlled playbooks
(engine/context/*.md); model-specific reliability is learned from outcome metrics
(model_scorecard) and can reorder the chain. Full design in
docs/MODEL_ROUTING.md. Source-discovery, sector-KPI research,
quality-triage, analyst, strategist — each with its cadence in
docs/AGENTS.md. They improve the jobs; they don't run in the hot path.
Data foundation: a cloud Postgres (Supabase) is the single source of truth; SEC EDGAR ingests sector-aware, point-in-time stock-level fundamentals (110-KPI catalog, restatement vintages). Two-tier storage (Postgres + Parquet/DuckDB) is in docs/ARCHITECTURE.md; progress in docs/STATUS.md.
Memory: learnings persist in a 3-tier memory — raw episodic logs → a semantic
lessons store (provenance, confidence, decay, pgvector retrieval, point-in-time
history) → the curated .md playbooks promoted from it. So the system compounds what
it learns instead of losing it. See docs/MEMORY.md.
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
# 1. Build the data (fetch + score + grade + write data/dashboard_data.json)
python -m engine.cli refresh
# 2. Launch the dashboard -> http://localhost:8000
uvicorn engine.api:app --port 8000
Optional — activate the LLM (otherwise free deterministic text + dormant agents):
cp .env.example .env
# Free + local ($0): install Ollama, then ollama pull qwen2.5
# and set MODEL_CHEAP=ollama:qwen2.5 MODEL_AGENT=ollama:qwen2.5 in .env
# Or a key: ANTHROPIC_API_KEY / OPENROUTER_API_KEY (see docs/ARCHITECTURE.md, docs/AGENTS.md)
Cloud DB + data pipeline (needs DATABASE_URL in .env — Supabase):
python -c "from engine import db; db.apply_migrations()" # apply schema
python -m engine.datapipeline # probe -> ingest (EDGAR) -> tag -> validate -> QA
python -m engine.datapipeline --agents # also run the LLM agents (needs a model)
Optional — sign-in + a per-user watchlist (otherwise the dashboard stays fully usable,
anonymous, pin/dismiss via localStorage): set SUPABASE_URL / SUPABASE_ANON_KEY in
.env (Settings → API in your Supabase project — the anon/publishable key, safe to
expose client-side). See docs/DECISIONS.md ADR-025/026.
engine/
universe.py # the ~90 indices (index -> liquid ETF proxy)
datasource.py # free index data fetch + normalize + local cache
metrics.py # value / growth / momentum / opportunity scores, ranked within kind
surfacing.py # picks the few insights worth surfacing (per kind)
ledger.py # prediction ledger + market-feedback accuracy (Postgres)
tuning.py # feedback-driven auto-tuning of the opportunity weights
llm.py # waterfall model router (Ollama Cloud/Groq/.../Anthropic) + embeddings
modelrouting.py # model-specific learning: reliability scorecard + per-family profiles
knowledge.py # curated playbooks + retrieval-augmented system prompts
memory.py # semantic memory: capture->consolidate->promote, point-in-time recall
context/ # the curated .md playbooks (house_rules, sector_kpis, ...)
pipeline.py # valuation orchestration -> dashboard_data.json
datapipeline.py # the sequenced DATA pipeline job (probe->ingest->tag->validate->QA->memory)
db.py # Postgres (Tier A) access + migration runner
migrations/ # versioned SQL schema (0001..0008)
quality.py # data-quality checks (warnings + score)
recalibration.py# decides when a backtest must be redone (backward recalibration)
fundamentals.py # stock-level retrieval routed through the chosen source
api.py / cli.py # FastAPI server + CLI
sources/ # SourceAdapter interface, registry, adapters (EDGAR/SimFin/...),
# seed_catalog.json (40 sources), metric_catalog.json (110 KPIs)
dataagent/ # source probe/score/decide (job) + discover (agent)
sectoragent/ # SIC tagging + catalog validation (job) + KPI research (agent)
dashboard/ # static, no-build UI (focus lens, Value×Growth map, scoreboard)
docs/ # STATUS, ROADMAP, ARCHITECTURE, AGENTS, DATA_INGESTION
.github/workflows/# data-pipeline (daily) + valuation refresh (weekly)
scripts/ # local cron helper
data/dashboard_data.json is the single contract between engine and UI. The hosted site
serves a committed snapshot of it and refreshes weekly via GitHub Actions.
Full current state: docs/STATUS.md. In short:
The architecture doc has a measurable "definition of agentic" checklist; the roadmap closes the gap from automated to agentic.
This software is provided for informational and educational purposes only. It is not investment advice, a recommendation, or an offer to buy or sell any security. The rankings are experimental and not yet statistically validated, may contain errors, and rely on free data that can be incomplete or wrong. Markets are risky; do your own research and consult a licensed professional. The authors accept no liability for any use of this software. See DISCLAIMER.md.
MIT for the code. Market data is subject to each source's own terms — see the
license notes in engine/sources/seed_catalog.json and the data-ingestion agent.