雅虎财经数据查询工具Skill yahooquery

雅虎财经数据查询工具是一个基于Python的金融数据接口库,提供对雅虎财经平台的全面数据访问。该工具支持获取股票实时报价、历史K线数据、财务报表、分析师预测、期权信息、公司基本面、ESG评分、新闻资讯等全方位金融数据。适用于量化交易、投资分析、策略回测、市场研究等场景,是金融科技开发者和数据分析师的重要工具。关键词:雅虎财经API、股票数据接口、量化交易数据源、金融数据分析、Python金融库、实时行情、历史数据、财务报表、期权数据、量化投资。

量化策略 14 次安装 344 次浏览 更新于 2/24/2026

name: yahooquery description: 通过yahooquery Python库访问雅虎财经数据,包括实时定价、基本面数据、分析师预测、期权、新闻和历史数据。

yahooquery 技能

通过yahooquery Python库全面访问雅虎财经数据。该库提供对几乎所有雅虎财经端点的编程访问,包括实时定价、基本面数据、分析师预测、期权、新闻和高级研究报告。

核心类

1. Ticker(公司特定数据)

检索一个或多个证券数据的主要接口。

from yahooquery import Ticker

# 单个或多个代码
aapl = Ticker('AAPL')
tickers = Ticker('AAPL MSFT NVDA', asynchronous=True)

2. Screener(预定义股票列表)

访问预建的筛选器,按标准发现股票。

from yahooquery import Screener

s = Screener()
screeners = s.available_screeners  # 列出所有可用筛选器
data = s.get_screeners(['day_gainers', 'most_actives'], count=10)

3. Research(需要高级订阅)

访问专有研究报告和交易想法。

from yahooquery import Research

r = Research(username='you@email.com', password='password')
reports = r.reports(report_type='Analyst Report', report_date='Last Week')
trades = r.trades(trend='Bullish', term='Short term')

Ticker类:数据模块

Ticker类通过属性和方法公开数十个数据端点。

📊 财务报表

  • .income_statement(frequency='a', trailing=True) - 利润表(年度/季度)
  • .balance_sheet(frequency='a', trailing=True) - 资产负债表
  • .cash_flow(frequency='a', trailing=True) - 现金流量表
  • .all_financial_data(frequency='a') - 合并财务数据 + 估值指标
  • .valuation_measures - 各期间的EV/EBITDA、P/E、P/B、P/S

📈 定价与市场数据

  • .price - 当前定价、市值、52周范围
  • .history(period='1y', interval='1d', start=None, end=None) - 历史OHLC数据
    • period: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max
    • interval: 1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo
  • .option_chain - 完整期权链(所有到期日)

🔍 分析与预测

  • .calendar_events - 下次财报日期、EPS/收入预测
  • .earning_history - 实际与预测EPS(最近4个季度)
  • .earnings - 历史季度/年度盈利和收入
  • .earnings_trend - 分析师对未来期间的预测
  • .recommendation_trend - 买入/卖出/持有评级随时间变化
  • .gradings - 近期分析师升级/降级

🏢 公司基本面

  • .asset_profile - 地址、行业、板块、业务摘要、高管信息
  • .company_officers - 高管及薪酬详情
  • .summary_profile - 精简公司信息
  • .key_stats - 远期P/E、利润率、贝塔系数、流通股数
  • .financial_data - 财务KPI(ROE、ROA、负债权益比、利润率)

👥 所有权与治理

  • .insider_holders - 内部持股人及持仓列表
  • .insider_transactions - 内部人士近期买卖交易
  • .institution_ownership - 顶级机构持股人
  • .fund_ownership - 顶级共同基金持股人
  • .major_holders - 所有权摘要(机构%、内部%、流通股)

🌍 ESG与评级

  • .esg_scores - 环境、社会、治理评分及争议
  • .recommendation_rating - 分析师共识(强力买入 → 强力卖出)

📰 新闻与洞察

  • .news() - 近期新闻文章
  • .technical_insights - 看涨/看跌技术形态

💰 基金与ETF专用

  • .fund_holding_info - 主要持仓、债券/股票构成
  • .fund_performance - 历史表现和回报
  • .fund_bond_holdings / .fund_bond_ratings - 债券到期日和信用评级
  • .fund_equity_holdings - 股票持仓的P/E、P/B、P/S

