我在 AWS 上创建了一个 EC2 实例来运行 R-Server。实例类型为“t2.micro”。比我使用 Joshua Ulrich 的一些代码通过 getSymbols() 函数从雅虎获取股票数据。
在“nasdaq.symbols.head”中,按字母顺序排列纳斯达克的前 100 个股票代码。
我的问题是,执行 getSymbols() 函数需要很长时间。在执行 getSymbols() 期间,您可以在控制台中阅读以下消息:
“超过 5 个符号的请求之间暂停 1 秒”
问题是我想从所有纳斯达克股票中获取数据,所以超过 3500 个股票代码。将 EC2 的实例类型更改为例如 t2.2xlarge 似乎并没有提高性能。
这是我使用的代码。
# create environment to load data into
Data <- new.env()
getSymbols(nasdaq.symbols.head, from="2007-01-01", env=Data)
# calculate returns, merge, and create data.frame (eapply loops over all
# objects in an environment, applies a function, and returns a list)
Returns.nasdaq <- eapply(Data, function(s) ROC(Ad(s), type="discrete"))
Returns.nasdaq.DF <- as.data.frame(do.call(merge, Returns.nasdaq))
# adjust column names are re-order columns
colnames(Returns.nasdaq.DF) <- gsub(".Adjusted","",colnames(Returns.nasdaq.DF))
Returns.nasdaq.DF <- Returns.nasdaq.DF[,nasdaq.symbols.head]
tail(Returns.nasdaq.DF)