我想找到每只股票的月度回报。我当前的代码为我的所有股票提供相同的价值
tickers <- c('DPZ','SPY','AMD','MSFT')
Portfolio1 <- getSymbols.yahoo(tickers[1], from="2016-01-01", to= "2018-
12-
31", auto.assign=FALSE)
Portfolio2 <- Portfolio1[,6]
my_portfolio <- monthlyReturn(Portfolio2)
for(i in 2:length(tickers)){
ticker1 <- c('DPZ','SPY','AMD','MSFT')
getSymbols.yahoo(tickers[i], from="2016-01-01", to= "2018-12-31",
auto.assign=FALSE)
Portfolio2 <- Portfolio1[,6]
holder <- monthlyReturn(Portfolio2)
my_portfolio <- cbind( my_portfolio, holder )
}
names (my_portfolio) <- tickers
如果您愿意使用tidyquant
,您可以执行:
library(tidyquant)
library(dplyr)
result <- c("DPZ", "SPY", "AMD", "MSFT") %>%
tq_get(get = "stock.prices", from = "2016-01-01", to = "2018-12-31") %>%
group_by(symbol) %>%
tq_transmute(
select = adjusted,
mutate_fun = periodReturn,
period = "monthly",
col_rename = "monthly.returns",
type = "log"
)