Install any skill in seconds. Free to start, no credit card required.
Get Started Free →用于搜索金融市场、证券、上市公司基本面、价格、K 线、披露文件、财经新闻、A 股数据、港股或全球 ticker,可使用 yfinance、mootdx、API 脚本或 browser-use。
.claude/skills/opensensenova-sn-search-finance/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 93% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 66% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 54% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 41% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -19% | 0% |
API key、token 与 cookie 统一建议写在仓库根目录 .env(参考 .env.example),并由 runtime 或用户在执行前加载为同名环境变量。脚本仍只从环境变量或显式 CLI 参数读取凭证;不要把真实密钥写入 skill payload、报告、日志或提交。
用于证券、指数、基金、财务报表、行情、K 线、公告线索、财经新闻和公司基本面的检索。API 脚本和 browser-use 可以混合使用;按任务需要选择,不设固定优先级。
scripts/finance_search.py:yfinance 查全球 ticker、行情、财务、新闻、SEC filings;mootdx 查通达信/A 股行情、K 线、财务包。脚本:scripts/finance_search.py。输出 JSON。依赖按命令懒加载。
首次运行或脚本提示缺库时,使用本技能的依赖清单安装到当前 Python 环境:
bashpython3 -m pip install -r requirements.txt
不要在脚本内部自动安装依赖。若安装失败、网络不可用或包不可用,停止使用对应命令并改用公开网页来源,说明缺少依赖。
Yahoo Finance 代码后缀:美股直接用 AAPL;港股可用 0700.HK;A 股可用 600036.SH、600036.SS、000001.SZ,脚本会把 .SH 自动转成 .SS。不想自动转换时加 --no-normalize。
bashpython scripts/finance_search.py yf-search "Tesla" --limit 5 --news-count 5 python scripts/finance_search.py yf-lookup "Tencent" --type stock --limit 10 python scripts/finance_search.py yf-profile AAPL --fields longName,sector,industry,marketCap,currentPrice,trailingPE python scripts/finance_search.py yf-history AAPL --period 6mo --interval 1d --limit 120 python scripts/finance_search.py yf-download AAPL MSFT NVDA --period 1mo --interval 1d --group-by ticker python scripts/finance_search.py yf-financials MSFT --statement income --freq yearly python scripts/finance_search.py yf-financials MSFT --statement balance --freq quarterly python scripts/finance_search.py yf-news TSLA --limit 8 python scripts/finance_search.py yf-sec-filings AAPL
常用命令:
| 命令 | 用途 | | --- | --- | | yf-search | 搜公司、ticker、新闻和研究入口 | | yf-lookup | 按金融工具类型查找股票、ETF、指数、基金、期货、外汇、加密资产 | | yf-profile | 基本面画像和 fast_info | | yf-history / yf-download | 单标的或多标的历史行情 | | yf-financials | 利润表、资产负债表、现金流、盈利数据 | | yf-news | ticker 相关新闻线索 | | yf-sec-filings | SEC filings 线索 |
mootdx 使用通达信代码格式,通常是纯数字。脚本会把 600036.SH、600036.SS、000001.SZ 转成 600036、000001。
bashpython scripts/finance_search.py tdx-quotes 600036 000001 python scripts/finance_search.py tdx-bars 600036 --frequency day --offset 120 --adjust qfq python scripts/finance_search.py tdx-index 000001 --market sh --frequency day --offset 60 python scripts/finance_search.py tdx-stocks --market sh --limit 50 python scripts/finance_search.py tdx-finance 600036 python scripts/finance_search.py tdx-xdxr 600036 python scripts/finance_search.py tdx-affair-files --limit 10 python scripts/finance_search.py tdx-affair-fetch gpcw20231231.zip --downdir tmp python scripts/finance_search.py tdx-affair-parse gpcw20231231.zip --downdir tmp --limit 100
K 线 --frequency 可用:1m、5m、15m、30m、1h、day、week、mon、3mon、year,也可直接传 mootdx 数字频率。
| 场景 | 用法 | | --- | --- | | 脚本返回新闻线索 | 打开新闻 URL 或 Yahoo Finance 新闻页核对标题、发布时间、正文要点 | | 财务字段不全 | 打开 Yahoo Finance Financials、SEC、交易所公告、公司 IR 页面补证 | | A 股公告/定期报告 | 配合 sn-search-year-report 或 search-market 技能查官方披露源 | | 图表、复权、行情异常 | 打开行情页或交易所页面核对口径 | | 公司名无法映射 ticker | 用 yf-search、yf-lookup 和网页搜索互相验证 |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 20,092 | 5,806 | -71% | 1 | 1 | 0% | 3,721 | 1,844 | -50% | 0 | 0 | — |
case-02 | fail→fail | 21,730 | 8,615 | -60% | 1 | 1 | 0% | 3,789 | 2,276 | -40% | 0 | 0 | — |
case-03 | fail→pass | 6,085 | 3,134 | -48% | 1 | 1 | 0% | 1,084 | 2,092 | +93% | 0 | 0 | — |
case-04 | pass→pass | 10,621 | 2,274 | -79% | 1 | 1 | 0% | 1,897 | 1,846 | -3% | 0 | 0 | — |
case-05 | fail→pass | 6,608 | 2,722 | -59% | 1 | 1 | 0% | 1,176 | 1,955 | +66% | 0 | 0 | — |
case-06 | fail→pass | 8,317 | 4,308 | -48% | 1 | 1 | 0% | 1,370 | 2,104 | +54% | 0 | 0 | — |
case-12 | pass→pass | 10,018 | 5,655 | -44% | 1 | 1 | 0% | 1,624 | 2,396 | +48% | 0 | 0 | — |
case-07 | fail→pass | 7,227 | 2,373 | -67% | 1 | 1 | 0% | 1,355 | 1,916 | +41% | 0 | 0 | — |
case-08 | fail→pass | 13,576 | 2,809 | -79% | 1 | 1 | 0% | 2,427 | 1,966 | -19% | 0 | 0 | — |
case-09 | fail→pass | 11,725 | 3,215 | -73% | 1 | 1 | 0% | 2,274 | 2,141 | -6% | 0 | 0 | — |
case-10 | pass→pass | 8,004 | 3,701 | -54% | 1 | 1 | 0% | 1,500 | 2,153 | +44% | 0 | 0 | — |
case-11 | pass→pass | 11,301 | 3,859 | -66% | 1 | 1 | 0% | 1,805 | 2,028 | +12% | 0 | 0 | — |
case-13 | pass→pass | 14,725 | 11,694 | -21% | 1 | 1 | 0% | 2,355 | 3,574 | +52% | 0 | 0 | — |
case-14 | fail→pass | 13,236 | 4,629 | -65% | 1 | 1 | 0% | 2,054 | 2,263 | +10% | 0 | 0 | — |
case-15 | fail→pass | 8,773 | 3,285 | -63% | 1 | 1 | 0% | 1,455 | 1,961 | +35% | 0 | 0 | — |
case-16 | fail→pass | 12,827 | 3,289 | -74% | 1 | 1 | 0% | 1,731 | 2,245 | +30% | 0 | 0 | — |
case-17 | fail→pass | 6,517 | 2,730 | -58% | 1 | 1 | 0% | 1,076 | 1,926 | +79% | 0 | 0 | — |
case-18 | fail→pass | 8,963 | 8,590 | -4% | 1 | 1 | 0% | 1,167 | 2,178 | +87% | 0 | 0 | — |
case-19 | fail→pass | 13,573 | 8,342 | -39% | 1 | 1 | 0% | 2,540 | 2,413 | -5% | 0 | 0 | — |
case-20 | pass→pass | 3,391 | 3,162 | -7% | 1 | 1 | 0% | 752 | 2,112 | +181% | 0 | 0 | — |
case-21 | pass→pass | 4,266 | 2,949 | -31% | 1 | 1 | 0% | 922 | 2,111 | +129% | 0 | 0 | — |
case-22 | pass→pass | 1,752 | 2,543 | +45% | 1 | 1 | 0% | 345 | 1,971 | +471% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +55 percentage points is the difference between those two pass rates over the 20 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.