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

如何从Yahoo Finance拉取指定时间区间的历史beta数据

解决方案

方法1:直接获取Yahoo Finance官方内置Beta值

你在个股行情页看到的官方Beta可通过yfinance.Ticker的info字段直接提取,该值为Yahoo默认计算的5年月度Beta,无需自行计算方差、协方差等指标,示例代码如下:

import yfinance as yf
from datetime import date

# 单标的获取Beta
aapl = yf.Ticker("AAPL")
aapl_beta = aapl.info.get("beta")
print(f"AAPL官方Beta值:{aapl_beta}")

# 多标的批量获取Beta
tickers = ["AAPL", "MSFT"]
beta_dict = {}
for symbol in tickers:
    ticker = yf.Ticker(symbol)
    beta_dict[symbol] = ticker.info.get("beta")
print("多标的Beta值:", beta_dict)

注意:该接口返回的是固定统计周期的长期Beta,不支持自定义时间区间,若需要指定起止日期的历史Beta,可使用下方自定义计算方法。

方法2:自定义时间区间计算Beta

Yahoo Finance未公开提供指定区间的Beta查询接口,也无法像拉取收盘价、成交量那样直接拉取Beta时间序列,你可以通过区间收益率自行计算,步骤为:拉取标的和对应基准(美股常用标普500,代码^GSPC)的区间调整后收盘价,计算两者日度收益率的协方差,除以基准收益率的方差即可得到对应区间的Beta值。
示例代码如下:

import yfinance as yf
import numpy as np
from datetime import date

def get_custom_beta(symbol, benchmark="^GSPC", start_date="2021-08-01", end_date=date.today()):
    # 拉取标的和基准的价格数据
    data = yf.download([symbol, benchmark], start=start_date, end=end_date, progress=False)["Adj Close"]
    # 计算日度收益率
    returns = data.pct_change().dropna()
    # 计算协方差矩阵
    cov_matrix = np.cov(returns[symbol], returns[benchmark])
    # Beta = 标的与基准的协方差 / 基准的方差
    beta = cov_matrix[0][1] / cov_matrix[1][1]
    return beta

# 调用示例:获取AAPL 2021-08-01至今的Beta
aapl_custom_beta = get_custom_beta("AAPL", start_date="2021-08-01")
print(f"AAPL指定区间Beta值:{aapl_custom_beta}")

如果需要生成逐日的滚动历史Beta序列,可使用滚动窗口计算(以下示例为252个交易日≈1年的滚动窗口):

returns = yf.download(["AAPL", "^GSPC"], start="2021-01-01", progress=False)["Adj Close"].pct_change().dropna()
rolling_cov = returns["AAPL"].rolling(252).cov(returns["^GSPC"])
rolling_var = returns["^GSPC"].rolling(252).var()
rolling_beta = rolling_cov / rolling_var
print(rolling_beta.dropna())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:18:01