# Load packages
# Core
library(tidyverse)
library(tidyquant)
Collect individual returns into a portfolio by assigning a weight to each stock
Choose your stocks. “MSFT”, “GOOG”
from 2012-12-31 to 2017-12-31
symbols <- c("MSFT", "GOOG")
prices <- tq_get(x = symbols,
get = "stock.prices",
from = "2012-12-31",
to = "2017-12-31")
asset_returns_tbl <- prices %>%
group_by(symbol) %>%
tq_transmute(select = adjusted,
mutate_fun = periodReturn,
period = "monthly",
type = "log") %>%
slice(-1) %>%
ungroup() %>%
set_names(c("asset", "date", "returns"))
# symbols
symbols <- asset_returns_tbl %>%
distinct(asset) %>%
pull()
symbols
## [1] "GOOG" "MSFT"
# weights
weights <- c(0.5, 0.5)
weights
## [1] 0.5 0.5
w_tbl <- tibble(symbols, weights)
w_tbl
## # A tibble: 2 × 2
## symbols weights
## <chr> <dbl>
## 1 GOOG 0.5
## 2 MSFT 0.5
#?tq_portfolio
portfolio_returns_tbl <- asset_returns_tbl %>%
tq_portfolio(assets_col = asset,
returns_col = returns,
weights = w_tbl,
rebalance_on = "months")
portfolio_returns_tbl
## # A tibble: 60 × 2
## date portfolio.returns
## <date> <dbl>
## 1 2013-01-31 0.0467
## 2 2013-02-28 0.0397
## 3 2013-03-28 0.00997
## 4 2013-04-30 0.0917
## 5 2013-05-31 0.0575
## 6 2013-06-28 0.0000395
## 7 2013-07-31 -0.0365
## 8 2013-08-30 0.00387
## 9 2013-09-30 0.0150
## 10 2013-10-31 0.112
## # … with 50 more rows
portfolio_returns_tbl %>%
ggplot(mapping = aes(x=portfolio.returns)) +
geom_histogram(fill = "cornflowerblue",
binwidth = 0.01) +
geom_density() +
#Formatting
scale_x_continuous(labels = scales::percent_format())+
labs(x = "returns",
y = "distribution",
title = "Portfolio Histogram & Density")
What return should you expect from the portfolio in a typical quarter? GOOG and MSFT can expect returns commonly around -5% ranging to over 10%. There is however some risk as there are extreme returns of well over 10% and even nearly -10%. Risk taking investors should see GOOG and MSFT as there is a good chance you will see positive quarterly returns ranging from above 1% to over 10%. Overall, MSFT and GOOG are solid buys for even conservative investors as tech stocks can see volatility, but these two tend to do pretty well as their worst quarterly returns usually range from 0 - 6%.