Aar*_*ron 21 finance r stockquotes quandl
所有,
我希望以15-60分钟的间隔从雅虎或谷歌下载股票数据,以获得尽可能多的历史记录.我想出了一个粗略的解决方案如下:
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))),]
Run Code Online (Sandbox Code Playgroud)
鉴于我想要导入的数据量,我担心这可能在计算上很昂贵.我也不了解我的生活,了解雅虎和谷歌的时间戳是如何编码的.
所以我的问题是双重的 - 将一系列股票的数据快速提取到R中的简单,优雅的方法是什么,以及如何解释我将使用的Google/Yahoo文件的时间戳?
Chi*_*til 22
我会先尝试回答时间戳问题.请注意这是我的解释,我可能是错的.
使用示例中的链接,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
...
...
Run Code Online (Sandbox Code Playgroud)
注意第一列的第一个值a1357828200
,我的直觉是这与它有关POSIXct
.因此快速检查:
> as.POSIXct(1357828200, origin = '1970-01-01', tz='EST')
[1] "2013-01-10 14:30:00 EST"
Run Code Online (Sandbox Code Playgroud)
所以我的直觉似乎是正确的.但时间似乎已经过去了.现在我们在数据中还有一个信息.TIMEZONE_OFFSET=-300
.因此,如果我们将时间戳减去这个数量,我们应该得到:
as.POSIXct(1357828200-300*60, origin = '1970-01-01', tz='EST')
[1] "2013-01-10 09:30:00 EST"
Run Code Online (Sandbox Code Playgroud)
请注意,我不知道您请求的是哪一天的数据.但快速检查谷歌财务显示,这些确实是2013年1月10日的价格水平.
第一列的剩余值似乎与第一行值有某种偏移.