WorldQuant BRAIN Alpha Research
QuantML-Research/wq-alpha-research
Chinese-language playbook for WorldQuant BRAIN alphas: choose fields, write expressions, backtest, diagnose check failures, tune turnover, submit and build portfolios.
Pulls price history and company research data for US, Hong Kong and Canadian stocks, ETFs and indices from Yahoo Finance, with no API key.
$ npx skills add HKUDS/Vibe-Trading --skill yfinance -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install HKUDS/Vibe-Trading yfinance --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/HKUDS/Vibe-Trading.git skills-src && mkdir -p .claude/skills && cp -r skills-src/agent/src/skills/yfinance .claude/skills/yfinance && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "yfinance" agent skill from https://github.com/HKUDS/Vibe-Trading/tree/main/agent/src/skills/yfinance into .claude/skills/yfinance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yfinance", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/HKUDS/Vibe-Trading/tree/main/agent/src/skills/yfinanceType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add HKUDS/Vibe-Trading --skill yfinance -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install HKUDS/Vibe-Trading yfinance --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HKUDS/Vibe-Trading.git skills-src && mkdir -p .agents/skills && cp -r skills-src/agent/src/skills/yfinance .agents/skills/yfinance && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "yfinance" agent skill from https://github.com/HKUDS/Vibe-Trading/tree/main/agent/src/skills/yfinance into .agents/skills/yfinance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yfinance", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add HKUDS/Vibe-Trading --skill yfinance -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install HKUDS/Vibe-Trading yfinance --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HKUDS/Vibe-Trading.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/agent/src/skills/yfinance .cursor/skills/yfinance && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "yfinance" agent skill from https://github.com/HKUDS/Vibe-Trading/tree/main/agent/src/skills/yfinance into .cursor/skills/yfinance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yfinance", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/HKUDS/Vibe-Trading.git --path agent/src/skills/yfinance--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add HKUDS/Vibe-Trading --skill yfinance -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install HKUDS/Vibe-Trading yfinance --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HKUDS/Vibe-Trading.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/agent/src/skills/yfinance .gemini/skills/yfinance && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "yfinance" agent skill from https://github.com/HKUDS/Vibe-Trading/tree/main/agent/src/skills/yfinance into .gemini/skills/yfinance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yfinance", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install HKUDS/Vibe-Trading yfinanceInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add HKUDS/Vibe-Trading --skill yfinance -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/HKUDS/Vibe-Trading.git skills-src && mkdir -p .github/skills && cp -r skills-src/agent/src/skills/yfinance .github/skills/yfinance && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "yfinance" agent skill from https://github.com/HKUDS/Vibe-Trading/tree/main/agent/src/skills/yfinance into .github/skills/yfinance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yfinance", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add HKUDS/Vibe-Trading --skill yfinance -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install HKUDS/Vibe-Trading yfinance --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HKUDS/Vibe-Trading.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/agent/src/skills/yfinance .opencode/skills/yfinance && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "yfinance" agent skill from https://github.com/HKUDS/Vibe-Trading/tree/main/agent/src/skills/yfinance into .opencode/skills/yfinance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yfinance", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
yfinancePulls price history and company research data for US, Hong Kong and Canadian stocks, ETFs and indices from Yahoo Finance, with no API key.
This skill explains how to get market data through yfinance, the open-source Python wrapper for Yahoo Finance. Beyond OHLCV bars it reaches company info, financial statements, options, holders and insider transactions, and it needs no registration or API key.
Inside the Vibe-Trading project a built-in yfinance loader switches on when a backtest sets its data source to yfinance or auto. For plain price bars the skill prefers the get_market_data tool, which normalizes symbols and drops malformed rows, and saves direct yfinance calls for the other data types. Six reference documents describe the project's own Yahoo client (chart, quote summary, options, search) and the get_options_chain and get_stock_profile tools. The agent is told to open only the one it needs, and calls share one throttled gate because Yahoo limits by source IP.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e532650. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python and json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
yfinance Market Data loads about 2.2k tokens when it runs, and up to ~6.5k if it reads all its reference files. Until then it costs about 45 tokens; SKILL.md has 676 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from HKUDS/Vibe-Trading at commit e532650, republished under its MIT licence (© HKUDS). 676 words, ~2,247 tokens.
.claude/skills/yfinance/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.yfinance is an open-source Python wrapper for Yahoo Finance, providing global market data (US, HK, and Canadian stocks, ETFs, indices) including historical and real-time quotes. Completely free, no registration or API key required.
The project has a built-in yfinance DataLoader (backtest/loaders/yfinance_loader.py). When backtesting, set source: "yfinance" or source: "auto" to invoke it automatically.
For OHLCV bars in agent/swarm work, prefer the get_market_data tool when it is available. It routes through the project loader layer, normalizes symbols, removes malformed OHLC rows, and returns strict JSON. Use direct yfinance calls mainly for data outside OHLCV coverage such as company info, financial statements, options, holders, and insider transactions.
Beyond the yfinance package, the project ships a built-in Yahoo public-API
client (backtest.loaders.yahoo_client) and two read-only agent tools that
sit on top of it. These reach Yahoo's own unauthenticated JSON endpoints
directly via requests (no yfinance install needed), share one throttled
HTTP gate (Yahoo rate-limits by source IP), and handle the cookie+crumb
handshake automatically. Each interface has its own reference doc — read the
one you need rather than loading them all:
| Doc | Covers |
|---|---|
| yahoo_client.get_chart | Direct v8 OHLCV bars (range or epoch window) |
| yahoo_client.get_quote_summary | v10 quoteSummary modules (key stats, financials, ownership) |
| yahoo_client.get_options | v7 option chain (expirations + calls/puts) |
| yahoo_client.search | v1 instrument search by ticker/name |
| get_options_chain tool | Agent tool: US options ladder envelope |
| get_stock_profile tool | Agent tool: company profile/estimates/ownership envelope |
Path convention: every link above is written relative to this document (
references/...), the form GitHub resolves when the file is opened in a browser.read_fileresolves the same string against the skill that owns it, so the agent and a human reader reach one file. Reuse the relative form for any new reference docs, and keep reference paths unique across skills: a path two skills both carry is reported as ambiguous rather than guessed.
The Yahoo client uses the project ticker convention (AAPL.US → AAPL,
00700.HK → 0700.HK, TD.TO and PNG.V pass through); see the
Ticker Format Conversion table below — the same
rules apply across all of the interfaces above.
Preferred OHLCV tool call:
{
"codes": ["AAPL.US", "700.HK", "TD.TO", "PNG.V"],
"start_date": "2025-01-01",
"end_date": "2026-01-01",
"source": "yfinance",
"interval": "1D"
}If you must write a Python script for OHLCV, use the DataLoader instead of raw yf.download:
from backtest.loaders.registry import get_loader_cls_with_fallback
loader = get_loader_cls_with_fallback("yfinance")()
data = loader.fetch(
["AAPL.US", "700.HK", "TD.TO", "PNG.V"],
"2025-01-01",
"2026-01-01",
interval="1D",
)
for symbol, df in data.items():
print(symbol, df.tail())The project uses a unified ticker format. The DataLoader automatically converts to yfinance format:
| Project Format | yfinance Format | Market |
|---|---|---|
AAPL.US | AAPL | US stock |
MSFT.US | MSFT | US stock |
700.HK | 0700.HK | HK stock |
9988.HK | 9988.HK | HK stock |
TD.TO | TD.TO | Toronto Stock Exchange stock |
PNG.V | PNG.V | TSX Venture stock |
SPY.US | SPY | US ETF |
Rules:
.US suffix → use the raw ticker.HK, pad the number to 4 digits (700 → 0700).TO (TSX) or .V (TSXV) unchangedPrefer get_market_data for OHLCV whenever the tool is available:
{
"codes": ["AAPL.US", "MSFT.US", "GOOGL.US"],
"start_date": "2025-01-01",
"end_date": "2026-01-01",
"source": "yfinance",
"interval": "1D",
"max_rows": 250
}For script-based OHLCV analysis, use the loader:
from backtest.loaders.registry import get_loader_cls_with_fallback
loader = get_loader_cls_with_fallback("yfinance")()
# Single stock
single = loader.fetch(["AAPL.US"], "2025-01-01", "2026-01-01", interval="1D")
# Specific interval
hourly = loader.fetch(["AAPL.US"], "2026-03-01", "2026-03-30", interval="1H")Supported intervals:
1m, 2m, 5m, 15m, 30m, 60m, 90m1h1d, 5d, 1wk, 1mo, 3moMinute data limits:
1m: up to 7 days of history2m/5m/15m/30m/60m/90m: up to 60 days1h: up to 730 days1d and above: unlimitedticker = yf.Ticker("AAPL")
info = ticker.info
print(f"Company: {info.get('longName')}")
print(f"Industry: {info.get('industry')}")
print(f"Market cap: {info.get('marketCap')}")
print(f"PE: {info.get('trailingPE')}")
print(f"EPS: {info.get('trailingEps')}")
print(f"Dividend yield: {info.get('dividendYield')}")ticker = yf.Ticker("AAPL")
# Income statement (annual)
income = ticker.financials
# Income statement (quarterly)
income_q = ticker.quarterly_financials
# Balance sheet
balance = ticker.balance_sheet
# Cash flow statement
cashflow = ticker.cashflow
# Earnings data
earnings = ticker.earningsticker = yf.Ticker("AAPL")
# Dividend history
dividends = ticker.dividends
# Stock split history
splits = ticker.splits
# All corporate actions
actions = ticker.actionsticker = yf.Ticker("AAPL")
# Institutional holders
holders = ticker.institutional_holders
# Major holders summary
major = ticker.major_holders
# Insider transactions
insider = ticker.insider_transactions# Major indices
sp500 = yf.download("^GSPC", start="2025-01-01", end="2026-01-01", progress=False) # S&P 500
nasdaq = yf.download("^IXIC", start="2025-01-01", end="2026-01-01", progress=False) # NASDAQ
hsi = yf.download("^HSI", start="2025-01-01", end="2026-01-01", progress=False) # Hang Seng Index
# ETFs
spy = yf.download("SPY", start="2025-01-01", end="2026-01-01", progress=False)
qqq = yf.download("QQQ", start="2025-01-01", end="2026-01-01", progress=False)# Currency pairs
usdcny = yf.download("CNY=X", start="2025-01-01", end="2026-01-01", progress=False)
usdhkd = yf.download("HKD=X", start="2025-01-01", end="2026-01-01", progress=False)
eurusd = yf.download("EURUSD=X", start="2025-01-01", end="2026-01-01", progress=False){
"source": "yfinance",
"codes": ["AAPL.US", "MSFT.US"],
"start_date": "2020-01-01",
"end_date": "2026-03-30",
"initial_cash": 1000000,
"commission": 0.001,
"extra_fields": null
}{
"source": "auto",
"codes": ["000001.SZ", "AAPL.US", "700.HK", "BTC-USDT"],
"start_date": "2024-01-01",
"end_date": "2026-03-30",
"initial_cash": 1000000,
"commission": 0.001,
"extra_fields": null
}source: "auto" routes automatically by ticker format: A-shares → the China fallback chain, HK stocks → the HK chain, Canadian .TO/.V stocks → Yahoo/yfinance, and crypto → OKX.
.HK; pad with leading zeros where neededauto_adjust=True (default) returns forward-adjusted prices; the project loader uses auto_adjust=Falseyf.Ticker().info calls© HKUDS, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files (references) in agent/src/skills/yfinance of HKUDS/Vibe-Trading.
Open the folder on GitHubat commit e532650
yfinance Market Data next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| yfinance Market Data this skillHKUDS/Vibe-Trading | 35k | — | ~2.2k | Automated safety check: Pass | MIT | |
| WorldQuant BRAIN Alpha ResearchQuantML-Research/wq-alpha-research | 405 | — | ~4.9k | Automated safety check: Pass | None | |
| Regimejackson-video-resources/markov-hedge-fund-method | 483 | — | ~1.6k | Automated safety check: Pass | Custom licence | |
| Tushare Datazillionare/zillionare | 321 | 2 repos | ~2.3k | Automated safety check: Pass | None | |
| Polymarket Tennislivetennisapi/livetennisapi-mcp | 152 | — | ~3k | Automated safety check: Pass | MIT | |
| Yahoo Finance24mlight/StockClaw | 101 | 2 repos | ~1.1k | Automated safety check: Notes | MIT |
QuantML-Research/wq-alpha-research
Chinese-language playbook for WorldQuant BRAIN alphas: choose fields, write expressions, backtest, diagnose check failures, tune turnover, submit and build portfolios.
jackson-video-resources/markov-hedge-fund-method
Detect the market regime (Bull / Bear / Sideways) for ANY asset and turn it into a tradeable signal or a risk filter.
zillionare/zillionare
面向中文自然语言的 Tushare 数据研究技能。用于把“看看这只股票最近怎么样”“帮我查财报趋势”“最近哪个板块最强”“北向资金在买什么”“给我导出一份行情数据”这类请求,转成可执行的数据获取、清洗、对比、筛选、导出与简要分析流程。适用于 A 股、指数、ETF/基金、财务、估值、资金流、公告新闻、板块概念与宏观数据等研究场景。
livetennisapi/livetennisapi-mcp
Build observe-only Polymarket and Kalshi tennis market tooling on the polymarket-tennis Python package (MIT) plus the Live Tennis API free tier.
24mlight/StockClaw
Get stock prices, quotes, fundamentals, earnings, options, dividends, and analyst ratings using Yahoo Finance.
liusai0820/Stock-Analysis-Skill
股票智能分析技能。输入股票代码(A股/港股/美股),自动完成: 1. An agent skill from liusai0820/Stock-Analysis-Skill.
HKUDS/Vibe-Trading
Index of Eastmoney's free, no-token market data interfaces for China A-shares and Hong Kong stocks: fund flows, dragon-tiger lists, margin trading, reports and news.
HKUDS/Vibe-Trading
Retrieves public OKX cryptocurrency market data such as spot prices, candlesticks, funding rates and open interest through the OKX V5 REST API, with no authentication.
HKUDS/Vibe-Trading
Fetches U.S. SEC EDGAR data: resolves tickers to CIK numbers, lists recent 10-K, 10-Q and 8-K filings with document URLs, and pulls XBRL financial series.
HKUDS/Vibe-Trading
Predicts whether a mainland China A-share company risks an ST or *ST warning after its next annual report, using financial thresholds and Sina penalty records.
HKUDS/Vibe-Trading
Breaks a structural trend such as AI infrastructure into its physical supply chain and ranks lesser-known listed companies sitting on each bottleneck.
HKUDS/Vibe-Trading
Plans and drafts an eight-part, roughly 120k-word investigative series on one company, built around a strict fact-check pass rather than fast drafting.
Categories
Pulls price history and company research data for US, Hong Kong and Canadian stocks, ETFs and indices from Yahoo Finance, with no API key. This skill explains how to get market data through yfinance, the open-source Python wrapper for Yahoo Finance. Beyond OHLCV bars it reaches company info, financial statements, options, holders and insider transactions, and it needs no registration or API key.
yfinance Market Data fits situations like: downloading daily price bars for a US or Canadian ticker; looking up financial statements or insider transactions for a company; pulling an options chain for a US stock; choosing a free data source for a backtest.
Run `npx skills add HKUDS/Vibe-Trading --skill yfinance -a claude-code`. Or copy the skill folder (agent/src/skills/yfinance in HKUDS/Vibe-Trading) into .claude/skills/yfinance in your project. Claude Code loads it when a task matches its description.
Run `npx skills add HKUDS/Vibe-Trading --skill yfinance -a codex`. Or copy the skill folder (agent/src/skills/yfinance in HKUDS/Vibe-Trading) into .agents/skills/yfinance in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add HKUDS/Vibe-Trading --skill yfinance -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/yfinance, .gemini/skills/yfinance, .github/skills/yfinance and .opencode/skills/yfinance in your project.
SKILL.md names no scripts, command-line tools or credentials: yfinance Market Data is instructions for the agent only. Our summary lists: Python with the yfinance package, or the project's built-in Yahoo client; Network access to Yahoo Finance.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
yfinance Market Data is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with yfinance Market Data: WorldQuant BRAIN Alpha Research (QuantML-Research/wq-alpha-research, 405 stars), Regime (jackson-video-resources/markov-hedge-fund-method, 483 stars), Tushare Data (zillionare/zillionare, 321 stars) and Polymarket Tennis (livetennisapi/livetennisapi-mcp, 152 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
HKUDS (a GitHub organization) maintains it in HKUDS/Vibe-Trading, which has 35,043 GitHub stars. The repository holds 89 skills in this directory. The repository was last updated on October 8, 2026.
Source: HKUDS/Vibe-Trading on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.