# Load packages
# Core
library(tidyverse)
library(tidyquant)
Visualize expected returns and risk to make it easier to compare the performance of multiple assets and portfolios.
Choose your stocks.
from 2012-12-31 to 2017-12-31
symbols <- c("AAPL", "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 <- asset_returns_tbl %>% distinct(asset) %>% pull()
w <- c(0.35,
0.35,
0.30)
w_tbl <- tibble(symbols, w)
portfolio_returns_tbl <- asset_returns_tbl %>%
tq_portfolio(assets_col = asset,
returns_col = returns,
weights = w_tbl,
col_rename = "returns",
rebalance_on = "months")
portfolio_returns_tbl
## # A tibble: 60 × 2
## date returns
## <date> <dbl>
## 1 2013-01-31 -0.0231
## 2 2013-02-28 0.0178
## 3 2013-03-28 0.00654
## 4 2013-04-30 0.0570
## 5 2013-05-31 0.0450
## 6 2013-06-28 -0.0435
## 7 2013-07-31 0.0247
## 8 2013-08-30 0.0281
## 9 2013-09-30 0.00310
## 10 2013-10-31 0.108
## # ℹ 50 more rows
portfolio_sd_tidyquant_builtin_percent <- portfolio_returns_tbl %>%
tq_performance(Ra = returns,
Rb = NULL,
performance_fun = table.Stats) %>%
select(Stdev) %>%
mutate(tq_sd = round(Stdev, 4) * 100)
portfolio_sd_tidyquant_builtin_percent
## # A tibble: 1 × 2
## Stdev tq_sd
## <dbl> <dbl>
## 1 0.0449 4.49
asset_returns_sd_mean_tbl <- asset_returns_tbl %>%
group_by(asset) %>%
tq_performance(Ra = returns,
Rb = NULL,
performance_fun = table.Stats) %>%
select(asset, Mean = ArithmeticMean, Stdev) %>%
ungroup() %>%
add_row(tibble(asset = "Portfolio",
Mean = mean(portfolio_returns_tbl$returns),
Stdev = sd(portfolio_returns_tbl$returns)))
asset_returns_sd_mean_tbl %>%
ggplot(aes(Stdev, Mean, col = asset)) +
geom_point() +
ggrepel::geom_text_repel(aes(label = asset))
How should you expect your portfolio to perform relative to its
assets in the portfolio? Would you invest all your money in any of the
individual stocks instead of the portfolio? Discuss both in terms of
expected return and risk.
My portfolio should perform relatively well relative to my assets within
the portfolio. The portfolio has a lower standard deviation than any of
the assets, which translates to lower risk. It falls around the middle
of my distribution in terms of returns. I would not invest in any single
stock instead of my portfolio because my portfolio has much lower risk
than any of the stocks and a very middle-ground return. If anything I
would consider giving MSFT and GOOG more weight in my portfolio and
taking some from AAPL because of how it is high risk and low return.