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
- period:
.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') # 汇率
配置与关键字参数
Ticker、Screener和Research类接受以下可选参数:
性能与可靠性
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=...- 在Research和Ticker实例间共享认证
最佳实践
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+
注意事项
- 雅虎财经可能限速或阻止请求。使用
retry、backoff_factor和status_forcelist以提高鲁棒性。 - 高级功能(Research类)需要付费的雅虎财经高级版订阅。
- 数据准确性和可用性取决于雅虎财经的上游数据提供商。