# Install and load necessary packages
if (!require("pacman")) install.packages("pacman")
## Loading required package: pacman
pacman::p_load(tidyquant, dplyr)
## Installing package into 'C:/Users/Thinkbook/AppData/Local/R/win-library/4.6'
## (as 'lib' is unspecified)
## Warning: unable to access index for repository http://www.stats.ox.ac.uk/pub/RWin/src/contrib:
##   cannot open URL 'http://www.stats.ox.ac.uk/pub/RWin/src/contrib/PACKAGES'
## also installing the dependencies 'shape', 'future.apply', 'numDeriv', 'progressr', 'SQUAREM', 'diagram', 'lava', 'sys', 'bit', 'prodlim', 'globals', 'later', 'otel', 'listenv', 'parallelly', 'utf8', 'farver', 'labeling', 'RColorBrewer', 'viridisLite', 'askpass', 'mvtnorm', 'pcaPP', 'DEoptimR', 'bit64', 'rematch', 'prettyunits', 'clock', 'gower', 'hardhat', 'ipred', 'sparsevctrs', 'furrr', 'htmlwidgets', 'crosstalk', 'data.table', 'promises', 'Rcpp', 'warp', 'BH', 'colorspace', 'fracdiff', 'lmtest', 'urca', 'RcppArmadillo', 'RcppRoll', 'tseries', 'future', 'generics', 'glue', 'pillar', 'tidyselect', 'vctrs', 'gtable', 'isoband', 'S7', 'scales', 'withr', 'openssl', 'timechange', 'quadprog', 'pyinit', 'rrcov', 'robustbase', 'clipr', 'crayon', 'hms', 'vroom', 'cpp11', 'tzdb', 'cellranger', 'progress', 'stringi', 'pkgconfig', 'recipes', 'rsample', 'forcats', 'plotly', 'padr', 'slider', 'anytime', 'forecast', 'tsfeatures', 'dplyr', 'ggplot2', 'httr', 'httr2', 'curl', 'lazyeval', 'lubridate', 'magrittr', 'PerformanceAnalytics', 'RobStatTM', 'quantmod', 'purrr', 'readr', 'readxl', 'stringr', 'tibble', 'tidyr', 'timetk', 'timeDate', 'TTR', 'xts', 'zoo'
## Warning: unable to access index for repository http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/4.6:
##   cannot open URL 'http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/4.6/PACKAGES'
## Warning in download.file(urls, destfiles, "libcurl", mode = "wb", ...): URL
## 'http://cran.rstudio.com/bin/windows/contrib/4.6/BH_1.90.0-1.zip': Timeout of
## 60 seconds was reached
## Warning in download.file(urls, destfiles, "libcurl", mode = "wb", ...): some
## files were not downloaded
## Warning in download.packages(pkgs, destdir = tmpd, available = available, :
## download of package 'BH' failed
## package 'shape' successfully unpacked and MD5 sums checked
## package 'future.apply' successfully unpacked and MD5 sums checked
## package 'numDeriv' successfully unpacked and MD5 sums checked
## package 'progressr' successfully unpacked and MD5 sums checked
## package 'SQUAREM' successfully unpacked and MD5 sums checked
## package 'diagram' successfully unpacked and MD5 sums checked
## package 'lava' successfully unpacked and MD5 sums checked
## package 'sys' successfully unpacked and MD5 sums checked
## package 'bit' successfully unpacked and MD5 sums checked
## package 'prodlim' successfully unpacked and MD5 sums checked
## package 'globals' successfully unpacked and MD5 sums checked
## package 'later' successfully unpacked and MD5 sums checked
## package 'otel' successfully unpacked and MD5 sums checked
## package 'listenv' successfully unpacked and MD5 sums checked
## package 'parallelly' successfully unpacked and MD5 sums checked
## package 'utf8' successfully unpacked and MD5 sums checked
## package 'farver' successfully unpacked and MD5 sums checked
## package 'labeling' successfully unpacked and MD5 sums checked
## package 'RColorBrewer' successfully unpacked and MD5 sums checked
## package 'viridisLite' successfully unpacked and MD5 sums checked
## package 'askpass' successfully unpacked and MD5 sums checked
## package 'mvtnorm' successfully unpacked and MD5 sums checked
## package 'pcaPP' successfully unpacked and MD5 sums checked
## package 'DEoptimR' successfully unpacked and MD5 sums checked
## package 'bit64' successfully unpacked and MD5 sums checked
## package 'rematch' successfully unpacked and MD5 sums checked
## package 'prettyunits' successfully unpacked and MD5 sums checked
## package 'clock' successfully unpacked and MD5 sums checked
## package 'gower' successfully unpacked and MD5 sums checked
## package 'hardhat' successfully unpacked and MD5 sums checked
## package 'ipred' successfully unpacked and MD5 sums checked
## package 'sparsevctrs' successfully unpacked and MD5 sums checked
## package 'furrr' successfully unpacked and MD5 sums checked
## package 'htmlwidgets' successfully unpacked and MD5 sums checked
## package 'crosstalk' successfully unpacked and MD5 sums checked
## package 'data.table' successfully unpacked and MD5 sums checked
## package 'promises' successfully unpacked and MD5 sums checked
## package 'Rcpp' successfully unpacked and MD5 sums checked
## package 'warp' successfully unpacked and MD5 sums checked
## package 'colorspace' successfully unpacked and MD5 sums checked
## package 'fracdiff' successfully unpacked and MD5 sums checked
## package 'lmtest' successfully unpacked and MD5 sums checked
## package 'urca' successfully unpacked and MD5 sums checked
## package 'RcppArmadillo' successfully unpacked and MD5 sums checked
## package 'RcppRoll' successfully unpacked and MD5 sums checked
## package 'tseries' successfully unpacked and MD5 sums checked
## package 'future' successfully unpacked and MD5 sums checked
## package 'generics' successfully unpacked and MD5 sums checked
## package 'glue' successfully unpacked and MD5 sums checked
## package 'pillar' successfully unpacked and MD5 sums checked
## package 'tidyselect' successfully unpacked and MD5 sums checked
## package 'vctrs' successfully unpacked and MD5 sums checked
## package 'gtable' successfully unpacked and MD5 sums checked
## package 'isoband' successfully unpacked and MD5 sums checked
## package 'S7' successfully unpacked and MD5 sums checked
## package 'scales' successfully unpacked and MD5 sums checked
## package 'withr' successfully unpacked and MD5 sums checked
## package 'openssl' successfully unpacked and MD5 sums checked
## package 'timechange' successfully unpacked and MD5 sums checked
## package 'quadprog' successfully unpacked and MD5 sums checked
## package 'pyinit' successfully unpacked and MD5 sums checked
## package 'rrcov' successfully unpacked and MD5 sums checked
## package 'robustbase' successfully unpacked and MD5 sums checked
## package 'clipr' successfully unpacked and MD5 sums checked
## package 'crayon' successfully unpacked and MD5 sums checked
## package 'hms' successfully unpacked and MD5 sums checked
## package 'vroom' successfully unpacked and MD5 sums checked
## package 'cpp11' successfully unpacked and MD5 sums checked
## package 'tzdb' successfully unpacked and MD5 sums checked
## package 'cellranger' successfully unpacked and MD5 sums checked
## package 'progress' successfully unpacked and MD5 sums checked
## package 'stringi' successfully unpacked and MD5 sums checked
## package 'pkgconfig' successfully unpacked and MD5 sums checked
## package 'recipes' successfully unpacked and MD5 sums checked
## package 'rsample' successfully unpacked and MD5 sums checked
## package 'forcats' successfully unpacked and MD5 sums checked
## package 'plotly' successfully unpacked and MD5 sums checked
## package 'padr' successfully unpacked and MD5 sums checked
## package 'slider' successfully unpacked and MD5 sums checked
## package 'anytime' successfully unpacked and MD5 sums checked
## package 'forecast' successfully unpacked and MD5 sums checked
## package 'tsfeatures' successfully unpacked and MD5 sums checked
## package 'dplyr' successfully unpacked and MD5 sums checked
## package 'ggplot2' successfully unpacked and MD5 sums checked
## package 'httr' successfully unpacked and MD5 sums checked
## package 'httr2' successfully unpacked and MD5 sums checked
## package 'curl' successfully unpacked and MD5 sums checked
## package 'lazyeval' successfully unpacked and MD5 sums checked
## package 'lubridate' successfully unpacked and MD5 sums checked
## package 'magrittr' successfully unpacked and MD5 sums checked
## package 'PerformanceAnalytics' successfully unpacked and MD5 sums checked
## package 'RobStatTM' successfully unpacked and MD5 sums checked
## package 'quantmod' successfully unpacked and MD5 sums checked
## package 'purrr' successfully unpacked and MD5 sums checked
## package 'readr' successfully unpacked and MD5 sums checked
## package 'readxl' successfully unpacked and MD5 sums checked
## package 'stringr' successfully unpacked and MD5 sums checked
## package 'tibble' successfully unpacked and MD5 sums checked
## package 'tidyr' successfully unpacked and MD5 sums checked
## package 'timetk' successfully unpacked and MD5 sums checked
## package 'timeDate' successfully unpacked and MD5 sums checked
## package 'TTR' successfully unpacked and MD5 sums checked
## package 'xts' successfully unpacked and MD5 sums checked
## package 'zoo' successfully unpacked and MD5 sums checked
## package 'tidyquant' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\Thinkbook\AppData\Local\Temp\RtmpaiH1VE\downloaded_packages
## 
## tidyquant installed
# --- TASK 1: Download daily prices from 2024 to present ---
tickers <- c("AAPL", "MSFT", "GOOG", "AMZN", "TSM", "NVDA")
stock_prices <- tq_get(tickers, 
                       get  = "stock.prices", 
                       from = "2024-01-01")

# --- TASK 2: Compute daily returns ---
daily_returns <- stock_prices %>%
  group_by(symbol) %>%
  tq_transmute(select     = adjusted, 
               mutate_fun = periodReturn, 
               period     = "daily", 
               col_rename = "daily_return")

# Show the first few returns for all stocks
head(daily_returns, 10)
## # A tibble: 10 × 3
## # Groups:   symbol [1]
##    symbol date       daily_return
##    <chr>  <date>            <dbl>
##  1 AAPL   2024-01-02      0      
##  2 AAPL   2024-01-03     -0.00749
##  3 AAPL   2024-01-04     -0.0127 
##  4 AAPL   2024-01-05     -0.00401
##  5 AAPL   2024-01-08      0.0242 
##  6 AAPL   2024-01-09     -0.00226
##  7 AAPL   2024-01-10      0.00567
##  8 AAPL   2024-01-11     -0.00322
##  9 AAPL   2024-01-12      0.00178
## 10 AAPL   2024-01-16     -0.0123