📊 其他模块

  • .summary_detail - 交易统计(日高/低、成交量、平均成交量)
  • .default_key_statistics - 企业价值、追踪P/E、远期P/E
  • .index_trend - 相对于基准指数的表现
  • .quote_type - 证券类型、交易所、市场

全局函数

import yahooquery as yq

# 搜索
results = yq.search('NVIDIA')

# 市场数据
market = yq.get_market_summary(country='US')  # 主要指数快照
trending = yq.get_trending(country='US')  # 热门代码

# 实用工具
currencies = yq.get_currencies()  # 支持的货币列表
exchanges = yq.get_exchanges()  # 交易所列表
rate = yq.currency_converter('USD', 'EUR')  # 汇率

配置与关键字参数

TickerScreenerResearch类接受以下可选参数:

性能与可靠性

  • asynchronous=True - 异步请求(多代码时)
  • max_workers=8 - 并发工作线程数(异步时)
  • retry=5 - 重试次数
  • backoff_factor=0.3 - 重试间的指数退避
  • status_forcelist=[429, 500, 502, 503, 504] - 需要重试的HTTP代码
  • timeout=5 - 请求超时(秒)

数据格式与验证

  • formatted=False - 如果True,返回包含{raw, fmt, longFmt}结构的数据
  • validate=True - 实例化时验证代码(无效 → .invalid_symbols
  • country='United States' - 区域数据/新闻(法国、德国、加拿大等)

网络与认证

  • proxies={'http': 'http://proxy:port'} - HTTP/HTTPS代理
  • user_agent='...' - 自定义用户代理字符串
  • verify=True - SSL证书验证
  • username='you@email.com' / password='...' - 雅虎财经高级版登录

高级功能(共享会话)

  • session=... / crumb=... - 在ResearchTicker实例间共享认证

最佳实践

1. 多代码使用异步

tickers = Ticker('AAPL MSFT NVDA TSLA', asynchronous=True)
prices = tickers.price  # 返回按代码键控的字典

2. 处理DataFrame

大多数财务方法返回pandas.DataFrame。转换为JSON输出:

df = aapl.income_statement()
print(df.to_json(orient='records', date_format='iso'))

3. 历史数据 - 1分钟间隔

雅虎限制1分钟数据每次请求7天。获取30天数据:

tickers = Ticker('AAPL', asynchronous=True)
df = tickers.history(period='1mo', interval='1m')  # 自动发起4次请求

4. 高级用户:结合Research + Ticker

r = Research(username='...', password='...')
reports = r.reports(sector='Technology', investment_rating='Bullish')

# 为Ticker重用会话
tickers = Ticker('AAPL', session=r.session, crumb=r.crumb)
data = tickers.asset_profile

常见用例

投资组合分析

portfolio = Ticker('AAPL MSFT NVDA', asynchronous=True)
summary = portfolio.summary_detail
earnings = portfolio.earnings
history = portfolio.history(period='1y')

筛选与发现

s = Screener()
gainers = s.get_screeners(['day_gainers'], count=20)
# 返回包含价格、成交量、百分比变化等的DataFrame

期权分析

nvda = Ticker('NVDA')
options = nvda.option_chain
# 筛选看涨/看跌期权、行权价、到期日

财报日历

tickers = Ticker('AAPL MSFT NVDA')
calendar = tickers.calendar_events
# 显示下次财报日期 + 分析师预测

参考文档

完整API文档位于:/Users/henryzha/.openclaw/workspace-research/skills/yahooquery/references/

  • index.md - 类和函数概述
  • ticker/ - 所有Ticker方法的详细分解
  • screener.md - Screener类指南
  • research.md - Research类(高级版)
  • keyword_arguments.md - 完整配置选项列表
  • misc.md - 全局实用函数
  • advanced.md - 在Research和Ticker间共享会话

环境

  • 安装: python3 -m pip install yahooquery
  • 依赖: pandas, requests-futures, tqdm, beautifulsoup4, lxml
  • Python版本: 3.7+

注意事项

  • 雅虎财经可能限速或阻止请求。使用retrybackoff_factorstatus_forcelist以提高鲁棒性。
  • 高级功能(Research类)需要付费的雅虎财经高级版订阅。
  • 数据准确性和可用性取决于雅虎财经的上游数据提供商。