You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

在R语言中使用quantmod的getSymbols时遭遇Google Error 403问题

解决quantmod中getSymbols调用谷歌财经失败的问题

嘿,这个问题我太熟了!你碰到的坑其实是因为谷歌财经的历史数据接口早就被官方停用了,所以quantmod默认调用谷歌源的时候就会报这种打不开URL的错误,警告信息也是同样的原因导致的。下面给你几个靠谱的解决办法:

方法一:切换到雅虎财经数据源

雅虎财经是目前quantmod支持的稳定数据源之一,操作很简单:

  • 临时指定数据源:调用getSymbols时加上src = "yahoo"参数就行,示例代码:
    library(quantmod)
    getSymbols("INTC", src = "yahoo", from = "2014-11-24", to = "2018-03-21")
    
  • 设置全局默认数据源:如果你不想每次都写src参数,可以先设置全局选项,之后直接调用getSymbols即可:
    options(getSymbols.default.src = "yahoo")
    getSymbols("INTC", from = "2014-11-24", to = "2018-03-21")
    
    注意:如果你的quantmod版本比较旧,建议先更新包:install.packages("quantmod"),确保适配雅虎的最新接口。

方法二:使用Alpha Vantage数据源

Alpha Vantage提供免费的股票数据API,需要先去官方平台免费申请一个API密钥,然后按以下步骤操作:

  1. 设置API密钥:
    setDefaults(getSymbols.av, api.key = "你的API密钥")
    
  2. 调用getSymbols时指定src = "av"
    getSymbols("INTC", src = "av", from = "2014-11-24", to = "2018-03-21")
    

方法三:用tidyquant包获取数据

如果你习惯用tidyverse风格的分析,tidyquant包的tq_get函数更友好,默认调用雅虎数据源,返回的是tibble格式,方便后续分析:

  1. 安装并加载包:
    install.packages("tidyquant")
    library(tidyquant)
    
  2. 获取数据:
    intc_data <- tq_get("INTC", get = "stock.prices", from = "2014-11-24", to = "2018-03-21")
    

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

火山引擎 最新活动