【发布时间】:2016-03-28 05:31:21
【问题描述】:
我是 R、循环和 quantmod 的新手。我试图说服 quantmod 跳过它无法处理的任何代码并继续下一个代码,而不是停止。我以为我在这里找到了答案how do I loop through all the stocks with quantmod and ttr?,但我无法让 Rime 的解决方案发挥作用:
如果循环中断,比如第 50 次迭代,那么只需通过更改以下内容重新运行最后一段代码
# Actual loop:
# IF IT BREAKS ON THE 50th ITERATION, it must be skipped, therefore change it to 51
for(i in 51:length(symbols)) {
symbols[i]-> symbol
...
下面是我的原始代码,它只返回许多值中的 8 个(所以我假设 9 是问题点)。
library(gdata)
d = read.xls("~/Documents/TEST.xlsx", sheet = 1, stringsAsFactors=F)
library(quantmod)
sym <- as.character(d[,1])
results <- NULL
for (ii in sym){
data1 <- getSymbols(Symbols = ii,
src = "yahoo",
from = Sys.Date() - 100,
auto.assign = FALSE)
de = head(data1,150)
colnames(de) <- c("open","high","low","close","volume","adj.")
overnightRtn <- (as.numeric(de[2:nrow(de),"open"])/as.numeric(de[1:(nrow(de)-1),"close"])) - 1
results <- rbind(results,cbind(
paste(round(min(overnightRtn,na.rm=T),5),"%",sep="")))
}
colnames(results) <- c("overnightRtn2")
rownames(results) <- sym
View(results)
当我将for(ii in sym) 更改为for(ii in 9:length(sym)) 时出现错误:
找不到函数“getSymbols.9”
这里是d[,1]的开始:
[1] "ABX" "ACC" "ACCO" "ACE" "ACG" "ACH" "ACI" "ACM" "ACMP" "ACN"
【问题讨论】: