Как найти ежемесячные доходы для каждой акции в портфеле - PullRequest
0 голосов
/ 19 апреля 2020

Я хочу найти ежемесячный доход для каждой акции. Мой текущий код дает мне одинаковое значение для всех моих акций

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

1 Ответ

0 голосов
/ 19 апреля 2020

Если вы хотите использовать 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"
  )
...