mcpField
Y
yfinance-data

yfinance-data

github.com/himself65数据与数据库3.5k4.0k 次安装3 天前更新
代码仓库

关于 yfinance-data

yfinance-data 是面向金融数据任务的技能,指导通过 Python yfinance 从 Yahoo Finance 获取行情、财务报表、公司行动和分析数据,并按用户问题选择相应方法。

主要功能

  1. 01获取当前报价与历史价格
  2. 02读取财务报表和公司行动
  3. 03查询期权、分析师及持仓数据
  4. 04比较股票、筛选股票及查看行业
  5. 05提供数据处理与呈现指引

适用场景

  1. 01查找股票报价或历史 OHLCV 数据
  2. 02查看公司财务报表、分红或拆股
  3. 03查询期权链、分析师评级或新闻
  4. 04比较多只股票或筛选市场标的

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/himself65/finance-skills --skill yfinance-data

安装后在 Claude Code 中输入/yfinance-data确认已加载。

附带文件README.mdreferences/api_reference.md

详细介绍

yfinance 数据技能

如果宿主尚未执行以下 shell 探测(例如在 Codex 中),请在选择设置方案前,使用其 shell 工具运行 ! 包裹的命令。使用实际输出;如果无法访问 shell,请说明这一限制。

使用 yfinance Python 库获取 Yahoo Finance 的金融和市场数据。

重要:yfinance 与 Yahoo, Inc. 没有关联。数据仅供研究和教育用途。


第 1 步:确保 yfinance 可用

当前环境状态:

!`python3 -c "exec('try:\n import yfinance\n print(\'yfinance \' + yfinance.__version__ + \' installed\')\nexcept Exception:\n print(\'YFINANCE_NOT_INSTALLED\')')"`

如果出现 YFINANCE_NOT_INSTALLED,请先安装,然后再运行任何代码:

import subprocess, sys
subprocess.check_call([sys.executable, "-m", "pip", "install", "-q", "yfinance"])

如果已安装 yfinance,请跳过安装步骤,直接继续。


第 2 步:确定用户的需求

将用户的请求对应到以下一个或多个数据类别,然后使用 references/api_reference.md 中相应的代码。

用户请求数据类别主要方法
股票价格、报价当前价格ticker.info 或 ticker.fast_info
价格历史、图表数据历史 OHLCVticker.history() 或 yf.download()
资产负债表财务报表ticker.balance_sheet
利润表、营收财务报表ticker.income_stmt
现金流财务报表ticker.cashflow
股息公司行为ticker.dividends
股票拆分公司行为ticker.splits
期权链、看涨期权、看跌期权期权数据ticker.option_chain()
财报、EPS分析ticker.earnings_history
分析师目标价分析ticker.analyst_price_targets
建议、评级分析ticker.recommendations
上调/下调评级分析ticker.upgrades_downgrades
机构持有人所有权ticker.institutional_holders
内部人交易所有权ticker.insider_transactions
公司概况、行业通用信息ticker.info
比较多只股票批量下载yf.download()
筛选股票筛选器yf.screen() + yf.EquityQuery
行业/产业数据市场数据yf.Sector / yf.Industry
新闻新闻ticker.news

第 3 步:编写并执行代码

通用模式
import yfinance as yf

ticker = yf.Ticker("AAPL")
# ... use the appropriate method from the reference
关键规则
  1. 始终使用 try/except 包裹——Yahoo Finance 可能会限制请求频率或返回空数据
  2. 比较多个代码时使用 yf.download()——多线程处理速度更快
  3. 获取期权数据时,先通过 ticker.options 列出到期日期,再调用 ticker.option_chain(date)
  4. 获取季度数据时,使用 quarterly_ 前缀:ticker.quarterly_income_stmt、ticker.quarterly_balance_sheet、ticker.quarterly_cashflow
  5. 查询较大的日期范围时,注意日内数据的限制——1m 数据最多追溯约 7 天,1h 数据最多追溯约 730 天
  6. 清晰地输出 DataFrame——使用 .to_string() 或 .to_markdown() 提高可读性,或选择关键列
  7. 时区处理——yfinance 返回带时区的 datetime 索引(例如 America/New_York)。比较日期时,始终使用 pd.Timestamp(..., tz=...),或通过 .tz_localize(None) 去掉时区。详情请参阅参考文件。
有效周期和间隔
周期1d、5d、1mo、3mo、6mo、1y、2y、5y、10y、ytd、max
间隔1m、2m、5m、15m、30m、60m、90m、1h、1d、5d、1wk、1mo、3mo

第 4 步:呈现数据

先用用户要求的数字作答,再提供辅助表格(Markdown 格式,或仅保留关键列的精简 DataFrame)。指出数据中的显著情况——例如财报超预期或不及预期、成交量异常、股息变动——并在有助于解读数字时补充背景,例如行业平均值、历史区间或分析师共识。如果用户需要图表,请同时提供数据可视化。


参考文件

  • references/api_reference.md — 完整的 yfinance API 参考,涵盖每个数据类别的代码示例

需要准确的方法签名或边界情况处理方式时,请阅读参考文件。

评论

支持 Markdown