如何使用Python的yfinance库获取外汇市场能源、金属类产品实时数据
解决yfinance无法获取贵金属、能源类标的行情的方案
问题根因
你之前使用audusd、usdjpy这类裸代码能请求成功,是yfinance对主流直盘外汇标的做了简写兼容。雅虎财经官方的外汇计价类标的统一命名规则为「标的代码+=X」后缀,贵金属、能源类标的没有做简写兼容,必须补全规则才能正常请求。
正确调用示例
1. 现货类标的(和外汇盘逻辑一致)
# 现货黄金 XAU/USD df_gold = yf.download(tickers = 'XAUUSD=X' ,period ='1d', interval = '1h') # 现货布伦特原油 XBR/USD df_brent = yf.download(tickers = 'XBRUSD=X' ,period ='1d', interval = '1h') # 现货天然气 df_gas = yf.download(tickers = 'NGASUSD=X' ,period ='1d', interval = '1h')
2. 期货类标的
如果你需要对应商品的期货合约数据,直接使用雅虎财经的期货代码即可:
# 纽约黄金期货 df_gold_future = yf.download(tickers = 'GC=F' ,period ='1d', interval = '1h') # WTI原油期货 df_wti_future = yf.download(tickers = 'CL=F' ,period ='1d', interval = '1h') # 天然气期货 df_gas_future = yf.download(tickers = 'NG=F' ,period ='1d', interval = '1h')
注意事项
- 标的代码建议全大写,避免部分场景下匹配失败
- 小众商品标的如果返回空,可以先确认雅虎财经是否收录对应标的的行情数据
内容的提问来源于stack exchange,提问作者kuwil
相关产品推荐
相关产品推荐

