gpt4 book ai didi

r - 如何使用R下载日内股票市场数据

转载 作者:行者123 更新时间:2023-12-03 11:55:28 24 4
gpt4 key购买 nike

所有,

我希望以15-60分钟的间隔从Yahoo或Google下载股票数据,以获取尽可能多的历史记录。我提出了一个粗略的解决方案,如下所示:

library(RCurl)
tmp <- getURL('https://www.google.com/finance/getprices?i=900&p=1000d&f=d,o,h,l,c,v&df=cpct&q=AAPL')
tmp <- strsplit(tmp,'\n')
tmp <- tmp[[1]]
tmp <- tmp[-c(1:8)]
tmp <- strsplit(tmp,',')
tmp <- do.call('rbind',tmp)
tmp <- apply(tmp,2,as.numeric)
tmp <- tmp[-apply(tmp,1,function(x) any(is.na(x))),]

考虑到我要导入的数据量,我担心这可能会在计算上昂贵。我也不是一辈子,不了解Yahoo和Google如何对时间戳进行编码。

所以我的问题是双重的-一种简单,优雅的方法可以快速将一系列股票的数据提取到R中,我该如何解释将要使用的Google / Yahoo文件上的时间戳?

最佳答案

我将首先尝试回答时间戳问题。请注意,这是我的解释,我可能是错的。

使用示例https://www.google.com/finance/getprices?i=900&p=1000d&f=d,o,h,l,c,v&df=cpct&q=AAPL中的链接,我得到以下数据:

EXCHANGE%3DNASDAQ
MARKET_OPEN_MINUTE=570
MARKET_CLOSE_MINUTE=960
INTERVAL=900
COLUMNS=DATE,CLOSE,HIGH,LOW,OPEN,VOLUME
DATA=
TIMEZONE_OFFSET=-300
a1357828200,528.5999,528.62,528.14,528.55,129259
1,522.63,528.72,522,528.6499,2054578
2,523.11,523.69,520.75,522.77,1422586
3,520.48,523.11,519.6501,523.09,1130409
4,518.28,520.579,517.86,520.34,1215466
5,518.8501,519.48,517.33,517.94,832100
6,518.685,520.22,518.63,518.85,565411
7,516.55,519.2,516.55,518.64,617281
...
...

注意第一列 a1357828200的第一个值,我的直觉是这与 POSIXct有关。因此快速检查一下:
> as.POSIXct(1357828200, origin = '1970-01-01', tz='EST')
[1] "2013-01-10 14:30:00 EST"

所以我的直觉似乎是正确的。但是时间似乎已经过去了。现在,我们在数据中还有一个信息。 TIMEZONE_OFFSET=-300。因此,如果我们用此数量抵消时间戳,我们应该得到:
as.POSIXct(1357828200-300*60, origin = '1970-01-01', tz='EST')
[1] "2013-01-10 09:30:00 EST"

请注意,我不知道您要求哪一天的数据。但是,通过对Google Finance的快速检查发现,这些确实是2013年1月10日的价格水平。

第一列的剩余值似乎与第一行的值有些偏移。

关于r - 如何使用R下载日内股票市场数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15609334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com