1. Đọc dữ liệu từ link google sheet
library(googlesheets4)
gs4_deauth()
df <- read_sheet("https://docs.google.com/spreadsheets/d/1qfALo1paROLI2iw_WO-jxOz_rpohInJxktRdQ7BwPcM/edit?usp=sharing")
## ✔ Reading from "TLG".
## ✔ Range 'TLG'.
  1. Lấy dữ liệu mã cổ phiếu mình cần, ví dụ: VNINDEX
df# xem toàn bộ dataframe
## # A tibble: 3,356 × 7
##    Date                Close  Open  High   Low Volume `%`      
##    <dttm>              <dbl> <dbl> <dbl> <dbl> <chr>  <list>   
##  1 2012-04-11 00:00:00 1980. 1968. 2097. 1968. 0.39K  <dbl [1]>
##  2 2012-04-12 00:00:00 2027. 2003. 2027. 2003. 5.18K  <chr [1]>
##  3 2012-04-13 00:00:00 2003. 2027. 2027. 2003. 16.21K <dbl [1]>
##  4 2012-04-16 00:00:00 2003. 2003. 2003. 1980. 1.12K  <dbl [1]>
##  5 2012-04-17 00:00:00 2027. 2062  2062  2015. 1.07K  <chr [1]>
##  6 2012-04-18 00:00:00 2027. 2027. 2027. 2027. 0.63K  <dbl [1]>
##  7 2012-04-19 00:00:00 2038. 2038. 2038. 2038. 1.37K  <chr [1]>
##  8 2012-04-20 00:00:00 2050. 2027. 2050. 2027. 0.15K  <chr [1]>
##  9 2012-04-23 00:00:00 2003. 2062  2062  2003. 2.34K  <dbl [1]>
## 10 2012-04-24 00:00:00 1991. 1991. 1991. 1991. 0.05K  <dbl [1]>
## # ℹ 3,346 more rows
TLG <- df[, c("Date", "Close")]
TLG # xem dataframe TLG
## # A tibble: 3,356 × 2
##    Date                Close
##    <dttm>              <dbl>
##  1 2012-04-11 00:00:00 1980.
##  2 2012-04-12 00:00:00 2027.
##  3 2012-04-13 00:00:00 2003.
##  4 2012-04-16 00:00:00 2003.
##  5 2012-04-17 00:00:00 2027.
##  6 2012-04-18 00:00:00 2027.
##  7 2012-04-19 00:00:00 2038.
##  8 2012-04-20 00:00:00 2050.
##  9 2012-04-23 00:00:00 2003.
## 10 2012-04-24 00:00:00 1991.
## # ℹ 3,346 more rows
  1. Kiểm tra dữ liệu
str(TLG) 
## tibble [3,356 × 2] (S3: tbl_df/tbl/data.frame)
##  $ Date : POSIXct[1:3356], format: "2012-04-11" "2012-04-12" ...
##  $ Close: num [1:3356] 1980 2027 2003 2003 2027 ...
head(TLG)
## # A tibble: 6 × 2
##   Date                Close
##   <dttm>              <dbl>
## 1 2012-04-11 00:00:00 1980.
## 2 2012-04-12 00:00:00 2027.
## 3 2012-04-13 00:00:00 2003.
## 4 2012-04-16 00:00:00 2003.
## 5 2012-04-17 00:00:00 2027.
## 6 2012-04-18 00:00:00 2027.
tail(TLG)
## # A tibble: 6 × 2
##   Date                Close
##   <dttm>              <dbl>
## 1 2026-03-26 00:00:00 48550
## 2 2026-03-27 00:00:00 48850
## 3 2026-03-30 00:00:00 48200
## 4 2026-03-31 00:00:00 48500
## 5 2026-04-01 00:00:00 48650
## 6 2026-04-02 00:00:00 48050
summary(TLG)
##       Date                         Close      
##  Min.   :2012-04-11 00:00:00   Min.   : 1980  
##  1st Qu.:2015-12-15 18:00:00   1st Qu.:18486  
##  Median :2019-07-15 12:00:00   Median :30544  
##  Mean   :2019-05-27 11:35:58   Mean   :28115  
##  3rd Qu.:2022-11-16 06:00:00   3rd Qu.:39077  
##  Max.   :2026-04-02 00:00:00   Max.   :61710

4.1. Thống kê mô tả dữ liệu giá chứng khoán

library(fBasics)
basicStats(TLG$Close)
##              X..TLG.Close
## nobs         3.356000e+03
## NAs          0.000000e+00
## Minimum      1.979500e+03
## Maximum      6.170960e+04
## 1. Quartile  1.848597e+04
## 3. Quartile  3.907713e+04
## Mean         2.811496e+04
## Median       3.054380e+04
## Sum          9.435382e+07
## SE Mean      2.490089e+02
## LCL Mean     2.762674e+04
## UCL Mean     2.860319e+04
## Variance     2.080902e+08
## Stdev        1.442533e+04
## Skewness    -2.656120e-01
## Kurtosis    -8.361890e-01

4.2. Thống kê mô tả dữ liệu return của giá chứng khoán

return_TLG <- diff(log(TLG$Close)) # chuyển giá thành return
head(return_TLG) # xem 6 giá trị đầu 
## [1]  0.023564567 -0.011712874  0.000000000  0.011712874  0.000000000
## [6]  0.005805389
tail(return_TLG)
## [1] -0.006160184  0.006160184 -0.013395357  0.006204777  0.003088011
## [6] -0.012409673
library(fBasics)
basicStats(return_TLG)
##              return_TLG
## nobs        3355.000000
## NAs            0.000000
## Minimum       -0.072572
## Maximum        0.067616
## 1. Quartile   -0.009305
## 3. Quartile    0.010701
## Mean           0.000951
## Median         0.000000
## Sum            3.189398
## SE Mean        0.000401
## LCL Mean       0.000164
## UCL Mean       0.001737
## Variance       0.000540
## Stdev          0.023243
## Skewness       0.055974
## Kurtosis       1.574420
summary(return_TLG)
##       Min.    1st Qu.     Median       Mean    3rd Qu.       Max. 
## -0.0725717 -0.0093048  0.0000000  0.0009506  0.0107015  0.0676156

5.1. Vẽ đồ thị và hàm mật độ giá chứng khoán

ts.plot(TLG$Close)

plot(TLG)

plot(TLG, type = 'l') # hoặc gõ plot(vn$Date, vn$VNINDEX, type = "l")

d1 = density(TLG$Close)
plot(d1, type = "l")

5.2. Vẽ đồ thị và hàm mật độ return của giá chứng khoán

ts.plot(return_TLG)

plot(return_TLG)

plot(TLG$Date[-1], return_TLG, type = 'l')

hist(return_TLG)

d2 = density(return_TLG)
plot(d2, type = "l")