Install and load quantmod

if (!requireNamespace("quantmod", quietly = TRUE)) {
  install.packages("quantmod")
}
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(quantmod)
## Warning: package 'quantmod' was built under R version 4.5.2
## Loading required package: xts
## Warning: package 'xts' was built under R version 4.5.2
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.5.2
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: TTR

Question 6

getSymbols("MSFT", src = "yahoo",
           from = "2025-10-01",
           to = "2026-02-01")
## [1] "MSFT"
head(MSFT)
##            MSFT.Open MSFT.High MSFT.Low MSFT.Close MSFT.Volume MSFT.Adjusted
## 2025-10-01    514.80    520.51   511.69     519.71    22632300      515.4689
## 2025-10-02    517.64    521.60   510.68     515.74    21222900      511.5313
## 2025-10-03    517.10    520.49   515.00     517.35    15112300      513.1281
## 2025-10-06    518.61    531.03   518.20     528.57    21388600      524.2566
## 2025-10-07    528.29    529.80   521.44     523.98    14615200      519.7040
## 2025-10-08    523.28    526.95   523.09     524.85    13363400      520.5669
tail(MSFT)
##            MSFT.Open MSFT.High MSFT.Low MSFT.Close MSFT.Volume MSFT.Adjusted
## 2026-01-23    451.87    471.10   450.53     465.95    38000200      463.0126
## 2026-01-26    465.31    474.25   462.00     470.28    29291200      467.3153
## 2026-01-27    473.70    482.87   473.16     480.58    29213900      477.5503
## 2026-01-28    483.21    483.74   478.00     481.63    36875400      478.5937
## 2026-01-29    439.99    442.50   421.02     433.50   128855300      430.7671
## 2026-01-30    439.17    439.60   426.45     430.29    58566800      427.5774

Question 7

getSymbols("MSFT", src = "yahoo",
           from = "2025-10-01",
           to = "2026-02-01")
## [1] "MSFT"
start(MSFT)
## [1] "2025-10-01"
end(MSFT)
## [1] "2026-01-30"

Question 8

nrow(MSFT)
## [1] 84

Question 9

head(MSFT$MSFT.Open)
##            MSFT.Open
## 2025-10-01    514.80
## 2025-10-02    517.64
## 2025-10-03    517.10
## 2025-10-06    518.61
## 2025-10-07    528.29
## 2025-10-08    523.28
max(MSFT$MSFT.Open, na.rm = TRUE)
## [1] 550
MSFT[which.max(MSFT$MSFT.Open), ]
##            MSFT.Open MSFT.High MSFT.Low MSFT.Close MSFT.Volume MSFT.Adjusted
## 2025-10-28       550    553.72   540.77     542.07    29986700      537.6464
plot(MSFT$MSFT.Open,
     main = "Microsoft Daily Opening Stock Prices",
     xlab = "Date",
     ylab = "Opening Price (USD)",
     col = "blue",
     type = "l")