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

为何quantmod::getDividends()无法获取NSAV.NE的分红数据?

如何用quantmod获取NSAV.NE的分红数据?

我正在使用quantmod v0.4.20查看高息储蓄ETF的分红数据。雅虎财经显示以下两只ETF2022年均有月度分红:

  • Ninepoint High Interest Savings Fund ETF (NSAV.NE)
  • Purpose High Interest Savings ETF (PSA.TO)

但调用getDividends()仅能获取到PSA.TO的分红数据,NSAV.NE返回空值。相关代码如下:

library("quantmod")

# Ninepoint High Interest Savings Fund ETF
div_nsav <- getDividends(
  Symbol = "NSAV.NE",
  src = "yahoo", 
  from = "2022-01-01",
  to = "2022-12-01")

# > div_nsav
# NSAV.NE.div (无数据)

# Purpose High Interest Savings ETF
div_psa <- getDividends(
  Symbol = "PSA.TO",
  src = "yahoo", 
  from = "2022-01-01",
  to = "2022-12-01")

# > div_psa
# PSA.TO.div
# 2021-12-31      0.026
# 2022-01-28      0.021
# 2022-02-25      0.022
# 2022-03-30      0.035
# 2022-04-28      0.042
# 2022-05-30      0.058
# 2022-06-29      0.073
# 2022-07-28      0.093
# 2022-08-30      0.128
# 2022-09-29      0.139
# 2022-10-28      0.145
# 2022-11-29      0.179

原因与解决方法

1. 改用getSymbols()提取分红数据

getDividends()对部分加拿大上市标的(如.NE后缀)可能存在接口数据限制,可通过getSymbols()获取包含分红的完整数据集,再提取对应字段:

library("quantmod")

# 获取NSAV.NE的完整数据(包含分红列)
getSymbols("NSAV.NE", src = "yahoo", from = "2022-01-01", to = "2022-12-01", auto.assign = TRUE)

# 提取分红数据
div_nsav <- NSAV.NE[, "NSAV.NE.div"]
print(div_nsav)

2. 调整getDividends()参数尝试

雅虎财经API对不同交易所标的的返回格式可能存在差异,可添加adjust = TRUE参数重试:

div_nsav <- getDividends(
  Symbol = "NSAV.NE",
  src = "yahoo", 
  from = "2022-01-01",
  to = "2022-12-01",
  adjust = TRUE)

3. 使用tidyquant替代(兼容方案)

如果quantmod接口仍无法获取数据,可尝试tidyquant包,它对部分标的的数据兼容性更好:

library(tidyquant)

div_nsav <- tq_get("NSAV.NE", get = "dividends", from = "2022-01-01", to = "2022-12-01")
print(div_nsav)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:45:29