Я пытаюсь поместить свой сценарий в цикл For-Loop, чтобы рассчитать среднесуточный доход для нескольких акций.
Но при настройке цикла For-I я получаю следующую ошибку:
Ошибка в 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))
}