You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术问询:yahooquery是否提供类似yfinance的移动平均线数据?

YahooQuery 获取简单移动平均线(SMA)的实现方案

YahooQuery本身并未提供直接获取SMA的内置接口,但可以通过以下两种高效方式实现需求:

1. 历史数据+Pandas计算(推荐批量场景)

YahooQuery拉取历史数据的速度优势明显,结合Pandas的滚动窗口计算可以快速得到SMA,批量处理多只股票也很高效:

from yahooquery import Ticker
import pandas as pd

# 批量指定股票代码
tickers = Ticker(["AAPL", "MSFT", "GOOGL"])

# 拉取1年日线数据(可按需调整period和interval参数)
hist_data = tickers.history(period="1y", interval="1d")

# 重置索引,便于按股票分组计算
df = hist_data.reset_index()

# 计算20日、50日SMA
df["SMA_20"] = df.groupby("symbol")["close"].rolling(20).mean().droplevel(0)
df["SMA_50"] = df.groupby("symbol")["close"].rolling(50).mean().droplevel(0)

# 输出结果示例
print(df[["symbol", "date", "close", "SMA_20", "SMA_50"]].tail(10))

2. 调用Chart API(进阶,不推荐批量)

Yahoo Finance前端通过Chart接口返回包含SMA的技术指标数据,YahooQuery可以间接调用该接口,但返回数据结构复杂,且批量处理时不如第一种方案直观,适合单只股票的特定场景。

补充提示

  • 若需要更多技术指标(如EMA、RSI),可以结合TA-Lib库,基于YahooQuery拉取的原始数据进行计算,同样高效。
  • 这种计算方式的性能远优于yfinance,完全可以匹配你批量拉取数据的需求。

内容的提问来源于stack exchange,提问作者JRece

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 00:23:19