如何修改getSymbols获取以周一为起始的最新周度股票数据
问题原因
getSymbols 拉取周频数据时默认要求返回完整交易周的汇总数据,当你指定的to日期落在未结束的交易周内(比如周六、或者当周还没到周五收盘),接口会返回全为NA的无效行,这是底层数据源的周频统计规则导致的,不是参数设置错误。你之前指定to = "2021-05-22"返回全NA,就是因为2021-05-22属于2021年5月第三周的周六,该交易周还没被数据源判定为完整周,所以没有有效汇总数据。
解决方案
推荐优先使用「先拉日频再手动转周频」的方案,既可以拿到截至最新交易日的周频数据,也能避免NA问题,修改后的代码如下:
# 先拉取日度原始交易数据 d_daily <- as.data.frame( getSymbols( paste("WIPRO" , ".NS", sep = ""), from ="2000-01-01", periodicity = "daily", return.class = 'zoo', env = NULL ) ) # 按周聚合生成周频数据,默认取每周最后一个交易日的交易指标 d <- apply.weekly(d_daily, last)
如果需要自定义周频统计规则(比如周开盘、周最高、周最低、周收盘、周累计成交量),可以自行修改apply.weekly的第二个参数,对应配置为取每周第一个值、最大值、最小值、最后一个值、求和即可。
内容的提问来源于stack exchange,提问作者Stupid_Intern
相关产品推荐
相关产品推荐

