library(pacman)
p_load(tidyverse, lubridate, readxl, highcharter, tidyquant,
timetk, tibbletime, quantmod, PerformanceAnalytics, scales)
p_load(reshape2)
etf3 <- read.csv("TEJ.CSV" , header = TRUE)
etf3 <-etf3 %>% select(-2)
colnames(etf3) <-c('id','date','close')
head(etf3)
## id date close
## 1 0050 20080102 39.6472
## 2 0052 20080102 27.0983
## 3 0050 20080103 38.9876
## 4 0052 20080103 26.0676
## 5 0050 20080104 38.9876
## 6 0052 20080104 25.9346
etf3.1 <- dcast(etf3,date~id) %>% na.omit()
## Using close as value column: use value.var to override.
head(etf3.1)
## date 0050 0052 0061 006206 00638R 00646
## 1973 20151214 51.1736 30.6881 17.74 28.68 20.05 19.61
## 1974 20151215 51.2167 30.9138 17.94 29.28 19.54 19.63
## 1975 20151216 51.9921 31.3820 18.06 29.19 19.53 19.89
## 1976 20151217 52.5951 31.5993 18.36 29.51 19.13 20.05
## 1977 20151218 52.3367 31.8000 18.34 29.68 18.99 19.85
## 1978 20151221 52.2505 31.5993 18.90 30.40 18.51 19.64
etf3.xts <-
xts(etf3.1 [, -1], order.by = as.Date(as.character(etf3.1$date), format ="%Y%m%d")) %>% na.omit()
head(etf3.xts)
## 0050 0052 0061 006206 00638R 00646
## 2015-12-14 51.1736 30.6881 17.74 28.68 20.05 19.61
## 2015-12-15 51.2167 30.9138 17.94 29.28 19.54 19.63
## 2015-12-16 51.9921 31.3820 18.06 29.19 19.53 19.89
## 2015-12-17 52.5951 31.5993 18.36 29.51 19.13 20.05
## 2015-12-18 52.3367 31.8000 18.34 29.68 18.99 19.85
## 2015-12-21 52.2505 31.5993 18.90 30.40 18.51 19.64
etf3.ret <- Return.calculate(etf3.xts,method = 'log') %>% na.omit()
head(etf3.ret)
## 0050 0052 0061 006206 00638R
## 2015-12-15 0.0008418767 0.007327729 0.011210880 0.020704673 -0.0257655071
## 2015-12-16 0.0150261332 0.015031794 0.006666691 -0.003078504 -0.0005119017
## 2015-12-17 0.0115311755 0.006900488 0.016474837 0.010903004 -0.0206939614
## 2015-12-18 -0.0049251137 0.006331321 -0.001089918 0.005744229 -0.0073452586
## 2015-12-21 -0.0016483856 -0.006331321 0.030077455 0.023969190 -0.0256013982
## 2015-12-22 0.0024696515 0.000000000 -0.005305052 -0.003955180 -0.0005403945
## 00646
## 2015-12-15 0.001019368
## 2015-12-16 0.013158085
## 2015-12-17 0.008012061
## 2015-12-18 -0.010025147
## 2015-12-21 -0.010635704
## 2015-12-22 0.004065046
##
etf3.w <- etf3.xts %>% to.weekly(indexAt = 'lastof',OHLC = FALSE)
head(etf3.w)
## 0050 0052 0061 006206 00638R 00646
## 2015-12-18 52.3367 31.8000 18.34 29.68 18.99 19.85
## 2015-12-25 53.0690 32.1176 18.84 30.33 18.40 19.99
## 2015-12-31 52.3367 31.7665 18.27 29.48 19.01 20.06
## 2016-01-08 49.4937 29.7017 16.92 27.53 20.19 19.32
## 2016-01-15 48.8476 29.9692 15.80 25.53 21.88 18.97
## 2016-01-22 48.7183 30.0946 15.82 25.73 21.81 18.77
##
etf3.m <- etf3.xts %>% to.monthly(indexAt = 'lastof',OHLC = FALSE)
head(etf3.m)
## 0050 0052 0061 006206 00638R 00646
## 2015-12-31 52.3367 31.7665 18.27 29.48 19.01 20.06
## 2016-01-31 51.3029 31.2315 15.34 25.15 21.70 19.28
## 2016-02-29 52.7674 32.8198 15.00 24.23 21.85 19.21
## 2016-03-31 55.6966 34.3914 16.65 26.40 18.98 19.71
## 2016-04-30 53.0690 32.3433 16.05 25.98 19.30 19.90
## 2016-05-31 54.4043 33.7157 16.09 25.99 19.27 20.34
library(fBasics)
## Loading required package: timeDate
##
## Attaching package: 'timeDate'
## The following objects are masked from 'package:PerformanceAnalytics':
##
## kurtosis, skewness
## Loading required package: timeSeries
##
## Attaching package: 'timeSeries'
## The following object is masked from 'package:zoo':
##
## time<-
##
## Attaching package: 'fBasics'
## The following object is masked from 'package:TTR':
##
## volatility
summary(etf3.ret)
## Index 0050 0052
## Min. :2015-12-15 Min. :-0.0728608 Min. :-0.0697980
## 1st Qu.:2017-01-16 1st Qu.:-0.0041123 1st Qu.:-0.0055004
## Median :2018-02-21 Median : 0.0006887 Median : 0.0004682
## Mean :2018-02-20 Mean : 0.0004806 Mean : 0.0006991
## 3rd Qu.:2019-03-26 3rd Qu.: 0.0054577 3rd Qu.: 0.0074995
## Max. :2020-04-30 Max. : 0.0765017 Max. : 0.0944648
## 0061 006206 00638R
## Min. :-1.307e-01 Min. :-1.245e-01 Min. :-0.0824494
## 1st Qu.:-5.188e-03 1st Qu.:-5.427e-03 1st Qu.:-0.0060615
## Median : 0.000e+00 Median : 0.000e+00 Median :-0.0005598
## Mean :-2.352e-05 Mean : 5.761e-05 Mean :-0.0005164
## 3rd Qu.: 5.465e-03 3rd Qu.: 5.667e-03 3rd Qu.: 0.0050842
## Max. : 5.739e-02 Max. : 6.056e-02 Max. : 0.1600802
## 00646
## Min. :-0.089612
## 1st Qu.:-0.003229
## Median : 0.000474
## Mean : 0.000297
## 3rd Qu.: 0.004533
## Max. : 0.054780
basicStats(etf3.ret)
## X0050... X0052... X0061... X006206. X00638R.
## nobs 1068.000000 1068.000000 1068.000000 1068.000000 1068.000000
## NAs 0.000000 0.000000 0.000000 0.000000 0.000000
## Minimum -0.072861 -0.069798 -0.130705 -0.124454 -0.082449
## Maximum 0.076502 0.094465 0.057388 0.060559 0.160080
## 1. Quartile -0.004112 -0.005500 -0.005188 -0.005427 -0.006062
## 3. Quartile 0.005458 0.007499 0.005465 0.005667 0.005084
## Mean 0.000481 0.000699 -0.000024 0.000058 -0.000516
## Median 0.000689 0.000468 0.000000 0.000000 -0.000560
## Sum 0.513293 0.746659 -0.025115 0.061527 -0.551544
## SE Mean 0.000306 0.000395 0.000384 0.000376 0.000402
## LCL Mean -0.000121 -0.000076 -0.000777 -0.000680 -0.001305
## UCL Mean 0.001082 0.001474 0.000730 0.000796 0.000272
## Variance 0.000100 0.000166 0.000157 0.000151 0.000172
## Stdev 0.010016 0.012902 0.012547 0.012293 0.013131
## Skewness -0.571958 0.036007 -1.897245 -1.091621 1.597257
## Kurtosis 9.727350 6.558729 19.776633 13.337392 24.002633
## X00646..
## nobs 1068.000000
## NAs 0.000000
## Minimum -0.089612
## Maximum 0.054780
## 1. Quartile -0.003229
## 3. Quartile 0.004533
## Mean 0.000297
## Median 0.000474
## Sum 0.317201
## SE Mean 0.000293
## LCL Mean -0.000277
## UCL Mean 0.000871
## Variance 0.000092
## Stdev 0.009566
## Skewness -1.190811
## Kurtosis 13.513005