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

新手求助:解决R语言quantmod包getQuote的HTTP 401错误

解决Yahoo Finance HTTP 401错误的替代方案

Yahoo Finance调整了API访问规则,旧版quantmod的getQuote已经无法正常调用,导致你遇到的401未授权错误。下面是可以直接整合进现有代码的替代方案,用适配新版API的yahoofinancer包实现:

# 保留你原有的CRAN镜像设置
local({r <- getOption("repos")
    r["CRAN"] <- "https://cran.microsoft.com/snapshot/2022-05-05/"
    options(repos=r)
})

# 首次运行需要执行安装(后续可注释)
# install.packages("yahoofinancer")

# 加载所需包
library(yahoofinancer)
library(jsonlite)

ticker <- "COKE"

# 获取股票实时报价与基本面数据
stock <- Ticker$new(ticker)
quote_data <- stock$get_quote()
fundamental_data <- stock$get_summary()

# 整理匹配原需求的指标
quot <- data.frame(
  "Trade Time" = quote_data$regular_market_time,
  "Last Trade (Price Only)" = quote_data$regular_market_price,
  "Change in Percent" = quote_data$regular_market_change_percent,
  "Days High" = quote_data$regular_market_day_high,
  "Days Low" = quote_data$regular_market_day_low,
  "Dividend/Share" = fundamental_data$trailing_annual_dividend_rate,
  "Dividend Yield" = fundamental_data$trailing_annual_dividend_yield * 100, # 转为百分比格式
  "Ex-Dividend Date" = fundamental_data$ex_dividend_date,
  "Dividend Pay Date" = fundamental_data$dividend_date,
  "Earnings/Share" = fundamental_data$trailing_eps,
  "EPS Forward" = fundamental_data$forward_eps,
  "P/E Ratio (RT)" = quote_data$regular_market_pe,
  "Previous Close" = quote_data$regular_market_previous_close,
  "Open" = quote_data$regular_market_open,
  "50-day Moving Average" = fundamental_data$fifty_day_average,
  "200-day Moving Average" = fundamental_data$two_hundred_day_average
)

# 输出结果(可对接VBA调用)
print(quot)

关键说明:

  • 首次运行需取消注释安装包代码,后续使用可跳过安装步骤
  • yahoofinancer通过Yahoo官方支持的接口获取数据,不会触发401错误
  • 整理后的quot数据框格式与原代码输出结构一致,可直接对接Bert的VBA调用
  • 部分指标做了格式适配(比如股息收益率转为百分比),确保和原需求匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 23:55:21