【发布时间】:2020-01-22 02:12:11
【问题描述】:
我正在尝试将我的脚本放入 For-Loop 中,以计算多只股票的平均每日收益。
但是当我设置 For-Loop 时出现以下错误:
getSymbols 错误(Symbols = stock, src = "yahoo", from = "2005-01-01", : 多个符号请求必须使用 auto.assign=TRUE
所以我删除了env = NULL 并用auto.assign=TRUE 替换它,但是当我运行脚本时我得到NaN 结果。
任何建议将不胜感激。谢谢。
install.packages('quantmod')
library(quantmod)
stock <- c("AAPL")
{
stock.xts <- getSymbols(Symbols = stock, src = "yahoo",
from = "2005-01-01",
to = "2019-09-10",
env = NULL)
stock.xts <- as.data.frame(stock.xts)
N <- nrow(stock.xts)
todays.price <- stock.xts[2 : N,4]
yesterdays.price <- stock.xts[1 : N-1,4]
stock_dailyreturn <- (todays.price - yesterdays.price)/yesterdays.price
stock.xts$daily.return <- c(NA,(todays.price - yesterdays.price)/yesterdays.price)
print(mean(stock_dailyreturn))
}
使用 For 循环:
stock <- c("AAPL", "MSFT", "CRM", "ORCL", "NFLX", "GOOG")
for(i in 1:length(stock)){
stock.xts <- getSymbols(Symbols = stock, src = "yahoo",
from = "2005-01-01",
to = "2019-09-10",
auto.assign = TRUE)
stock.xts <- as.data.frame(stock.xts)
N <- nrow(stock.xts)
todays.price <- as.numeric(stock.xts[2 : N,4])
yesterdays.price <- as.numeric(stock.xts[1 : N-1,4])
stock_dailyreturn <- (todays.price - yesterdays.price)/yesterdays.price
stock.xts$daily.return <- c(NA,(todays.price - yesterdays.price)/yesterdays.price)
print(mean(stock.xts$daily.return))
}
【问题讨论】: