
Alpha Zoo
- 2 installs
- 29.6k repo stars
- Updated August 4, 2026
- hkuds/vibe-trading
Browse prebuilt cross-sectional alpha factor libraries and run IC/IR benchmarks on a named alpha or whole zoo over a chosen universe and period.
About
Orients a user around bundled cross-sectional alpha factor libraries and benches their IC/IR over an investable universe. A developer uses it to browse named alphas or evaluate a whole factor zoo on a market.
- Browse prebuilt zoos: Kakushadze 101, GTJA 191, Qlib 158, Fama-French
- Bench a whole zoo's IC/IR over a universe and period
Alpha Zoo by the numbers
- 2 all-time installs (skills.sh)
- Ranked #870 of 1,106 Finance & Trading skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/hkuds/vibe-trading --skill alpha-zooAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 2 |
|---|---|
| repo stars | ★ 29.6k |
| Last updated | August 4, 2026 |
| Repository | hkuds/vibe-trading ↗ |
What it does
Browse prebuilt cross-sectional alpha factor libraries and run IC/IR benchmarks on a named alpha or whole zoo over a chosen universe and period.
Files
Alpha Zoo
Purpose
When the user asks about prebuilt cross-sectional alphas — Kakushadze 101, GTJA 191, Qlib 158, Fama-French / Carhart — or wants to bench a whole zoo on an investable universe (CSI 300, S&P 500, BTC-USDT, ...), this skill orients you. The zoo is the curated library; the bench is the evaluator.
Tools Available
| Tool | When to use |
|---|---|
alpha_zoo | Browse the library. action=list_alphas to enumerate (filterable by zoo / theme / universe), action=get_alpha for one alpha's metadata, action=health for registry load status. |
alpha_bench | Run IC / IR on one alpha or a whole zoo over a universe + period. Emits an HTML report. |
factor_analysis | Ad-hoc factor evaluation from a user-supplied factor CSV + return CSV. Use this when the user has their own factor (not in the zoo). |
Decision Tree
- "list all momentum alphas" →
alpha_zoowithaction=list_alphas, theme=momentum. - "show me gtja191_alpha_001" →
alpha_zoowithaction=get_alpha, alpha_id=gtja191_alpha_001. - "bench all of GTJA 191 on CSI 300 from 2020 to 2024" →
alpha_benchwithzoo=gtja191, universe=csi300, period=2020-2024. - "is the registry healthy" →
alpha_zoowithaction=health— surfacesloaded,failed, and per-error reasons. - User uploads
my_factor.csv→factor_analysis(zoo tools are for prebuilt alphas only).
Zoo Inventory
| Zoo | Description | Approx. count |
|---|---|---|
kakushadze101 | Formulaic alphas from Kakushadze's 2015 paper. Mix of momentum, reversal, volume, and microstructure. | ~101 |
gtja191 | Guotai Junan 191 alphas — A-share focused cross-sectional factors. | ~191 |
qlib158 | Microsoft Qlib's 158 alpha factors — features tuned for ML pipelines. | ~158 |
classical | Fama-French 3/5-factor + Carhart momentum. | <10 |
Counts are nominal; check alpha_zoo action=health for the live count currently loaded.
Constraints
- No per-stock per-date factor values are surfaced to the agent. IC results are aggregate stats (mean / std / IR / positive-ratio); the HTML report shows top-N by IR plus formulas, never the underlying panel.
- Lookahead is banned in the operator set.
delta(df, d)requiresd >= 1; the negative-shiftRef(df, -n)form does not exist. Seedocs/alpha-zoo/spec.mdfor the full operator catalogue. - Universe loaders may not be wired for every market yet. When
alpha_benchreturnsuniverse loader for X not yet implemented, that's the W2 scaffold — the universe is recognised but the data pull lands in W4. - Do not expose absolute filesystem paths in agent output. The bench tool writes to
~/.vibe-trading/reports/by default; refer to it by that shorthand, not by the resolved absolute path. - `alpha_zoo` is read-only.
alpha_benchwrites a single HTML file per run — no scratch state elsewhere.
Common Pitfalls
- Filter mismatch on
list_alphas: theme / universe must match the alpha's declared metadata exactly (e.g.equity_cn, notcnorchina). - Calling
alpha_benchwith bothalpha_idandzooset — they are mutually exclusive; pick one. - Empty registry (
loaded=0) means no zoo modules are populated yet; treat it as "zoos pending W3 porting" rather than a bug.
Reference
- Operator catalogue:
docs/alpha-zoo/spec.md - Registry contract:
src/factors/registry.py(frozen; do not modify) - IC / layered NAV math:
src/factors/factor_analysis_core.py