1 Abstract

There has already 2 years passed by while Binary.com-is-Rebranding-to-Deriv.com, Here I summarized some previous research papers in Binary.com → Deriv.com and continue from this high-frequency-trading.

if(!suppressPackageStartupMessages(require('BBmisc'))) {
  install.packages('BBmisc', dependencies = TRUE, INSTALL_opts = '--no-lock')
}
suppressPackageStartupMessages(require('BBmisc'))
# suppressPackageStartupMessages(require('rmsfuns'))

pkgs <- c('devtools', 'knitr', 'kableExtra', 'tint', 'dygraphs', 
          'devtools','readr', 'lubridate', 'data.table', 'reprex', 
          'feather', 'purrr', 'quantmod', 'tidyquant', 'plotly', 
          'tibbletime', 'furrr', 'flyingfox', 'tidyr', 'jsonlite', 
          'timetk', 'plyr', 'dplyr', 'stringr', 'magrittr', 'tdplyr', 
          'tidyverse', 'memoise', 'htmltools', 'formattable', 'rbokeh', 
          'dash', 'dashCoreComponents', 'dashHtmlComponents', 'dtplyr',  ##https://dashr.plotly.com
          'zoo', 'forecast', 'seasonal', 'seasonalview', 'rjson', 
          'rugarch', 'rmgarch', 'mfGARCH', 'sparklyr', 'jcolors', 
          'microbenchmark', 'dendextend', 'lhmetools', 'ggthemr', 
          'stringr', 'pacman', 'profmem', 'DescTools', 'ggthemes', 
          'htmltools', 'echarts4r', 'viridis', 'hrbrthemes', 
          'fable', 'fabletools')

# https://github.com/mpiktas/midasr
# https://github.com/onnokleen/mfGARCH
# devtools::install_github("business-science/tibbletime")
# devtools::install_github("DavisVaughan/furrr")

suppressAll(lib(pkgs))
# load_pkg(pkgs)

funs <- c('uv_fx.R', 'opt_arma.R', 'multi_seasons.R', 
          'filterFX.R', 'filter_spec.R', 'mv_fx.R', 
          'task_progress.R', 'read_umodels.R', 'convertOHLC.R')
l_ply(funs, function(x) source(paste0('./function/', x)))

# spark_install()

# if(FALSE) {
  # Not run due to side-effects
#   spark_home_set()
#   }
# sc <- spark_connect(master = 'local')

#spark_install()
#sc <- spark_connect(master = 'local')

.cl = FALSE

Sys.setenv(TZ = 'Asia/Tokyo')
## options(knitr.table.format = 'html') will set all kableExtra tables to be 'html', otherwise need to set the parameter on every single table.
options(warn = -1, knitr.table.format = 'html')#, digits.secs = 6)

## https://stackoverflow.com/questions/39417003/long-vectors-not-supported-yet-error-in-rmd-but-not-in-r-script
knitr::opts_chunk$set(cache = TRUE, warning = FALSE, 
                      message = FALSE, cache.lazy = FALSE)

## https://www.researchgate.net/post/How_to_solve_Error_cannot_allocate_vector_of_size_12_Gb_in_R
memory.size() ### Checking your memory size
## [1] 430.35
memory.limit() ## Checking the set limit
## [1] 16274
#memory.size(size=500000)
memory.limit(size=56000) ### expanding your memory _ here it goes beyond to your actually memory. This 56000 is proposed for 64Bit.
## [1] 56000
rm(pkgs, funs)

2 Introduction

By refer to GARCH模型中的ARIMA(p,d,q)参数最优化 and binary.com Interview Question I - Comparison of Univariate GARCH Models, we know Fractional Intergrated GJR-GARCH is the best fit model. This paper we compare the MIDAS, GARCH-MIDAS and Levy Process models. Here I also test another high frequency trading model mcmcsGARCH. These paper might consider as comparison interday trading before start the high frequency trading via Real Time FXCM.

High Frequency Financial Time Series Prediction - Machine Learning Approach introduce multilayer modelling for high-frequency-trading. binary.com Interview Question I - Tick-Data-HiLo For Daily Trading (Blooper) tried to use Hi-Lo daily dataset for modelling but failed. The paper recommend to use complete itraday dataset.

I noticed that buying early in the morning, around 5am eastern time, tends to give lower prices and selling around 10pm eastern time gives you the highest prices. The wording is weird but i want to know your opinions on how time of day affects the bitcoin trading market. Thank you.

Source : Time of day affects trading prices

From above quotes, we can know the seasonality of price trend daily, weekly, monthly or annually etc. MIDAS and mcsGARCH are the models designate for high frequency trading.

A Comparison of GARCH-class Models and MIDAS Regression with Application in Volatility Prediction and Value at Risk Estimation compares GARCH, eGARCH and MIDAS 3 models with normal and student distribution with matrix. The author concludes that the MIDAS model is the most accurate in volatility prediction but there is inconclusive for VaR 1% and 5%.

Note that there does not seem to be an option to use SARMA models in the “rugarch” package, so you will have to let the “S” part go. But if there is a seasonal pattern (and that is quite likely when it comes to tourist arrivals), you will have to account for it somehow. Consider using exogenous seasonal variables (dummies or Fourier terms) in the conditional mean model via the argument external.regressors inside the argument mean.model in function ugarchspec. Alternatively, note that a SARMA model corresponds to a restricted ARMA model. An approximation of SARMA could thus be an ARMA with the appropriate lag order but without the SARMA-specific parameter restrictions (since those might not be available in “rugarch”).

The quotes above describe about the seasonal factors onto the model which is similar with MIDAS model, kindly refer to Fitting ARIMA-GARCH model using “rugarch” package.

3 Data

3.1 Tick Data

3.1.1 Get Data

Due to the dataset gather via getSymbols('JPY=X', src='av', api.key=api, periodicity='intraday') is tidied but only 100 observations. Moreover I cannot select the time period from few years ago, therefore here I omit it and use the intraday data gather from real-time-fxcm/data/USDJPY/ from Y2015W1 to Y2018W27, due to the dataset is tick-data-base and more than 1 million observation per file (per week) and there has 4 years dataset where. Here I need to backtest day-by-day. There will be spent a long time to do.

cr_code <- c('AUDUSD=X', 'EURUSD=X', 'GBPUSD=X', 'CHF=X', 'CAD=X', 'CNY=X', 'JPY=X')

names(cr_code) <- c('AUDUSD', 'EURUSD', 'GBPUSD', 'USDCHF', 'USDCAD', 'USDCNY', 'USDJPY')
# names(cr_code) <- c('USDAUD', 'USDEUR', 'USDGBP', 'USDCHF', 'USDCAD', 'USDCNY', 'USDJPY')

dtr <- str_extract_all(getwd(), '.*/', '')[1]
dtr1 <- paste0(dtr, 'real-time-fxcm/data/')

## Read presaved FXCM data.
# mbase <- sapply(names(cr_code), function(x) readRDS(paste0('./data/', x, '.rds')) %>% na.omit)

fls <- sapply(names(cr_code), function(x) {
  dtr1 <- paste0(dtr1, x)
  list.files(dtr1, pattern = '^Y[0-9]{4}W[0-9]{1,2}.rds$') %>% 
    str_replace_all('.rds', '')
  })
fls[lengths(fls) == 0] <- NA_character_
fls[is.na(fls)] <- NULL

# AUDUSD <- sapply(fls[[1]], read_rds)
# EURUSD <- sapply(fls[[2]], read_rds)
# GBPUSD <- sapply(fls[[3]], read_rds)
# USDCHF <- sapply(fls[[4]], read_rds)
# USDCAD <- sapply(fls[[5]], read_rds)
# USDCNY <- sapply(fls[[6]], read_rds)
# mbase <- llply(as.list(fls[[7]]), read_rds) #185 files where 1 files contains 1 million observation.

## Here I take USDJPY as example...
dtr1s <- paste0(dtr1, names(fls[length(fls)]))
fs <- list.files(dtr1s, pattern = '^Y[0-9]{4}W[0-9]{1,2}.rds$') %>% 
  str_replace_all('.rds', '')
# eval(parse(text = paste0(fs, "<- readRDS('", fls[[7]], "') %>% as_tibble")))

t.unit <- c('seconds', 'minutes', 'hours', 'days', 'weeks', 'months', 'quarters', 'quarters')
## https://www.alphavantage.co/
## https://www.alphavantage.co/support/#api-key
# api = 'UL7EPVVEGDVC3TXC'
# getSymbols('JPY=X', src='av', api.key=api, periodicity='intraday')

binary.com Interview Question I - Multivariate GARCH Models concludes that the multivariate will be more accurate but due to save time, here I only use univariate for models comparison.

Due to high volume of dataset, here I only use USDJPY since the variance is higher than the rest of currencies.

## Read raw dataset.
#Y2015W1 <- read_rds(paste0(dtr1, '/', fls[[7]][1], '.rds')) %>% as_tibble

eval(parse(text = paste0(fs[1], "<- readRDS('", dtr1, "/", 
                         names(fls[length(fls)]), '/', fls[length(fls)][[1]][1], 
                         ".rds') %>% as_tibble")))

## raw dataset
Y2015W1
## # A tibble: 1,775,999 x 3
##    DateTime                  Bid   Ask
##    <fct>                   <dbl> <dbl>
##  1 01/04/2015 22:00:00.165  120.  121.
##  2 01/04/2015 22:00:00.197  120.  121.
##  3 01/04/2015 22:00:00.401  120.  121.
##  4 01/04/2015 22:00:00.712  120.  121.
##  5 01/04/2015 22:00:00.742  120.  121.
##  6 01/04/2015 22:00:00.786  120.  121.
##  7 01/04/2015 22:00:00.920  120.  121.
##  8 01/04/2015 22:00:00.926  120.  121.
##  9 01/04/2015 22:00:01.253  120.  121.
## 10 01/04/2015 22:00:01.259  120.  121.
## # ... with 1,775,989 more rows

Above table shows the raw tick-dataset (shows price fluctuation in mili-seconds). As we know that the variance in unit mili-second is almost 0. Therefore I refer to High Frequency GARCH: The multiplicative component GARCH (mcsGARCH) model and use 1 minute as 1 time unit, convert from univariate ask and univariate bid to be OHLC dataset.

3.1.2 Tidy Data

For example, the taylor data set from the forecast package contains half-hourly electricity demand data from England and Wales over about 3 months in 2000. It was defined as taylor <- msts(x, seasonal.periods=c(48,336).

Source Seasonal periods

A Review of Literature on Time Zone Difference and Trade study about trading across timezone and different country, if the timezone difference will affect the trading.

I would like to use R for time series analysis. I want to make a time-series model and use functions from the packages timeDate and forecast. I have intraday data in the CET time zone (15 minutes data, 4 data points per hour). On March 31st daylight savings time is implemented and I am missing 4 data points of the 96 that I usually have. On October 28th I have 4 data points too many as time is switched back. For my time series model I always need 96 data points, as otherwise the intraday seasonality gets messed up. Do you have any experiences with this? Do you know an R function or a package that would be of help to automat such data handling - something elegant? Thank you!

I had a similar problem with hydrological data from a sensor. My timestamps were in UTC+1 (CET) and did not switch to daylight saving time (UTC+2, CEST). As I didn’t want my data to be one hour off (which would be the case if UTC were used) I took the %z conversion specification of strptime. In ?strptime you’ll find: %z Signed offset in hours and minutes from UTC, so -0800 is 8 hours behind UTC. For example: In 2012, the switch from Standard Time to DST occured on 2012-03-25, so there is no 02:00 on this day. If you try to convert “2012-03-25 02:00:00” to a POSIXct-Object,

## https://stackoverflow.com/questions/29202021/r-how-to-extract-dates-from-a-time-series
getTStime <- function(ats){
  start <- start(ats)
  end <- end(ats)
  time <- list()
  time[[1]] <- start
  m <- 2
  while(!(identical(start, end))){
    start[2] <- start[2] + 1
    if (start[2]==1441){ #mins per day
      start[1] <- start[1] + 1
      start[2] <- 1
    }
    time[[m]] <- start
    m <- m + 1
  }
  return(time)
}

## https://stackoverflow.com/questions/13865172/handling-data-on-the-days-when-we-switch-to-daylight-savings-time-and-back-in-r
#> as.POSIXct("2012-03-25 02:00:00", tz="Europe/Vienna")
#[1] "2012-03-25 CET"
#
## you don't get an error or a warning, you just get date without the time (this behavior is documented).
## Using `format = "%z"` gives the desired result:
#
#> as.POSIXct("2012-03-25 02:00:00 +0100", format="%F %T %z", tz="Europe/Vienna")
#[1] "2012-03-25 03:00:00 CEST"

## function
as.POSIXct.no.dst <- function (
  x, tz = '', format='%Y-%m-%d %H:%M', offset='+0100', ...) {
  x <- paste(x, offset)
  format <- paste(format, '%z')
  res <- as.POSIXct(x, tz, format=format, ...)
  return(res)
  }

Source : Handling data on the days when we switch to daylight savings time and back in R

Why is this xts frequency always 1? talk about the frequency of xts dataset and we need to use zoo to convert it.

So far, we have considered relatively simple seasonal patterns such as quarterly and monthly data. However, higher frequency time series often exhibit more complicated seasonal patterns. For example, daily data may have a weekly pattern as well as an annual pattern. Hourly data usually has three types of seasonality: a daily pattern, a weekly pattern, and an annual pattern. Even weekly data can be challenging to forecast as it typically has an annual pattern with seasonal period of 365.25/7≈52.179 on average. … The top panel of Figure 11.1 shows the number of retail banking call arrivals per 5-minute interval between 7:00am and 9:05pm each weekday over a 33 week period. The bottom panel shows the first three weeks of the same time series. There is a strong daily seasonal pattern with frequency 169 (there are 169 5-minute intervals per day), and a weak weekly seasonal pattern with frequency 169 × 5 = 845. (Call volumes on Mondays tend to be higher than the rest of the week.) If a longer series of data were available, we may also have observed an annual seasonal pattern.

Source : 11.1 Complex seasonality

## Convert the univariate price to be OHLC price in `minutes` unit.
Y2015W1_min1 <- Y2015W1 %>% 
  convertOHLC(combine = TRUE, trade = FALSE, .unit = t.unit[2]) %>% 
  bind_rows #combined `ask/bid` price
Y2015W1_min1
## # A tibble: 7,200 x 9
##    index               BidOpen BidHigh BidLow BidClose AskOpen AskHigh AskLow
##    <dttm>                <dbl>   <dbl>  <dbl>    <dbl>   <dbl>   <dbl>  <dbl>
##  1 2015-01-05 00:01:00    120.    121.   120.     121.    121.    121.   121.
##  2 2015-01-05 00:02:00    121.    121.   120.     121.    121.    121.   121.
##  3 2015-01-05 00:03:00    121.    121.   121.     121.    121.    121.   121.
##  4 2015-01-05 00:04:00    121.    121.   121.     121.    121.    121.   121.
##  5 2015-01-05 00:05:00    121.    121.   120.     121.    121.    121.   121.
##  6 2015-01-05 00:06:00    121.    121.   120.     120.    121.    121.   121.
##  7 2015-01-05 00:07:00    120.    121.   120.     121.    121.    121.   120.
##  8 2015-01-05 00:08:00    121.    121.   121.     121.    121.    121.   121.
##  9 2015-01-05 00:09:00    121.    121.   121.     121.    121.    121.   121.
## 10 2015-01-05 00:10:00    121.    121.   121.     121.    121.    121.   121.
## # ... with 7,190 more rows, and 1 more variable: AskClose <dbl>
#suppressWarnings(Y2015W1 <- tbl %>% 
#       dplyr::select(date, close) %>% tk_xts %>% 
#       auto.arima(seasonal = FALSE))

## Count the observation in order to model seasonal frequency model.
Y2015W1_min1 %>% 
  dplyr::select(index) %>% 
  ddply(.(date(index)), summarise, n = length(index)) %>% 
  as_tibble
## # A tibble: 6 x 2
##   `date(index)`     n
##   <date>        <int>
## 1 2015-01-05     1439
## 2 2015-01-06     1440
## 3 2015-01-07     1440
## 4 2015-01-08     1440
## 5 2015-01-09     1440
## 6 2015-01-10        1

Kindly refer to section Seasonal Data or Seasonal periods to know the seasonality dataset. High Frequency GARCH: The multiplicative component GARCH (mcsGARCH) model use the dataset start from 00:01:00 but not 00:00:00, therefore above dataset shows the last observation will be the start of next day.

# tsz <- llply(fls[[7]], function(x) {
#     y <- read_rds(x) %>% 
#       convertOHLC(combine = TRUE, trade = FALSE, .unit = t.unit[2]) %>% 
#         bind_rows %>% 
#         dplyr::filter(index == head(index, 1) | 
#                       index == tail(index, 1)) %>% 
#       dplyr::mutate(diff = difftime(index, lag(index, 1), units = 'mins'))
#     }) %>% bind_rows %>% as_tibble %>% arrange(index)
# saveRDS(tsz, 'C:/Users/scibr/Documents/GitHub/scibrokes/real-time-fxcm/data/USDJPY/tsz.rds')

## The daylight saving convertion in not tally.
tsz <- read_rds(paste0(dtr1s, '/tsz.rds')) %>% 
  dplyr::filter(index >= ymd_hms('2015-01-05 00:00:00', tz = 'Europe/Athens'))
tsz
## # A tibble: 368 x 10
##    index               AskOpen AskHigh AskLow AskClose BidOpen BidHigh BidLow
##    <dttm>                <dbl>   <dbl>  <dbl>    <dbl>   <dbl>   <dbl>  <dbl>
##  1 2015-01-05 00:01:00    121.    121.   121.     121.    120.    121.   120.
##  2 2015-01-10 00:00:00    119.    119.   119.     119.    118.    118.   118.
##  3 2015-01-12 00:01:00    118.    118.   118.     118.    118.    118.   118.
##  4 2015-01-16 23:57:00    117.    118.   117.     118.    117.    118.   117.
##  5 2015-01-19 00:01:00    117.    118.   117.     117.    117.    117.   117.
##  6 2015-01-23 23:59:00    118.    118.   118.     118.    118.    118.   118.
##  7 2015-01-26 00:01:00    118.    118.   118.     118.    118.    118.   117.
##  8 2015-01-30 23:59:00    118.    118.   118.     118.    117.    118.   117.
##  9 2015-02-02 00:01:00    117.    117.   117.     117.    117.    117.   117.
## 10 2015-02-07 00:00:00    119.    119.   119.     119.    119.    119.   119.
## # ... with 358 more rows, and 2 more variables: BidClose <dbl>, diff <drtn>
## count the frequency of weekly observation.
tsz %>% dplyr::count(diff) %>% 
  kable(caption = 'Count data point') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>%
  scroll_box(width = '100%', fixed_thead = TRUE, height = '400px')
Count data point
diff n
1228 mins 1
1276 mins 1
1657 mins 1
2407 mins 1
2449 mins 1
2650 mins 1
2834 mins 1
3777 mins 1
5251 mins 1
5395 mins 1
5495 mins 1
5521 mins 1
5522 mins 1
5620 mins 1
5638 mins 2
5763 mins 2
6355 mins 1
6831 mins 1
6896 mins 1
7180 mins 1
7181 mins 1
7187 mins 1
7190 mins 1
7192 mins 1
7193 mins 1
7194 mins 7
7195 mins 8
7196 mins 9
7197 mins 8
7198 mins 41
7199 mins 84
NA mins 184
## missing observation.
tsz %>% dplyr::filter(diff <= 6000)
## # A tibble: 18 x 10
##    index               AskOpen AskHigh AskLow AskClose BidOpen BidHigh BidLow
##    <dttm>                <dbl>   <dbl>  <dbl>    <dbl>   <dbl>   <dbl>  <dbl>
##  1 2015-12-24 20:02:00    120.    120.   120.     120.    120.    120.   120.
##  2 2015-12-31 20:03:00    120.    120.   120.     120.    120.    120.   120.
##  3 2016-02-03 14:58:00    119.    119.   119.     119.    119.    119.   119.
##  4 2016-04-14 15:34:00    109.    109.   109.     109.    109.    109.   109.
##  5 2016-04-19 23:15:00    109.    109.   109.     109.    109.    109.   109.
##  6 2016-05-03 16:08:00    106.    106.   106.     106.    106.    106.   106.
##  7 2016-11-17 21:41:00    110.    110.   110.     110.    110.    110.   110.
##  8 2016-12-30 23:59:00    117.    117.   117.     117.    117.    117.   117.
##  9 2017-01-06 23:59:00    117.    117.   117.     117.    117.    117.   117.
## 10 2017-04-17 20:31:00    109.    109.   109.     109.    109.    109.   109.
## 11 2017-04-25 16:53:00    111.    111.   111.     111.    111.    111.   111.
## 12 2017-05-15 21:18:00    114.    114.   114.     114.    114.    114.   114.
## 13 2017-05-23 20:12:00    112.    112.   112.     112.    112.    112.   112.
## 14 2017-06-29 19:37:00    112.    112.   112.     112.    112.    112.   112.
## 15 2017-08-08 03:39:00    111.    111.   111.     111.    111.    111.   111.
## 16 2017-12-29 23:58:00    113.    113.   113.     113.    113.    113.   113.
## 17 2018-01-06 01:00:00    113.    113.   113.     113.    113.    113.   113.
## 18 2018-01-06 01:00:00    113.    113.   113.     113.    113.    113.   113.
## # ... with 2 more variables: BidClose <dbl>, diff <drtn>
## https://stackoverflow.com/questions/34454947/why-is-this-xts-frequency-always-1
## https://www.stat.berkeley.edu/~s133/dates.html
## https://stackoverflow.com/questions/45070078/convert-forecast-time-produced-by-arima-into-standard-date-time
#How to extract below index to datetime
#Y2015W1 %>% tk_ts(end = c(1440, 7200), frequency = 1440) %>% attributes %>% .$index %>% as.POSIXct(tz = 'UTC', origin = '1970-01-01') %>% force_tz(tz = 'Europe/Athens')
Y2015W1_min1 %>% 
  tk_ts(end = c(3, 7200), frequency = 1440) %>% 
  .[,1:ncol(.)] %>% 
  head #1440 * 5 = 7200
## Time Series:
## Start = c(3, 1) 
## End = c(3, 6) 
## Frequency = 1440 
##          BidOpen BidHigh  BidLow BidClose AskOpen AskHigh  AskLow AskClose
## 3.000000 120.474 120.542 120.442  120.502 120.534 120.638 120.520  120.608
## 3.000694 120.524 120.570 120.484  120.538 120.592 120.671 120.566  120.610
## 3.001389 120.568 120.588 120.533  120.568 120.624 120.678 120.588  120.612
## 3.002083 120.570 120.606 120.508  120.539 120.614 120.708 120.566  120.668
## 3.002778 120.544 120.594 120.472  120.576 120.668 120.714 120.506  120.598
## 3.003472 120.572 120.576 120.492  120.497 120.598 120.629 120.506  120.605
Y2015W1_min1 %>% 
  head %>% 
  zooreg(frequency = 1440)
##      index               BidOpen BidHigh BidLow  BidClose AskOpen AskHigh
## 1(1) 2015-01-05 00:01:00 120.474 120.542 120.442 120.502  120.534 120.638
## 1(2) 2015-01-05 00:02:00 120.524 120.570 120.484 120.538  120.592 120.671
## 1(3) 2015-01-05 00:03:00 120.568 120.588 120.533 120.568  120.624 120.678
## 1(4) 2015-01-05 00:04:00 120.570 120.606 120.508 120.539  120.614 120.708
## 1(5) 2015-01-05 00:05:00 120.544 120.594 120.472 120.576  120.668 120.714
## 1(6) 2015-01-05 00:06:00 120.572 120.576 120.492 120.497  120.598 120.629
##      AskLow  AskClose
## 1(1) 120.520 120.608 
## 1(2) 120.566 120.610 
## 1(3) 120.588 120.612 
## 1(4) 120.566 120.668 
## 1(5) 120.506 120.598 
## 1(6) 120.506 120.605
#Y2015W1_min1 %>% tk_ts(end = c(1440, 7200), frequency = 1440) %>% index %>% as.POSIXct(tz = 'UTC', origin = '1970-01-01')

## https://stats.stackexchange.com/questions/144158/daily-time-series-analysis
## http://manishbarnwal.com/blog/2017/05/03/time_series_and_forecasting_using_R/
#How to extract below index to datetime
#Y2015W1_min1 %>% msts(seasonal.periods=c(1440, 7200)) %>% .[,1] %>% as.numeric %>% as.POSIXct(tz = 'UTC', origin = '1970-01-01') %>% force_tz(tz = 'Europe/Athens')
Y2015W1_min1 %>% 
  head %>% 
  msts(seasonal.periods=c(1440, 7200))
## Multi-Seasonal Time Series:
## Start: 1 1
## Seasonal Periods: 1440 7200
## Data:
##           index BidOpen BidHigh  BidLow BidClose AskOpen AskHigh  AskLow
## [1,] 1420383660 120.474 120.542 120.442  120.502 120.534 120.638 120.520
## [2,] 1420383720 120.524 120.570 120.484  120.538 120.592 120.671 120.566
## [3,] 1420383780 120.568 120.588 120.533  120.568 120.624 120.678 120.588
## [4,] 1420383840 120.570 120.606 120.508  120.539 120.614 120.708 120.566
## [5,] 1420383900 120.544 120.594 120.472  120.576 120.668 120.714 120.506
## [6,] 1420383960 120.572 120.576 120.492  120.497 120.598 120.629 120.506
##      AskClose
## [1,]  120.608
## [2,]  120.610
## [3,]  120.612
## [4,]  120.668
## [5,]  120.598
## [6,]  120.605

ts() only can build a year-month seasonal dataset, otherwise need to decimal numeric to figure out what date within a month accordingly. msts() will be more user friendly which is modelling intra-and-inter seasonal dataset. Now I convert all dataset again from UTC to UTC+2 to be a constant weekly seasonal dataset. Due to the trading day is 5 days and 2 rest days, therefore I set a weekly seasonal period instead of daily.

2018 Time Zones - UTC shows that has no change in No changes, UTC all of the period from 2010 to 2019.

From the Wikipedia UTC page: UTC does not change with a change of seasons, but local time or civil time may change if a time zone jurisdiction observes daylight saving time or summer time. For example, UTC is 5 hours ahead of local time on the east coast of the United States during winter, but 4 hours ahead during summer. In other words, when a time zone observes DST, its offset from UTC changes when there’s a DST transition, but that’s that time zone observing DST, not UTC. Without knowing much about PHP time zone handling, it seems strange to me that you can specify “with DST” or “without DST” in a conversion - the time zones themselves specify when DST kicks in… it shouldn’t have to be something you specify yourself.

Source : Does UTC observe daylight saving time?

Due to the UTC timezone has no daylight saving issue, therefore the initial trading time will be a problem where I need to cope with. Handling Data for Daylight-Saving and Non-Daylight-Saving for HFT provides the solution for the timezone issue.

## -------- eval=FALSE --------------
## Now I simply tidy all datasets and save it prior to start the statistical modelling.
llply(fls[[7]], function(x) {
    mbase <- read_rds(x) %>% as_tibble
    ## Convert the univariate price to be OHLC price in `minutes` unit.
    mbase %<>% convertOHLC(.unit = t.unit[2], combine = TRUE) %>% 
        bind_rows #combined `ask/bid` price
    
    y <- x %>% str_replace_all('.rds$', '_tick-to-min1.rds')
    
    saveRDS(mbase, y)
    cat(y, 'saved!\n')
    })

3.2 1 Minute Data

3.2.1 Get and Tidy Data

Due to fxcm/MarketData updated and provides 1 minute, 1 hour, 1 day datasets recently, here I directly download 1 minute dataset and tidy it.

time is based on EST, because our server is in New Jersey USA. it is 5:00PM at the end of the day, which is shown in GMT as 21:00 day light saving or 22:00 without day light saving.

Source : Inconsistency of trading date time #1

From above quote, we can know even the EST converted to UTC will not be 00:00:00, therefore I refer to Handling data on the days when we switch to daylight savings time and back in R as my solution as UTC+2 (daylight saving UTC+3) will get the desired result.

cr_code <- c('EURUSD=X', 'GBPUSD=X', 'CHF=X', 'CAD=X', 'JPY=X')
names(cr_code) <- c('EURUSD', 'GBPUSD', 'USDCHF', 'USDCAD', 'USDJPY')

fls1 <- llply(names(cr_code), function(x) {
    fls <- list.files(paste0(dtr1, x), pattern = '^Y[0-9]{4}W[0-9]{1,2}_m1.rds$')
    if (length(fls) > 0) paste0(dtr1, x, '/', fls)
  })
names(fls1) <- names(cr_code)

dtr1s <- paste0(dtr1, names(fls1[length(fls1)]))
fs1 <- list.files(dtr1s, pattern = '^Y[0-9]{4}W[0-9]{1,2}_m1.rds$') %>% 
  str_replace_all('.rds', '')

## Read raw dataset.
# eval(parse(text = paste0(fs, "<- read_rds('", fls[[7]], "')")))
## Read raw dataset.
eval(parse(text = paste0(fs1[1], "<- read_rds('", fls1[[5]][1], "') %>% as_tibble")))

## raw dataset
Y2015W1_m1
## # A tibble: 7,200 x 9
##    DateTime      BidOpen BidHigh BidLow BidClose AskOpen AskHigh AskLow AskClose
##    <fct>           <dbl>   <dbl>  <dbl>    <dbl>   <dbl>   <dbl>  <dbl>    <dbl>
##  1 01/04/2015 2~    120.    121.   120.     121.    121.    121.   121.     121.
##  2 01/04/2015 2~    121.    121.   120.     121.    121.    121.   121.     121.
##  3 01/04/2015 2~    121.    121.   121.     121.    121.    121.   121.     121.
##  4 01/04/2015 2~    121.    121.   121.     121.    121.    121.   121.     121.
##  5 01/04/2015 2~    121.    121.   120.     121.    121.    121.   121.     121.
##  6 01/04/2015 2~    121.    121.   120.     120.    121.    121.   121.     121.
##  7 01/04/2015 2~    120.    121.   120.     121.    121.    121.   120.     121.
##  8 01/04/2015 2~    121.    121.   121.     121.    121.    121.   121.     121.
##  9 01/04/2015 2~    121.    121.   121.     121.    121.    121.   121.     121.
## 10 01/04/2015 2~    121.    121.   121.     121.    121.    121.   121.     121.
## # ... with 7,190 more rows

Now I try to validate the daylight saving date.

# tsz2 <- llply(fls1[[5]], function(x) {
#    y <- read_rds(x) %>% dplyr::filter(DateTime == head(DateTime, 1)|
#                                      DateTime == tail(DateTime, 1)) %>% 
#        dplyr::mutate(DateTime = DateTime %>% mdy_hms %>% 
#                 .POSIXct(tz = 'Europe/Athens'), 
#               diff = difftime(DateTime, lag(DateTime, 1), units = 'mins'))
#    
#    nch <- y$DateTime[1] %>% substr(nchar(.)+2, nchar(.)+3)
#    y %<>% dplyr::mutate(
#        nch = nch, DateTime = if_else(
#          nch == '23', DateTime + hours(1), DateTime)) %>% 
#        dplyr::select(-nch)
#    }) %>% bind_rows %>% as_tibble %>% arrange(DateTime)
# saveRDS(tsz2, 'C:/Users/scibr/Documents/GitHub/scibrokes/real-time-fxcm/data/USDJPY/tsz2.rds')

## The daylight saving convertion in not tally.
tsz2 <- read_rds(paste0(dtr1s, '/tsz2.rds')) %>% 
  dplyr::rename(index = DateTime) %>% 
  dplyr::filter(index >= ymd_hms('2015-01-05 00:01:00', tz = 'Europe/Athens'))
tsz2
## # A tibble: 365 x 10
##    index               BidOpen BidHigh BidLow BidClose AskOpen AskHigh AskLow
##    <dttm>                <dbl>   <dbl>  <dbl>    <dbl>   <dbl>   <dbl>  <dbl>
##  1 2015-01-09 23:59:00    119.    119.   118.     118.    119.    119.   119.
##  2 2015-01-12 00:00:00    118.    118.   118.     118.    118.    118.   118.
##  3 2015-01-16 23:56:00    117.    118.   117.     118.    117.    118.   117.
##  4 2015-01-19 00:00:00    117.    117.   117.     117.    117.    118.   117.
##  5 2015-01-23 23:58:00    118.    118.   118.     118.    118.    118.   118.
##  6 2015-01-26 00:00:00    118.    118.   117.     118.    118.    118.   118.
##  7 2015-01-30 23:58:00    117.    118.   117.     118.    118.    118.   118.
##  8 2015-02-02 00:00:00    117.    117.   117.     117.    117.    117.   117.
##  9 2015-02-06 23:59:00    119.    119.   119.     119.    119.    119.   119.
## 10 2015-02-09 00:00:00    119.    119.   119      119.    119.    119.   119.
## # ... with 355 more rows, and 2 more variables: AskClose <dbl>, diff <drtn>
## count the frequency of weekly observation.
tsz2 %>% dplyr::count(diff) %>% 
  kable(caption = 'Count data point') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>%
  scroll_box(width = '100%', fixed_thead = TRUE, height = '400px')
Count data point
diff n
5395 mins 1
5521 mins 1
5522 mins 1
5638 mins 2
5759 mins 1
7180 mins 1
7187 mins 1
7190 mins 1
7192 mins 1
7193 mins 1
7194 mins 7
7195 mins 10
7196 mins 13
7197 mins 10
7198 mins 47
7199 mins 85
NA mins 182
## missing observation.
tsz2 %>% dplyr::filter(diff <= 6000)
## # A tibble: 6 x 10
##   index               BidOpen BidHigh BidLow BidClose AskOpen AskHigh AskLow
##   <dttm>                <dbl>   <dbl>  <dbl>    <dbl>   <dbl>   <dbl>  <dbl>
## 1 2015-12-24 20:01:00    120.    120.   120.     120.    120.    120.   120.
## 2 2015-12-31 20:02:00    120.    120.   120.     120.    120.    120.   120.
## 3 2016-12-30 23:58:00    117.    117.   117.     117.    117.    117.   117.
## 4 2017-01-06 23:58:00    117.    117.   117.     117.    117.    117.   117.
## 5 2017-12-29 23:57:00    113.    113.   113.     113.    113.    113.   113.
## 6 2018-01-05 23:59:00    113.    113.   113.     113.    113.    113.   113.
## # ... with 2 more variables: AskClose <dbl>, diff <drtn>

From above tables, we can know the daylight saving detection and datetime auto convertion is not tally. Here I united all intial observation started from 00:01:00.

3.3 Completion of Data

3.3.1 Data Selection

binary.com 面试试题 I - 单变量数据缺失值管理 and binary.com面试试题 I - 单变量数据缺失值管理 II compares the missing values dataset and refill the missing value with imputeTS::na.seadec():

  • interpolation
  • kalman
  • locf
  • ma
  • mean
  • random

The papers concludes that the imputeTS::na.seadec(algorithm = 'interpolation') or imputeTS::na.seadec(algorithm = 'kalman') repaired dataset no matter how much of portion of missing value is workable since the MSE and bias is very low. The Amelia::amelia is accurate and the bias and imprecision is small compare to imputeTS::sea.dec when the portion of missing value is small. The papers compare tick-data-to-1min-data and also 1min-data where both datasets gather from FXCM. It is very weird that the tidyr::fill and na.locf both are not too accurate. However, in this paper I use tidy::fill() method to fill the missing value, it will similar with kalman filter method since it will filled up the missing value ascending to fill up with direction down until the bottom of the dataset and then fill up with direction up by descending to fill up initial missing value or top. It will not occured standard error bias like open or close price higher than highest price or lower than lowest price. Moreover, the filled price will not bias a lot from the trend as time goes by.

## tick-data to minute 1 dataset
#tsz <- read_rds('C:/Users/scibr/Documents/GitHub/scibrokes/real-time-fxcm/data/USDJPY/tsz.rds')
tsz %>% dplyr::count(diff) %>% 
  kable(caption = 'Count data point') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>%
  scroll_box(width = '100%', fixed_thead = TRUE, height = '400px')
Count data point
diff n
1228 mins 1
1276 mins 1
1657 mins 1
2407 mins 1
2449 mins 1
2650 mins 1
2834 mins 1
3777 mins 1
5251 mins 1
5395 mins 1
5495 mins 1
5521 mins 1
5522 mins 1
5620 mins 1
5638 mins 2
5763 mins 2
6355 mins 1
6831 mins 1
6896 mins 1
7180 mins 1
7181 mins 1
7187 mins 1
7190 mins 1
7192 mins 1
7193 mins 1
7194 mins 7
7195 mins 8
7196 mins 9
7197 mins 8
7198 mins 41
7199 mins 84
NA mins 184
## minute 1 dataset
#tsz2 <- read_rds('C:/Users/scibr/Documents/GitHub/scibrokes/real-time-fxcm/data/USDJPY/tsz2.rds')
tsz2 %>% dplyr::count(diff) %>% 
  kable(caption = 'Count data point') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>%
  scroll_box(width = '100%', fixed_thead = TRUE, height = '400px')
Count data point
diff n
5395 mins 1
5521 mins 1
5522 mins 1
5638 mins 2
5759 mins 1
7180 mins 1
7187 mins 1
7190 mins 1
7192 mins 1
7193 mins 1
7194 mins 7
7195 mins 10
7196 mins 13
7197 mins 10
7198 mins 47
7199 mins 85
NA mins 182

Above tables show both datasets are incompleted. However, when I tried to check the Y2017W20 and Y2017W20_m1, the tick-dataset only start from 2017-05-15 until 2017-05-17 but the m1-dataset from 2017-05-15 until 2017-05-19. Kindly refer to below comparison.

mean(tsz$diff, na.rm=TRUE)
## Time difference of 6886.853 mins
mean(tsz2$diff, na.rm=TRUE)
## Time difference of 7144.601 mins

From above comparison, we know the dataset of 1min is better compelete than tick-to-1min dataset.

#left_join(tsz[c(1, ncol(tsz))], tsz2[c(1, ncol(tsz2))])
right_join(tsz[c(1, ncol(tsz))], tsz2[c(1, ncol(tsz2))])
## # A tibble: 365 x 2
##    index               diff     
##    <dttm>              <drtn>   
##  1 2015-01-09 23:59:00 7199 mins
##  2 2015-01-12 00:00:00   NA mins
##  3 2015-01-16 23:56:00 7196 mins
##  4 2015-01-19 00:00:00   NA mins
##  5 2015-01-23 23:58:00 7198 mins
##  6 2015-01-26 00:00:00   NA mins
##  7 2015-01-30 23:58:00 7198 mins
##  8 2015-02-02 00:00:00   NA mins
##  9 2015-02-06 23:59:00 7199 mins
## 10 2015-02-09 00:00:00   NA mins
## # ... with 355 more rows

Here I compare the mean and get to know the downloaded min1 dataset from FXCM is better than downloaded tick-dataset (converted to min1) from FXCM.

# -------- eval=FALSE -----------
## tick-data to min-1 dataset
data_tm1 <- llply(fls[[7]], function(x) {
    y <- read_rds(x) %>% 
      convertOHLC(combine = TRUE)
    
    yw <- x %>% 
      str_extract_all('Y[0-9]{4}W[0-9]{1,2}') %>% 
      str_split_fixed('[A-Z]{1}', 3) %>% 
      .[,-1]
    y %<>% dplyr::mutate(
      year = as.numeric(yw[1]), week = as.numeric(yw[2]), .)
    }) %>% 
  bind_rows %>% 
  as_tibble %>% 
  arrange(index)


## min-1 dataset
data_m1 <- llply(fls1[[5]], function(x) {
    y <- read_rds(x) %>% 
      dplyr::rename(index = DateTime) %>% 
      dplyr::mutate(index = index %>% mdy_hms %>% 
               .POSIXct(tz = 'Europe/Athens') %>% 
               force_tz())
    
    yw <- x %>% str_extract_all('Y[0-9]{4}W[0-9]{1,2}') %>% 
      str_split_fixed('[A-Z]{1}', 3) %>% .[,-1]
    
    nch <- y$index[1] %>% substr(nchar(.)+2, nchar(.)+3)
    y %<>% dplyr::mutate(
      year = as.numeric(yw[1]), week = as.numeric(yw[2]), 
      nch = nch, index = if_else(
        nch == '23', index + hours(1), index)) %>% 
      dplyr::select(-nch)
    }) %>% 
  bind_rows %>% 
  as_tibble %>% 
  arrange(index)
# -------- eval=FALSE -----------
#dtm <- seq(ymd_hms('2015-01-01 00:00:00'), ymd_hms('2017-08-31 00:00:00'), by = 'minutes')
#dtm <- seq(from = ymd('2015-01-05'), to = ymd('2018-07-07'), by = 'weeks')
dtm <- data_tm1 %>% 
  dplyr::select(index, year ,week) %>% 
  dplyr::mutate(index = date(index)) %>% 
  ddply(.(year, week), head, 1) %>% 
  .[-nrow(.),]

## create a seq of datetime to complete the  data point.
dttm <- llply(1:nrow(dtm), function(i) {
  x1 <- dtm$index[i] %>% 
    as.POSIXct %>% 
    with_tz(tz = 'UTC') %>% 
    force_tz()
  
  #x2 <- x1 + days(4) + hours(23) + minutes(59)
  x2 <- x1 + days(5)
  
  data_frame(index = seq.POSIXt(from = x1 + minutes(1), to = x2, by = '1 min'), 
             year = dtm[i,2], week = dtm[i,3])
  }) %>% 
  bind_rows %>% 
  as_tibble

Above chunk created a sequence of datetime.

## merge dataset
data_m1 <- left_join(dttm, data_m1) %>% 
  as_tibble %>% 
  unique %>% 
  arrange(index)

data_tm1 <- left_join(dttm, data_tm1) %>% 
  as_tibble %>% 
  unique %>% 
  arrange(index)

## https://stackoverflow.com/questions/43212308/na-locf-using-group-by-from-dplyr
## https://stackoverflow.com/questions/233401., eval.expr = TRUE) : 
  Scanner error: mapping values50/replace-missing-values-na-with-most-recent-non-na-by-group
## https://stackoverflow.com/questions/40040834/replace-na-with-previous-or-next-value-by-group-using-dplyr/40041172
## https://stackoverflow.com/questions/47242643/na-at-the-end-of-column-using-na-locf-function
## https://stackoverflow.com/questions/49578085/na-locf-function-is-changing-data-frame-values-from-int-to-char-in-r
## https://stackoverflow.com/questions/13616965/how-to-fill-nas-with-locf-by-factors-in-data-frame-split-by-country
## https://stackoverflow.com/questions/23340150/replace-missing-values-na-with-most-recent-non-na-by-group

# data_m1 %>% 
#     group_by(index, week) %>% 
#     dplyr::mutate_all(funs(na.locf(., na.rm = FALSE)))

# data_m1 %>% split(data_m1$index) %>% 
#   llply(function(x) {
#     na.locf(na.locf(x), fromLast = TRUE)
#   }) %>% do.call(rbind, .)

# data_m1 %<>% ddply(.(index, week), na_locf) %>% as_tibble
#> data_m1 %>% anyNA
#[1] FALSE

data_m1 %<>% 
  ddply(.(year, week), function(x) {
       x %>% fill(year, week, BidOpen, BidHigh, BidLow, BidClose, 
                  AskOpen, AskHigh, AskLow, AskClose) %>% #default direction down
             fill(year, week, BidOpen, BidHigh, BidLow, BidClose, 
                  AskOpen, AskHigh, AskLow, AskClose, .direction = 'up')
    }) %>% 
  as_tibble

data_tm1 %<>% 
  ddply(.(year, week), function(x) {
       x %>% fill(year, week, BidOpen, BidHigh, BidLow, BidClose, 
                  AskOpen, AskHigh, AskLow, AskClose) %>% #default direction down
             fill(year, week, BidOpen, BidHigh, BidLow, BidClose, 
                  AskOpen, AskHigh, AskLow, AskClose, .direction = 'up')
    }) %>% 
  as_tibble
#> data_m1 %>% anyNA
#[1] TRUE
#> data_m1 %>% filter_all(any_vars(is.na(.)))
## A tibble: 7,200 x 11
#   index                year  week BidOpen BidHigh BidLow BidClose AskOpen AskHigh AskLow AskClose
#   <dttm>              <dbl> <dbl>   <dbl>   <dbl>  <dbl>    <dbl>   <dbl>   <dbl>  <dbl>    <dbl>
# 1 2018-01-02 00:01:00  2017    53      NA      NA     NA       NA      NA      NA     NA       NA
# 2 2018-01-02 00:02:00  2017    53      NA      NA     NA       NA      NA      NA     NA       NA
# 3 2018-01-02 00:03:00  2017    53      NA      NA     NA       NA      NA      NA     NA       NA
# 4 2018-01-02 00:04:00  2017    53      NA      NA     NA       NA      NA      NA     NA       NA
# 5 2018-01-02 00:05:00  2017    53      NA      NA     NA       NA      NA      NA     NA       NA
# 6 2018-01-02 00:06:00  2017    53      NA      NA     NA       NA      NA      NA     NA       NA
# 7 2018-01-02 00:07:00  2017    53      NA      NA     NA       NA      NA      NA     NA       NA
# 8 2018-01-02 00:08:00  2017    53      NA      NA     NA       NA      NA      NA     NA       NA
# 9 2018-01-02 00:09:00  2017    53      NA      NA     NA       NA      NA      NA     NA       NA
#10 2018-01-02 00:10:00  2017    53      NA      NA     NA       NA      NA      NA     NA       NA
## ... with 7,190 more rows

#> data_tm1 %>% anyNA
#[1] FALSE
#> data_tm1 %>% filter_all(any_vars(is.na(.)))
## A tibble: 0 x 11
## ... with 11 variables: index <dttm>, year <dbl>, week <dbl>, AskOpen <dbl>, AskHigh <dbl>, AskLow <dbl>,
##   AskClose <dbl>, BidOpen <dbl>, BidHigh <dbl>, BidLow <dbl>, BidClose <dbl>

saveRDS(data_m1, paste0(dtr1, '/data_m1.rds'))
saveRDS(data_tm1, paste0(dtr1, '/data_tm1.rds'))

I don’t use the data.table and feather because of the storage concerns. Kindly refer to [问答] 对大数据如何用R高效处理[问答] 对大数据如何用R高效处理.

Finally, I filled-up the NA section of data_m1 and data_tm1 and eventually filled up by tidyr::fill function.

3.3.2 Read Data

Due to the files preload all before simulate the statistical modelling will occupy the space. Here I directly read the files and simulate the algorithmic prediction in following sections.

rm(list = ls()[grep('i|j|tz|nch|yw|dtm|dttm|form|data|Y2015W|tsz|tsz2|dc', ls())])

cr_code <- c('AUDUSD=X', 'EURUSD=X', 'GBPUSD=X', 'CHF=X', 'CAD=X', 'CNY=X', 'JPY=X')

names(cr_code) <- c('AUDUSD', 'EURUSD', 'GBPUSD', 'USDCHF', 'USDCAD', 'USDCNY', 'USDJPY')

data_m1 <- read_rds(paste0(dtr1s, '/data_m1.rds'))

tb1 <- data_m1 %>% ddply(.(year, week), head, 1) %>% 
  kbl('html', caption = 'Weekly Initial Data Point', escape = FALSE) %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>%
  scroll_box(width = '100%', fixed_thead = TRUE, height = '400px')

tb1
Weekly Initial Data Point
index year week BidOpen BidHigh BidLow BidClose AskOpen AskHigh AskLow AskClose
2015-01-05 00:01:00 2015 1 120.502 120.570 120.484 120.538 120.608 120.671 120.566 120.610
2015-01-12 00:01:00 2015 2 118.222 118.280 118.214 118.262 118.276 118.312 118.258 118.282
2015-01-19 00:01:00 2015 3 117.442 117.442 117.402 117.432 117.478 117.550 117.478 117.512
2015-01-26 00:01:00 2015 4 117.500 117.504 117.467 117.482 117.508 117.524 117.502 117.507
2015-02-02 00:01:00 2015 5 116.979 117.048 116.971 117.046 117.011 117.067 116.983 117.065
2015-02-09 00:01:00 2015 6 119.028 119.046 119.000 119.046 119.081 119.150 119.042 119.052
2015-02-16 00:01:00 2015 7 118.562 118.628 118.544 118.628 118.587 118.649 118.548 118.646
2015-02-23 00:01:00 2015 8 119.094 119.094 119.061 119.061 119.149 119.149 119.109 119.109
2015-03-02 00:01:00 2015 9 119.688 119.716 119.673 119.716 119.760 119.764 119.714 119.748
2015-03-09 00:01:00 2015 10 120.800 120.836 120.800 120.836 120.920 120.920 120.889 120.889
2015-03-16 00:01:00 2015 11 121.374 121.382 121.346 121.346 121.430 121.436 121.410 121.410
2015-03-23 00:01:00 2015 12 119.884 119.894 119.868 119.890 119.900 119.902 119.897 119.898
2015-03-30 00:01:00 2015 13 119.216 119.220 119.203 119.203 119.247 119.253 119.230 119.230
2015-04-06 00:01:00 2015 14 118.845 118.845 118.839 118.839 118.915 118.951 118.915 118.943
2015-04-13 00:01:00 2015 15 120.299 120.311 120.299 120.311 120.385 120.386 120.368 120.368
2015-04-20 00:01:00 2015 16 118.985 118.993 118.985 118.993 119.014 119.047 119.014 119.047
2015-04-27 00:01:00 2015 17 118.864 118.877 118.864 118.876 118.906 118.906 118.903 118.903
2015-05-04 00:01:00 2015 18 120.227 120.227 120.226 120.226 120.242 120.242 120.242 120.242
2015-05-11 00:01:00 2015 19 119.652 119.688 119.644 119.658 119.684 119.731 119.676 119.719
2015-05-18 00:01:00 2015 20 119.214 119.255 119.214 119.255 119.308 119.314 119.308 119.312
2015-05-25 00:01:00 2015 21 121.494 121.494 121.488 121.488 121.516 121.516 121.512 121.512
2015-06-01 00:01:00 2015 22 124.076 124.084 124.072 124.072 124.100 124.106 124.094 124.096
2015-06-08 00:01:00 2015 23 125.578 125.588 125.566 125.568 125.598 125.610 125.590 125.590
2015-06-15 00:01:00 2015 24 123.174 123.174 123.130 123.159 123.276 123.276 123.186 123.189
2015-06-22 00:01:00 2015 25 122.955 122.957 122.922 122.922 122.968 122.968 122.936 122.936
2015-06-29 00:01:00 2015 26 122.728 122.736 122.667 122.707 122.740 122.806 122.692 122.740
2015-07-06 00:01:00 2015 27 121.968 122.004 121.951 121.986 121.992 122.128 121.978 122.002
2015-07-13 00:01:00 2015 28 122.218 122.224 122.178 122.204 122.332 122.332 122.206 122.286
2015-07-20 00:01:00 2015 29 124.044 124.044 124.036 124.036 124.058 124.058 124.048 124.048
2015-07-27 00:01:00 2015 30 123.728 123.760 123.726 123.760 123.800 123.830 123.770 123.830
2015-08-03 00:01:00 2015 31 123.850 123.860 123.850 123.860 123.904 123.906 123.904 123.906
2015-08-10 00:01:00 2015 32 124.140 124.140 124.127 124.127 124.204 124.204 124.204 124.204
2015-08-17 00:01:00 2015 33 124.228 124.268 124.228 124.255 124.356 124.372 124.352 124.363
2015-08-24 00:01:00 2015 34 121.882 121.894 121.882 121.890 121.902 121.920 121.902 121.918
2015-08-31 00:01:00 2015 35 121.576 121.622 121.576 121.616 121.682 121.686 121.624 121.632
2015-09-07 00:01:00 2015 36 118.864 118.906 118.864 118.874 118.918 118.926 118.914 118.918
2015-09-14 00:01:00 2015 37 120.488 120.489 120.472 120.472 120.602 120.603 120.596 120.596
2015-09-21 00:01:00 2015 38 120.104 120.112 120.102 120.102 120.136 120.144 120.134 120.136
2015-09-28 00:01:00 2015 39 120.510 120.510 120.502 120.502 120.536 120.543 120.536 120.543
2015-10-05 00:01:00 2015 40 119.982 119.987 119.968 119.986 120.008 120.072 120.008 120.070
2015-10-12 00:01:00 2015 41 120.166 120.166 120.162 120.164 120.199 120.202 120.194 120.199
2015-10-19 00:01:00 2015 42 119.351 119.351 119.346 119.346 119.429 119.434 119.429 119.434
2015-10-26 00:01:00 2015 43 121.450 121.468 121.448 121.454 121.518 121.520 121.470 121.470
2015-11-02 00:01:00 2015 44 120.450 120.462 120.392 120.396 120.479 120.483 120.402 120.430
2015-11-09 00:01:00 2015 45 123.254 123.302 123.254 123.302 123.362 123.362 123.319 123.319
2015-11-16 00:01:00 2015 46 122.286 122.310 122.280 122.293 122.299 122.350 122.295 122.301
2015-11-23 00:01:00 2015 47 122.801 122.821 122.801 122.816 122.920 122.925 122.919 122.924
2015-11-30 00:01:00 2015 48 122.810 122.811 122.810 122.811 122.829 122.830 122.829 122.830
2015-12-07 00:01:00 2015 49 123.191 123.191 123.190 123.190 123.240 123.240 123.239 123.239
2015-12-14 00:01:00 2015 50 121.138 121.147 120.965 121.100 121.158 121.158 121.045 121.110
2015-12-21 00:01:00 2015 51 121.226 121.226 121.226 121.226 121.258 121.260 121.258 121.260
2015-12-28 00:01:00 2015 52 120.230 120.270 120.216 120.223 120.328 120.330 120.260 120.328
2016-01-04 00:01:00 2016 1 120.199 120.205 120.199 120.205 120.241 120.241 120.234 120.235
2016-01-11 00:01:00 2016 2 117.139 117.164 117.131 117.164 117.158 117.228 117.145 117.200
2016-01-18 00:01:00 2016 3 116.699 116.834 116.682 116.828 116.752 116.882 116.750 116.872
2016-01-25 00:01:00 2016 4 118.620 118.689 118.620 118.689 118.701 118.780 118.700 118.707
2016-02-01 00:01:00 2016 5 121.298 121.298 121.198 121.258 121.325 121.325 121.244 121.277
2016-02-08 00:01:00 2016 6 116.779 116.799 116.779 116.799 116.877 116.899 116.877 116.899
2016-02-15 00:01:00 2016 7 113.382 113.382 113.376 113.382 113.418 113.419 113.418 113.418
2016-02-22 00:01:00 2016 8 112.558 112.560 112.536 112.536 112.618 112.624 112.616 112.624
2016-02-29 00:01:00 2016 9 113.942 113.948 113.940 113.946 113.994 113.999 113.992 113.998
2016-03-07 00:01:00 2016 10 113.918 113.918 113.913 113.913 113.982 113.982 113.982 113.982
2016-03-14 00:01:00 2016 11 113.935 113.936 113.924 113.924 113.962 113.968 113.956 113.958
2016-03-21 00:01:00 2016 12 111.518 111.518 111.512 111.512 111.612 111.612 111.602 111.602
2016-03-28 00:01:00 2016 13 113.156 113.156 113.149 113.149 113.234 113.240 113.234 113.240
2016-04-04 00:01:00 2016 14 111.590 111.594 111.590 111.590 111.658 111.662 111.658 111.660
2016-04-11 00:01:00 2016 15 107.932 107.992 107.932 107.992 108.006 108.066 108.006 108.020
2016-04-18 00:01:00 2016 16 108.173 108.220 108.173 108.188 108.252 108.284 108.252 108.274
2016-04-25 00:01:00 2016 17 111.846 111.848 111.844 111.848 111.882 111.892 111.882 111.892
2016-05-02 00:01:00 2016 18 106.230 106.254 106.216 106.244 106.274 106.310 106.273 106.280
2016-05-09 00:01:00 2016 19 107.068 107.068 107.066 107.067 107.106 107.108 107.106 107.108
2016-05-16 00:01:00 2016 20 108.592 108.595 108.589 108.595 108.654 108.674 108.654 108.670
2016-05-23 00:01:00 2016 21 110.138 110.138 110.134 110.136 110.176 110.176 110.172 110.172
2016-05-30 00:01:00 2016 22 110.414 110.428 110.410 110.428 110.432 110.456 110.432 110.451
2016-06-06 00:01:00 2016 23 106.549 106.555 106.547 106.555 106.575 106.575 106.573 106.575
2016-06-13 00:01:00 2016 24 106.800 106.833 106.796 106.812 106.890 106.892 106.884 106.884
2016-06-20 00:01:00 2016 25 104.681 104.692 104.657 104.671 104.739 104.744 104.723 104.743
2016-06-27 00:01:00 2016 26 101.519 101.521 101.510 101.519 101.539 101.550 101.527 101.546
2016-07-04 00:01:00 2016 27 102.594 102.598 102.594 102.598 102.636 102.647 102.634 102.647
2016-07-11 00:01:00 2016 28 100.589 100.590 100.589 100.590 100.653 100.653 100.653 100.653
2016-07-18 00:01:00 2016 29 105.333 105.342 105.331 105.342 105.369 105.369 105.368 105.368
2016-07-25 00:01:00 2016 30 106.116 106.129 106.089 106.089 106.180 106.186 106.175 106.176
2016-08-01 00:01:00 2016 31 102.284 102.284 102.205 102.234 102.376 102.376 102.274 102.284
2016-08-08 00:01:00 2016 32 101.937 101.946 101.937 101.944 101.996 102.012 101.964 102.012
2016-08-15 00:01:00 2016 33 101.115 101.124 101.115 101.124 101.157 101.206 101.157 101.206
2016-08-22 00:01:00 2016 34 100.748 100.748 100.746 100.748 100.811 100.811 100.784 100.784
2016-08-29 00:01:00 2016 35 102.039 102.096 102.026 102.076 102.116 102.122 102.052 102.102
2016-09-05 00:01:00 2016 36 104.078 104.084 104.078 104.078 104.146 104.146 104.146 104.146
2016-09-12 00:01:00 2016 37 102.552 102.588 102.552 102.571 102.650 102.651 102.650 102.651
2016-09-19 00:01:00 2016 38 102.148 102.178 102.148 102.178 102.246 102.266 102.204 102.220
2016-09-26 00:01:00 2016 39 101.029 101.059 101.029 101.038 101.079 101.135 101.079 101.132
2016-10-03 00:01:00 2016 40 101.196 101.198 101.194 101.198 101.276 101.284 101.276 101.284
2016-10-10 00:01:00 2016 41 103.292 103.296 103.242 103.252 103.374 103.374 103.299 103.299
2016-10-17 00:01:00 2016 42 104.327 104.327 104.317 104.326 104.340 104.344 104.340 104.340
2016-10-24 00:01:00 2016 43 103.816 103.820 103.816 103.820 103.873 103.873 103.873 103.873
2016-10-31 00:01:00 2016 44 104.404 104.412 104.401 104.411 104.502 104.502 104.489 104.493
2016-11-07 00:01:00 2016 45 104.033 104.033 103.769 103.769 104.117 104.117 103.829 103.829
2016-11-14 00:01:00 2016 46 106.848 106.848 106.767 106.812 106.880 106.880 106.792 106.822
2016-11-21 00:01:00 2016 47 110.898 110.980 110.898 110.958 110.982 110.995 110.980 110.986
2016-11-28 00:01:00 2016 48 112.798 112.872 112.798 112.872 112.872 112.902 112.872 112.902
2016-12-05 00:01:00 2016 49 113.223 113.248 113.176 113.182 113.372 113.372 113.186 113.196
2016-12-12 00:01:00 2016 50 115.403 115.412 115.403 115.408 115.452 115.452 115.437 115.452
2016-12-19 00:01:00 2016 51 117.948 117.948 117.948 117.948 117.972 117.972 117.956 117.972
2016-12-27 00:01:00 2016 52 117.242 117.242 117.189 117.195 117.322 117.322 117.195 117.198
2017-01-03 00:01:00 2017 1 116.978 117.523 116.978 117.454 117.076 117.528 117.076 117.453
2017-01-09 00:01:00 2017 2 117.009 117.009 117.002 117.002 117.031 117.031 117.012 117.012
2017-01-16 00:01:00 2017 3 114.299 114.378 114.299 114.309 114.381 114.392 114.381 114.391
2017-01-23 00:01:00 2017 4 114.354 114.364 114.338 114.348 114.400 114.430 114.392 114.420
2017-01-30 00:01:00 2017 5 114.760 114.800 114.760 114.784 114.790 114.820 114.784 114.820
2017-02-06 00:01:00 2017 6 112.442 112.455 112.440 112.444 112.520 112.520 112.480 112.480
2017-02-13 00:01:00 2017 7 113.545 113.545 113.530 113.530 113.625 113.625 113.625 113.625
2017-02-20 00:01:00 2017 8 112.864 112.882 112.864 112.879 112.903 112.908 112.903 112.908
2017-02-27 00:01:00 2017 9 112.108 112.125 112.108 112.125 112.192 112.205 112.192 112.204
2017-03-06 00:01:00 2017 10 113.855 113.894 113.855 113.894 113.903 113.916 113.903 113.913
2017-03-13 00:01:00 2017 11 114.725 114.725 114.689 114.707 114.784 114.787 114.743 114.784
2017-03-20 00:01:00 2017 12 112.656 112.681 112.656 112.673 112.749 112.757 112.749 112.757
2017-03-27 00:01:00 2017 13 110.861 110.893 110.815 110.893 110.917 110.975 110.898 110.935
2017-04-03 00:01:00 2017 14 111.414 111.414 111.329 111.329 111.503 111.503 111.418 111.418
2017-04-10 00:01:00 2017 15 111.029 111.066 111.015 111.018 111.118 111.118 111.081 111.081
2017-04-17 00:01:00 2017 16 108.691 108.741 108.691 108.741 108.790 108.830 108.790 108.830
2017-04-24 00:01:00 2017 17 110.518 110.518 110.394 110.457 110.729 110.729 110.502 110.516
2017-05-01 00:01:00 2017 18 111.240 111.330 111.240 111.330 111.334 111.394 111.334 111.389
2017-05-08 00:01:00 2017 19 112.931 112.949 112.922 112.946 113.004 113.022 112.980 112.984
2017-05-15 00:01:00 2017 20 113.124 113.171 113.124 113.170 113.205 113.205 113.194 113.194
2017-05-22 00:01:00 2017 21 110.985 111.050 110.985 111.047 111.084 111.084 111.069 111.069
2017-05-29 00:01:00 2017 22 111.178 111.210 111.178 111.210 111.277 111.309 111.277 111.309
2017-06-05 00:01:00 2017 23 110.352 110.391 110.352 110.391 110.396 110.483 110.396 110.480
2017-06-12 00:01:00 2017 24 110.309 110.309 110.291 110.304 110.342 110.342 110.333 110.333
2017-06-19 00:01:00 2017 25 110.881 110.881 110.878 110.878 110.945 110.945 110.922 110.924
2017-06-26 00:01:00 2017 26 111.186 111.186 111.178 111.184 111.256 111.256 111.235 111.235
2017-07-03 00:01:00 2017 27 112.098 112.125 112.085 112.125 112.122 112.179 112.122 112.176
2017-07-10 00:01:00 2017 28 113.863 113.899 113.863 113.899 113.897 113.918 113.897 113.918
2017-07-17 00:01:00 2017 29 112.452 112.480 112.452 112.480 112.485 112.515 112.485 112.504
2017-07-24 00:01:00 2017 30 111.106 111.106 111.097 111.106 111.138 111.138 111.133 111.133
2017-07-31 00:01:00 2017 31 110.653 110.653 110.636 110.636 110.677 110.677 110.668 110.668
2017-08-07 00:01:00 2017 32 110.697 110.702 110.686 110.702 110.727 110.745 110.726 110.738
2017-08-14 00:01:00 2017 33 109.153 109.153 109.153 109.153 109.187 109.187 109.184 109.184
2017-08-21 00:01:00 2017 34 109.313 109.346 109.313 109.346 109.347 109.377 109.347 109.377
2017-08-28 00:01:00 2017 35 109.154 109.176 109.154 109.176 109.223 109.223 109.206 109.206
2017-09-04 00:01:00 2017 36 109.532 109.556 109.528 109.532 109.558 109.592 109.554 109.566
2017-09-11 00:01:00 2017 37 108.196 108.196 108.188 108.190 108.212 108.246 108.206 108.230
2017-09-18 00:01:00 2017 38 111.042 111.060 111.040 111.060 111.094 111.094 111.094 111.094
2017-09-25 00:01:00 2017 39 112.146 112.161 112.146 112.148 112.202 112.202 112.178 112.182
2017-10-02 00:01:00 2017 40 112.538 112.538 112.538 112.538 112.606 112.608 112.606 112.608
2017-10-09 00:01:00 2017 41 112.570 112.570 112.550 112.569 112.622 112.622 112.600 112.600
2017-10-16 00:01:00 2017 42 111.748 111.786 111.748 111.784 111.782 111.806 111.782 111.800
2017-10-23 00:01:00 2017 43 113.868 113.872 113.844 113.846 113.896 113.896 113.878 113.878
2017-10-30 00:01:00 2017 44 113.718 113.723 113.718 113.723 113.746 113.746 113.741 113.741
2017-11-06 00:01:00 2017 45 114.001 114.015 114.001 114.015 114.049 114.049 114.035 114.048
2017-11-13 00:01:00 2017 46 113.492 113.538 113.492 113.494 113.572 113.574 113.544 113.546
2017-11-20 00:01:00 2017 47 112.120 112.120 112.119 112.119 112.168 112.168 112.167 112.167
2017-11-27 00:01:00 2017 48 111.500 111.501 111.500 111.500 111.548 111.549 111.548 111.548
2017-12-04 00:01:00 2017 49 112.776 112.778 112.707 112.726 112.792 112.800 112.750 112.774
2017-12-11 00:01:00 2017 50 113.526 113.528 113.526 113.528 113.566 113.566 113.562 113.562
2017-12-18 00:01:00 2017 51 112.714 112.717 112.714 112.717 112.734 112.734 112.734 112.734
2017-12-26 00:01:00 2017 52 113.265 113.287 113.265 113.287 113.343 113.343 113.287 113.289
2018-01-02 00:01:00 2017 53 NA NA NA NA NA NA NA NA
2018-01-02 00:01:00 2018 1 112.596 112.601 112.596 112.601 112.650 112.658 112.650 112.658
2018-01-08 00:01:00 2018 2 113.116 113.121 113.116 113.121 113.152 113.152 113.150 113.152
2018-01-15 00:01:00 2018 3 111.075 111.082 111.075 111.081 111.113 111.113 111.104 111.104
2018-01-22 00:01:00 2018 4 110.543 110.543 110.517 110.517 110.602 110.602 110.570 110.570
2018-01-29 00:01:00 2018 5 108.685 108.700 108.684 108.693 108.733 108.746 108.732 108.732
2018-02-05 00:01:00 2018 6 110.200 110.206 110.172 110.172 110.248 110.248 110.228 110.232
2018-02-12 00:01:00 2018 7 108.858 108.862 108.832 108.836 108.896 108.898 108.858 108.858
2018-02-19 00:01:00 2018 8 106.328 106.328 106.298 106.304 106.382 106.382 106.348 106.348
2018-02-26 00:01:00 2018 9 107.106 107.116 107.092 107.092 107.132 107.132 107.114 107.114
2018-03-05 00:01:00 2018 10 105.500 105.500 105.494 105.496 105.554 105.556 105.552 105.552
2018-03-12 00:01:00 2018 11 106.635 106.642 106.635 106.642 106.673 106.680 106.673 106.680
2018-03-19 00:01:00 2018 12 105.915 105.917 105.904 105.915 105.926 105.949 105.916 105.942
2018-03-26 00:01:00 2018 13 104.641 104.642 104.640 104.642 104.694 104.695 104.678 104.695
2018-04-02 00:01:00 2018 14 106.260 106.260 106.237 106.237 106.312 106.312 106.273 106.274
2018-04-09 00:01:00 2018 15 106.937 106.944 106.937 106.944 106.989 106.992 106.989 106.992
2018-04-16 00:01:00 2018 16 107.338 107.470 107.338 107.462 107.385 107.525 107.385 107.510
2018-04-23 00:01:00 2018 17 107.766 107.770 107.762 107.770 107.816 107.816 107.816 107.816
2018-04-30 00:01:00 2018 18 109.055 109.066 109.020 109.066 109.083 109.091 109.046 109.089
2018-05-07 00:01:00 2018 19 109.109 109.109 109.108 109.108 109.127 109.127 109.126 109.126
2018-05-14 00:01:00 2018 20 109.384 109.384 109.335 109.346 109.443 109.443 109.389 109.394
2018-05-21 00:01:00 2018 21 110.869 110.900 110.866 110.866 110.897 110.917 110.894 110.909
2018-05-28 00:01:00 2018 22 109.738 109.746 109.702 109.740 109.750 109.762 109.745 109.760
2018-06-04 00:01:00 2018 23 109.454 109.454 109.450 109.450 109.480 109.480 109.456 109.456
2018-06-11 00:01:00 2018 24 109.284 109.296 109.284 109.292 109.324 109.350 109.324 109.350
2018-06-18 00:01:00 2018 25 110.665 110.676 110.665 110.665 110.700 110.719 110.700 110.718
2018-06-25 00:01:00 2018 26 109.841 109.847 109.841 109.847 109.889 109.895 109.884 109.895
2018-07-02 00:01:00 2018 27 110.680 110.680 110.667 110.667 110.720 110.726 110.720 110.726
tb2 <- data_m1 %>% ddply(.(year, week), tail, 1) %>% 
  kbl('html', caption = 'Weekly Final Data Point', escape = FALSE) %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>%
  scroll_box(width = '100%', fixed_thead = TRUE, height = '400px')

tb2
Weekly Final Data Point
index year week BidOpen BidHigh BidLow BidClose AskOpen AskHigh AskLow AskClose
2015-01-10 2015 1 118.522 118.522 118.495 118.495 118.556 118.601 118.556 118.601
2015-01-17 2015 2 117.462 117.554 117.461 117.548 117.490 117.669 117.482 117.669
2015-01-24 2015 3 117.724 117.770 117.714 117.732 117.834 117.836 117.796 117.816
2015-01-31 2015 4 117.493 117.534 117.438 117.528 117.548 117.614 117.548 117.576
2015-02-07 2015 5 119.134 119.134 119.090 119.090 119.158 119.222 119.158 119.222
2015-02-14 2015 6 118.719 118.719 118.696 118.696 118.919 118.944 118.919 118.944
2015-02-21 2015 7 119.050 119.056 118.966 119.010 119.098 119.116 119.036 119.042
2015-02-28 2015 8 119.596 119.636 119.576 119.576 119.620 119.710 119.618 119.704
2015-03-07 2015 9 120.784 120.784 120.708 120.708 120.804 120.885 120.804 120.885
2015-03-14 2015 10 121.426 121.428 121.350 121.416 121.448 121.496 121.388 121.458
2015-03-21 2015 11 120.048 120.052 120.008 120.018 120.072 120.100 120.056 120.068
2015-03-28 2015 12 119.112 119.112 119.109 119.109 119.150 119.171 119.150 119.171
2015-04-04 2015 13 118.929 118.929 118.928 118.928 119.016 119.041 119.016 119.041
2015-04-11 2015 14 120.170 120.174 120.170 120.174 120.206 120.261 120.206 120.261
2015-04-18 2015 15 118.889 118.897 118.889 118.897 118.971 118.978 118.971 118.978
2015-04-25 2015 16 118.906 118.930 118.906 118.926 118.974 119.020 118.974 119.015
2015-05-02 2015 17 120.202 120.202 120.171 120.171 120.256 120.256 120.251 120.251
2015-05-09 2015 18 119.754 119.771 119.754 119.771 119.806 119.870 119.806 119.870
2015-05-16 2015 19 119.366 119.366 119.352 119.359 119.418 119.467 119.418 119.450
2015-05-23 2015 20 121.544 121.544 121.500 121.500 121.576 121.591 121.576 121.581
2015-05-30 2015 21 124.130 124.130 124.112 124.112 124.154 124.191 124.154 124.191
2015-06-06 2015 22 125.577 125.588 125.575 125.576 125.638 125.667 125.638 125.655
2015-06-13 2015 23 123.359 123.359 123.349 123.349 123.446 123.471 123.446 123.471
2015-06-20 2015 24 122.672 122.672 122.632 122.632 122.724 122.725 122.711 122.711
2015-06-27 2015 25 123.884 123.884 123.809 123.809 123.912 123.926 123.901 123.901
2015-07-04 2015 26 122.854 122.854 122.799 122.799 122.914 122.934 122.888 122.901
2015-07-11 2015 27 122.721 122.844 122.654 122.792 122.780 122.893 122.780 122.893
2015-07-18 2015 28 124.075 124.088 124.020 124.054 124.103 124.126 124.070 124.078
2015-07-25 2015 29 123.800 123.800 123.769 123.769 123.832 123.856 123.832 123.848
2015-08-01 2015 30 123.875 123.875 123.836 123.836 123.944 123.944 123.944 123.944
2015-08-08 2015 31 124.211 124.213 124.202 124.202 124.228 124.233 124.224 124.224
2015-08-15 2015 32 124.315 124.316 124.314 124.314 124.337 124.340 124.337 124.340
2015-08-22 2015 33 122.052 122.052 122.023 122.023 122.064 122.106 122.064 122.106
2015-08-29 2015 34 121.736 121.736 121.682 121.696 121.750 121.788 121.750 121.775
2015-09-05 2015 35 119.030 119.030 119.009 119.026 119.036 119.055 119.029 119.055
2015-09-12 2015 36 120.582 120.582 120.574 120.574 120.595 120.595 120.587 120.587
2015-09-19 2015 37 119.942 119.959 119.919 119.955 119.991 120.046 119.991 120.036
2015-09-26 2015 38 120.574 120.574 120.544 120.544 120.610 120.645 120.610 120.623
2015-10-03 2015 39 119.860 119.875 119.860 119.875 119.945 119.954 119.945 119.954
2015-10-10 2015 40 120.208 120.208 120.189 120.189 120.244 120.278 120.244 120.278
2015-10-17 2015 41 119.436 119.436 119.407 119.407 119.476 119.498 119.476 119.489
2015-10-24 2015 42 121.422 121.422 121.419 121.419 121.498 121.501 121.498 121.501
2015-10-31 2015 43 120.594 120.594 120.584 120.584 120.630 120.666 120.630 120.666
2015-11-07 2015 44 123.128 123.169 123.117 123.119 123.199 123.226 123.199 123.226
2015-11-14 2015 45 122.576 122.579 122.564 122.579 122.655 122.658 122.646 122.658
2015-11-21 2015 46 122.768 122.768 122.752 122.752 122.810 122.831 122.810 122.831
2015-11-28 2015 47 122.722 122.812 122.722 122.812 122.849 122.894 122.849 122.888
2015-12-05 2015 48 123.113 123.113 123.088 123.088 123.128 123.144 123.126 123.126
2015-12-12 2015 49 120.950 120.956 120.929 120.929 120.988 121.001 120.988 120.990
2015-12-19 2015 50 121.138 121.138 121.099 121.099 121.176 121.193 121.176 121.181
2015-12-26 2015 51 120.273 120.274 120.269 120.269 120.281 120.281 120.279 120.279
2016-01-02 2015 52 120.206 120.222 120.184 120.191 120.212 120.237 120.212 120.225
2016-01-09 2016 1 117.226 117.226 117.198 117.201 117.281 117.291 117.281 117.283
2016-01-16 2016 2 116.969 116.969 116.954 116.954 117.070 117.071 117.070 117.071
2016-01-23 2016 3 118.760 118.760 118.737 118.744 118.788 118.826 118.788 118.826
2016-01-30 2016 4 121.115 121.120 121.030 121.119 121.135 121.140 121.110 121.139
2016-02-06 2016 5 116.824 116.824 116.791 116.798 116.870 116.918 116.838 116.840
2016-02-13 2016 6 113.200 113.208 113.144 113.170 113.221 113.276 113.200 113.248
2016-02-20 2016 7 112.551 112.556 112.539 112.539 112.581 112.596 112.562 112.596
2016-02-27 2016 8 113.962 113.964 113.959 113.964 113.991 113.994 113.991 113.994
2016-03-05 2016 9 113.757 113.774 113.740 113.774 113.776 113.834 113.774 113.820
2016-03-12 2016 10 113.814 113.846 113.788 113.790 113.845 113.878 113.834 113.876
2016-03-19 2016 11 111.532 111.544 111.516 111.542 111.561 111.592 111.548 111.582
2016-03-26 2016 12 113.016 113.029 113.016 113.029 113.110 113.118 113.110 113.118
2016-04-02 2016 13 111.600 111.600 111.599 111.599 111.638 111.666 111.638 111.666
2016-04-09 2016 14 108.062 108.062 108.020 108.048 108.102 108.116 108.102 108.104
2016-04-16 2016 15 108.776 108.776 108.738 108.744 108.790 108.798 108.774 108.780
2016-04-23 2016 16 111.791 111.804 111.780 111.788 111.818 111.842 111.798 111.804
2016-04-30 2016 17 106.314 106.338 106.283 106.283 106.369 106.392 106.332 106.376
2016-05-07 2016 18 107.049 107.110 107.031 107.100 107.124 107.144 107.084 107.116
2016-05-14 2016 19 108.634 108.634 108.601 108.601 108.654 108.690 108.654 108.689
2016-05-21 2016 20 110.126 110.146 110.084 110.098 110.156 110.176 110.140 110.174
2016-05-28 2016 21 110.220 110.220 110.187 110.187 110.256 110.284 110.256 110.284
2016-06-04 2016 22 106.536 106.544 106.506 106.538 106.554 106.598 106.546 106.554
2016-06-11 2016 23 106.922 106.924 106.912 106.916 106.952 106.958 106.946 106.950
2016-06-18 2016 24 104.111 104.111 104.069 104.083 104.207 104.207 104.166 104.166
2016-06-25 2016 25 102.149 102.199 102.149 102.199 102.371 102.441 102.371 102.441
2016-07-02 2016 26 102.551 102.551 102.464 102.464 102.562 102.562 102.528 102.530
2016-07-09 2016 27 100.569 100.569 100.569 100.569 100.592 100.611 100.592 100.611
2016-07-16 2016 28 104.839 104.839 104.784 104.804 104.902 104.919 104.848 104.898
2016-07-23 2016 29 106.030 106.030 105.999 106.012 106.084 106.110 106.076 106.090
2016-07-30 2016 30 102.024 102.024 102.010 102.010 102.100 102.100 102.080 102.080
2016-08-06 2016 31 101.819 101.819 101.784 101.792 101.856 101.882 101.848 101.872
2016-08-13 2016 32 101.266 101.268 101.266 101.268 101.346 101.348 101.346 101.348
2016-08-20 2016 33 100.174 100.187 100.174 100.174 100.239 100.245 100.239 100.245
2016-08-27 2016 34 101.820 101.820 101.759 101.759 101.857 101.857 101.856 101.856
2016-09-03 2016 35 103.980 104.016 103.874 103.874 104.051 104.051 103.967 103.967
2016-09-10 2016 36 102.690 102.690 102.644 102.644 102.731 102.731 102.726 102.726
2016-09-17 2016 37 102.259 102.259 102.234 102.244 102.285 102.328 102.285 102.316
2016-09-24 2016 38 100.987 100.987 100.987 100.987 101.046 101.081 101.046 101.081
2016-10-01 2016 39 101.269 101.279 101.269 101.279 101.360 101.372 101.360 101.372
2016-10-08 2016 40 102.887 102.896 102.877 102.896 102.906 102.948 102.900 102.948
2016-10-15 2016 41 104.178 104.183 104.178 104.183 104.217 104.218 104.217 104.218
2016-10-22 2016 42 103.820 103.824 103.820 103.822 103.836 103.875 103.836 103.838
2016-10-29 2016 43 104.710 104.710 104.665 104.665 104.720 104.755 104.720 104.755
2016-11-05 2016 44 103.072 103.099 103.049 103.099 103.124 103.149 103.124 103.146
2016-11-12 2016 45 106.615 106.638 106.590 106.590 106.658 106.659 106.647 106.652
2016-11-19 2016 46 110.922 110.922 110.859 110.859 110.934 110.951 110.920 110.951
2016-11-26 2016 47 112.942 113.204 112.942 113.163 113.040 113.258 113.040 113.254
2016-12-03 2016 48 113.489 113.489 113.489 113.489 113.532 113.551 113.532 113.551
2016-12-10 2016 49 115.177 115.177 115.159 115.159 115.238 115.242 115.238 115.242
2016-12-17 2016 50 117.990 117.990 117.905 117.905 118.009 118.011 117.972 117.976
2016-12-24 2016 51 117.277 117.277 117.238 117.242 117.372 117.372 117.314 117.322
2017-01-01 2016 52 116.994 117.004 116.978 116.978 117.083 117.096 117.076 117.076
2017-01-08 2017 1 116.928 116.928 116.899 116.899 116.944 116.958 116.941 116.947
2017-01-14 2017 2 114.447 114.506 114.427 114.427 114.511 114.536 114.511 114.518
2017-01-21 2017 3 114.569 114.569 114.569 114.569 114.640 114.665 114.640 114.665
2017-01-28 2017 4 115.060 115.076 115.059 115.068 115.110 115.126 115.102 115.120
2017-02-04 2017 5 112.564 112.570 112.542 112.552 112.572 112.606 112.568 112.581
2017-02-11 2017 6 113.212 113.243 113.202 113.222 113.279 113.317 113.275 113.308
2017-02-18 2017 7 112.885 112.900 112.878 112.896 112.899 112.922 112.899 112.916
2017-02-25 2017 8 112.130 112.164 112.103 112.145 112.190 112.219 112.187 112.193
2017-03-04 2017 9 114.013 114.034 113.995 114.023 114.057 114.104 114.057 114.061
2017-03-11 2017 10 114.799 114.813 114.763 114.778 114.876 114.883 114.828 114.836
2017-03-18 2017 11 112.702 112.710 112.678 112.682 112.738 112.763 112.719 112.733
2017-03-25 2017 12 111.248 111.314 111.222 111.312 111.291 111.366 111.273 111.357
2017-04-01 2017 13 111.372 111.378 111.346 111.363 111.401 111.419 111.397 111.408
2017-04-08 2017 14 111.085 111.085 111.054 111.054 111.118 111.139 111.118 111.139
2017-04-15 2017 15 108.585 108.592 108.560 108.565 108.681 108.687 108.629 108.641
2017-04-22 2017 16 109.008 109.008 108.951 108.951 109.084 109.084 109.049 109.049
2017-04-29 2017 17 111.512 111.512 111.510 111.510 111.537 111.537 111.537 111.537
2017-05-06 2017 18 112.687 112.687 112.618 112.638 112.776 112.776 112.701 112.728
2017-05-13 2017 19 113.335 113.335 113.335 113.335 113.360 113.362 113.360 113.362
2017-05-20 2017 20 111.271 111.271 111.241 111.262 111.293 111.300 111.280 111.281
2017-05-27 2017 21 111.312 111.320 111.304 111.309 111.336 111.345 111.323 111.323
2017-06-03 2017 22 110.428 110.460 110.422 110.438 110.441 110.468 110.439 110.453
2017-06-10 2017 23 110.321 110.321 110.316 110.316 110.334 110.351 110.334 110.351
2017-06-17 2017 24 110.864 110.869 110.861 110.865 110.881 110.892 110.878 110.882
2017-06-24 2017 25 111.284 111.290 111.283 111.290 111.298 111.307 111.298 111.307
2017-07-01 2017 26 112.399 112.399 112.376 112.376 112.430 112.450 112.430 112.450
2017-07-08 2017 27 113.904 113.904 113.900 113.904 113.922 113.922 113.917 113.921
2017-07-15 2017 28 112.527 112.527 112.515 112.515 112.544 112.557 112.544 112.557
2017-07-22 2017 29 111.134 111.134 111.115 111.121 111.147 111.148 111.133 111.134
2017-07-29 2017 30 110.698 110.705 110.680 110.699 110.710 110.726 110.709 110.710
2017-08-05 2017 31 110.677 110.684 110.675 110.682 110.692 110.698 110.688 110.696
2017-08-12 2017 32 109.149 109.172 109.147 109.172 109.162 109.215 109.159 109.193
2017-08-19 2017 33 109.189 109.201 109.169 109.199 109.207 109.221 109.203 109.212
2017-08-26 2017 34 109.322 109.322 109.320 109.322 109.364 109.364 109.362 109.364
2017-09-02 2017 35 110.234 110.236 110.228 110.228 110.276 110.282 110.276 110.280
2017-09-09 2017 36 107.838 107.838 107.832 107.836 107.860 107.864 107.856 107.858
2017-09-16 2017 37 110.828 110.830 110.828 110.830 110.860 110.862 110.860 110.862
2017-09-23 2017 38 111.992 111.992 111.990 111.990 112.000 112.000 112.000 112.000
2017-09-30 2017 39 112.499 112.499 112.460 112.464 112.529 112.562 112.524 112.562
2017-10-07 2017 40 112.606 112.608 112.600 112.600 112.682 112.686 112.682 112.686
2017-10-14 2017 41 111.834 111.834 111.826 111.826 111.876 111.880 111.876 111.878
2017-10-21 2017 42 113.516 113.518 113.503 113.508 113.536 113.557 113.534 113.551
2017-10-28 2017 43 113.660 113.662 113.635 113.635 113.704 113.715 113.702 113.715
2017-11-04 2017 44 114.048 114.048 114.042 114.042 114.087 114.091 114.085 114.085
2017-11-11 2017 45 113.522 113.522 113.505 113.505 113.542 113.564 113.542 113.548
2017-11-18 2017 46 112.130 112.142 112.085 112.085 112.166 112.188 112.150 112.164
2017-11-25 2017 47 111.502 111.502 111.492 111.501 111.545 111.545 111.535 111.544
2017-12-02 2017 48 112.164 112.164 112.162 112.164 112.216 112.216 112.216 112.216
2017-12-09 2017 49 113.464 113.466 113.444 113.448 113.474 113.504 113.474 113.498
2017-12-16 2017 50 112.584 112.590 112.578 112.581 112.654 112.660 112.648 112.657
2017-12-23 2017 51 113.254 113.265 113.254 113.265 113.328 113.343 113.328 113.343
2017-12-31 2017 52 112.660 112.660 112.643 112.651 112.700 112.729 112.700 112.729
2018-01-07 2017 53 NA NA NA NA NA NA NA NA
2018-01-07 2018 1 113.032 113.032 113.018 113.018 113.092 113.100 113.090 113.098
2018-01-13 2018 2 111.002 111.006 110.988 110.996 111.044 111.060 111.026 111.052
2018-01-20 2018 3 110.814 110.814 110.814 110.814 110.856 110.856 110.854 110.854
2018-01-27 2018 4 108.624 108.626 108.589 108.589 108.634 108.648 108.632 108.632
2018-02-03 2018 5 110.153 110.153 110.152 110.152 110.195 110.195 110.195 110.195
2018-02-10 2018 6 108.780 108.780 108.768 108.770 108.812 108.824 108.812 108.824
2018-02-17 2018 7 106.300 106.300 106.272 106.272 106.312 106.325 106.303 106.315
2018-02-24 2018 8 106.863 106.863 106.858 106.858 106.919 106.919 106.914 106.914
2018-03-03 2018 9 105.722 105.722 105.696 105.712 105.730 105.762 105.730 105.757
2018-03-10 2018 10 106.807 106.818 106.807 106.814 106.850 106.850 106.822 106.822
2018-03-17 2018 11 105.964 105.966 105.953 105.953 106.001 106.007 106.001 106.007
2018-03-24 2018 12 104.728 104.730 104.708 104.712 104.744 104.766 104.742 104.766
2018-03-31 2018 13 106.261 106.261 106.258 106.260 106.312 106.312 106.312 106.312
2018-04-07 2018 14 106.926 106.926 106.913 106.915 106.950 106.962 106.950 106.962
2018-04-14 2018 15 107.334 107.338 107.334 107.338 107.377 107.385 107.377 107.385
2018-04-21 2018 16 107.628 107.628 107.616 107.616 107.656 107.674 107.656 107.674
2018-04-28 2018 17 109.042 109.046 109.022 109.022 109.074 109.088 109.064 109.080
2018-05-05 2018 18 109.055 109.059 109.055 109.056 109.098 109.105 109.098 109.105
2018-05-12 2018 19 109.360 109.360 109.358 109.358 109.412 109.412 109.410 109.410
2018-05-19 2018 20 110.746 110.746 110.730 110.736 110.760 110.789 110.760 110.783
2018-05-26 2018 21 109.378 109.380 109.362 109.362 109.398 109.409 109.398 109.409
2018-06-02 2018 22 109.514 109.514 109.488 109.488 109.524 109.548 109.524 109.535
2018-06-09 2018 23 109.511 109.536 109.507 109.509 109.554 109.558 109.550 109.554
2018-06-16 2018 24 110.644 110.650 110.644 110.644 110.687 110.692 110.687 110.691
2018-06-23 2018 25 109.982 109.984 109.976 109.976 109.992 109.994 109.984 109.984
2018-06-30 2018 26 110.678 110.678 110.666 110.666 110.698 110.708 110.698 110.708
2018-07-07 2018 27 110.450 110.454 110.446 110.449 110.477 110.499 110.477 110.499
## Tidy dataset for modelling.
data_m1 %<>% 
  dplyr::mutate(open = (BidOpen + AskOpen)/2, close = (BidClose + AskClose)/2) %>% 
  dplyr::rename(high = BidHigh, low = AskLow) %>%  #use bid price for sell.
  dplyr::select(index, open, high, low, close)     # and ask price for buy.

Here I try to check if the filled dataset bias or not. Due to above I used open = (BidOpen + AskOpen)/2, high = BidHigh, low = AskLow and close = (BidClose + AskClose)/21. There will probably have bias.

tb3 <- data_m1 %>% dplyr::mutate(
  bias.open = if_else(open>high|open<low, 1, 0), 
  bias.high = if_else(high<open|high<low|high<close, 1, 0), 
  bias.low = if_else(low>open|low>high|low>close, 1, 0), 
  bias.close = if_else(close>high|close<low, 1, 0)) %>% 
  dplyr::filter(bias.open==1|bias.high==1|bias.low==1|bias.close==1)# %>% 
#  kable(caption = 'Bias Imputation') %>% 
#  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>%
#  scroll_box(width = '100%', fixed_thead = TRUE, height = '400px')

tb3
## # A tibble: 709,076 x 9
##    index                open  high   low close bias.open bias.high bias.low
##    <dttm>              <dbl> <dbl> <dbl> <dbl>     <dbl>     <dbl>    <dbl>
##  1 2015-01-05 00:01:00  121.  121.  121.  121.         1         1        1
##  2 2015-01-05 00:02:00  121.  121.  121.  121.         1         1        1
##  3 2015-01-05 00:04:00  121.  121.  121.  121.         1         1        0
##  4 2015-01-05 00:05:00  121.  121.  121.  121.         1         1        0
##  5 2015-01-05 00:09:00  121.  121.  121.  121.         0         0        1
##  6 2015-01-05 00:10:00  121.  121.  121.  121.         1         1        1
##  7 2015-01-05 00:11:00  121.  121.  121.  121.         1         1        1
##  8 2015-01-05 00:12:00  121.  121.  121.  121.         1         1        1
##  9 2015-01-05 00:13:00  121.  121.  121.  121.         1         1        1
## 10 2015-01-05 00:14:00  121.  121.  121.  121.         0         0        1
## # ... with 709,066 more rows, and 1 more variable: bias.close <dbl>
# -------- eval=FALSE -----------
## Below prove that the dataset has no any bias or error.
> read_rds(paste0(dtr1, '/data_m1.rds')) %>% dplyr::mutate(
+     open = BidOpen, high = BidHigh, low = BidLow, close = BidClose, 
+     bias.open = if_else(open>high|open<low, 1, 0), 
+     bias.high = if_else(high<open|high<low|high<close, 1, 0), 
+     bias.low = if_else(low>open|low>high|low>close, 1, 0), 
+     bias.close = if_else(close>high|close<low, 1, 0)) %>% 
+     dplyr::filter(bias.open==1|bias.high==1|bias.low==1|bias.close==1)
# A tibble: 0 x 19
# ... with 19 variables: index <dttm>, year <dbl>, week <dbl>, BidOpen <dbl>, BidHigh <dbl>, BidLow <dbl>,
#   BidClose <dbl>, AskOpen <dbl>, AskHigh <dbl>, AskLow <dbl>, AskClose <dbl>, open <dbl>, high <dbl>, low <dbl>,
#   close <dbl>, bias.open <dbl>, bias.high <dbl>, bias.low <dbl>, bias.close <dbl>

> read_rds(paste0(dtr, '/data_tm1.rds')) %>% dplyr::mutate(
+     open = BidOpen, high = BidHigh, low = BidLow, close = BidClose, 
+     bias.open = if_else(open>high|open<low, 1, 0), 
+     bias.high = if_else(high<open|high<low|high<close, 1, 0), 
+     bias.low = if_else(low>open|low>high|low>close, 1, 0), 
+     bias.close = if_else(close>high|close<low, 1, 0)) %>% 
+     dplyr::filter(bias.open==1|bias.high==1|bias.low==1|bias.close==1)
# A tibble: 0 x 19
# ... with 19 variables: index <dttm>, year <dbl>, week <dbl>, AskOpen <dbl>, AskHigh <dbl>, AskLow <dbl>,
#   AskClose <dbl>, BidOpen <dbl>, BidHigh <dbl>, BidLow <dbl>, BidClose <dbl>, open <dbl>, high <dbl>, low <dbl>,
#   close <dbl>, bias.open <dbl>, bias.high <dbl>, bias.low <dbl>, bias.close <dbl>

> read_rds(paste0(dtr1, '/data_m1.rds')) %>% dplyr::mutate(
+     open = AskOpen, high = AskHigh, low = AskLow, close = AskClose, 
+     bias.open = if_else(open>high|open<low, 1, 0), 
+     bias.high = if_else(high<open|high<low|high<close, 1, 0), 
+     bias.low = if_else(low>open|low>high|low>close, 1, 0), 
+     bias.close = if_else(close>high|close<low, 1, 0)) %>% 
+     dplyr::filter(bias.open==1|bias.high==1|bias.low==1|bias.close==1)
# A tibble: 0 x 19
# ... with 19 variables: index <dttm>, year <dbl>, week <dbl>, BidOpen <dbl>, BidHigh <dbl>, BidLow <dbl>,
#   BidClose <dbl>, AskOpen <dbl>, AskHigh <dbl>, AskLow <dbl>, AskClose <dbl>, open <dbl>, high <dbl>, low <dbl>,
#   close <dbl>, bias.open <dbl>, bias.high <dbl>, bias.low <dbl>, bias.close <dbl>

> read_rds(dtr1, paste0('/data_tm1.rds')) %>% dplyr::mutate(
+     open = AskOpen, high = AskHigh, low = AskLow, close = AskClose, 
+     bias.open = if_else(open>high|open<low, 1, 0), 
+     bias.high = if_else(high<open|high<low|high<close, 1, 0), 
+     bias.low = if_else(low>open|low>high|low>close, 1, 0), 
+     bias.close = if_else(close>high|close<low, 1, 0)) %>% 
+     dplyr::filter(bias.open==1|bias.high==1|bias.low==1|bias.close==1)
# A tibble: 0 x 19
# ... with 19 variables: index <dttm>, year <dbl>, week <dbl>, AskOpen <dbl>, AskHigh <dbl>, AskLow <dbl>,
#   AskClose <dbl>, BidOpen <dbl>, BidHigh <dbl>, BidLow <dbl>, BidClose <dbl>, open <dbl>, high <dbl>, low <dbl>,
#   close <dbl>, bias.open <dbl>, bias.high <dbl>, bias.low <dbl>, bias.close <dbl>

I initially try to use bid for high and ask for low in order to produce a better prediction price for buy and sell. However, I use the mean value of OHLC all prices for this paper to avoid the statistical error/bias.

Due to 1min dataset is better than (more complete) tickdata-to-1min, here I use the 1min dataset.

if(!exists('data_m1')) {
  data_m1 <- read_rds(paste0(dtr1s, '/data_m1.rds'))
}
if(names(data_m1) %>% str_detect('Bid|Ask') %>% any()) {
data_m1 %<>% 
  dplyr::mutate(open = (BidOpen + AskOpen)/2, 
         high = (BidHigh + AskHigh)/2, 
         low = (BidLow + AskLow)/2, 
         close = (BidClose + AskClose)/2) %>% 
  dplyr::select(index, open, high, low, close)
}
tb4 <- data_m1 %>% dplyr::mutate(
  bias.open = if_else(open>high|open<low, 1, 0), 
  bias.high = if_else(high<open|high<low|high<close, 1, 0), 
  bias.low = if_else(low>open|low>high|low>close, 1, 0), 
  bias.close = if_else(close>high|close<low, 1, 0)) %>% 
  dplyr::filter(bias.open==1|bias.high==1|bias.low==1|bias.close==1)# %>% 
#  kable(caption = 'Bias Imputation') %>% 
#  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>%
#  scroll_box(width = '100%', fixed_thead = TRUE, height = '400px')

tb4
## # A tibble: 709,076 x 9
##    index                open  high   low close bias.open bias.high bias.low
##    <dttm>              <dbl> <dbl> <dbl> <dbl>     <dbl>     <dbl>    <dbl>
##  1 2015-01-05 00:01:00  121.  121.  121.  121.         1         1        1
##  2 2015-01-05 00:02:00  121.  121.  121.  121.         1         1        1
##  3 2015-01-05 00:04:00  121.  121.  121.  121.         1         1        0
##  4 2015-01-05 00:05:00  121.  121.  121.  121.         1         1        0
##  5 2015-01-05 00:09:00  121.  121.  121.  121.         0         0        1
##  6 2015-01-05 00:10:00  121.  121.  121.  121.         1         1        1
##  7 2015-01-05 00:11:00  121.  121.  121.  121.         1         1        1
##  8 2015-01-05 00:12:00  121.  121.  121.  121.         1         1        1
##  9 2015-01-05 00:13:00  121.  121.  121.  121.         1         1        1
## 10 2015-01-05 00:14:00  121.  121.  121.  121.         0         0        1
## # ... with 709,066 more rows, and 1 more variable: bias.close <dbl>
//<script type="text/javascript" src="//cdn.datacamp.com/dcl-react.js.gz"></script>

Source : DataCamp Light

You are feel free to surf Online Coding Platform Example for R, Python and also Shell.

4 Modelling

4.1 Seasonal Modelling

Below articles introduce TBATS models tbats() and Dynamic harmonic regression with multiple seasonal periods auto.arima(). Here I also includes ts(), MIDAS midasr(), GARCH-MIDAS, mcsGARCH and Levy Process for this research.

Progress Function

task_progress <- function(mbase, timeID0 = NULL, scs = 60, .pattern = '^mts|^sets', .loops = TRUE) {
  ## ------------- 定时查询进度 ----------------------
  ## 每分钟自动查询与更新以上模拟预测汇价进度(储存文件量)。
  require('magrittr')
  require('tibble')
  
  if(!is.data.frame(class(mbase))) { 
    mbase %<>% data.frame
  }
  
  if (.loops == TRUE) {
    while(1) {
      cat('Current Tokyo Time :', as.character(now('Asia/Tokyo')), '\n\n')
      
      y = as_date(mbase$index) %>% 
            unique
      y <- y[weekdays(y) != 'Saturday'] #filter and omit the weekly last price which is 12:00am on saturday
        datee = y
        
        if(is.null(timeID0)) { 
            timeID0 = y[1]
        } else if (is.Date(timeID0)) { 
            timeID0 = as_date(timeID0)
        } else {
            timeID0 = as_date(mbase$index) %>% 
            unique
        }
      
        y = y[y >= timeID0]
      
      x = list.files(paste0('./data/fx/USDJPY/'), pattern = .pattern) %>% 
          str_replace_all('.rds', '') %>% 
          str_replace_all('.201', '_201') %>% 
          str_split_fixed('_', '2') %>% 
          as_tibble %>% 
          dplyr::rename('Model' = 'V1', 'Date' = 'V2') %>% 
          dplyr::mutate(Model = factor(Model), Date = as_date(Date))
        
      x = join(tibble(Date = datee), x) %>% 
          as_tibble   
      x %<>% na.omit
      
      x %<>% dplyr::mutate(binary = if_else(is.na(Model), 0, 1)) %>% 
          spread(Model, binary)
      
      z <- ldply(x[,-1], function(zz) {
          na.omit(zz) %>% length }) %>% 
          dplyr::rename(x = V1) %>% 
          dplyr::mutate(n = length(y), progress = percent(x/n))
      
      print(z)
      
      prg = sum(z$x)/sum(z$n)
      cat('\n================', as.character(percent(prg)), '================\n\n')
      
      if (prg == 1) break #倘若进度达到100%就停止更新。
      
      Sys.sleep(scs) #以上ldply()耗时3~5秒,而休息时间60秒。
    }
  } else {
    
    cat('Current Tokyo Time :', as.character(now('Asia/Tokyo')), '\n\n')
      
    
      y = as_date(mbase$index) %>% 
            unique
      datee = y
        
      if(is.null(timeID0)) { 
          timeID0 = y[1]
      } else if (is.Date(timeID0)) { 
          timeID0 = as_date(timeID0)
      } else {
          timeID0 = as_date(mbase$index) %>% 
          unique
      }
    
      y = y[y >= timeID0]
    
      x = list.files(paste0('./data/fx/USDJPY/'), pattern = .pattern) %>% 
          str_replace_all('.rds', '') %>% 
          str_replace_all('.201', '_201') %>% 
          str_split_fixed('_', '2') %>% 
          as_tibble %>% 
          dplyr::rename('Model' = 'V1', 'Date' = 'V2') %>% 
          dplyr::mutate(Model = factor(Model), Date = as_date(Date))
        
      x = join(tibble(Date = datee), x) %>% 
          as_tibble
      x %<>% na.omit
      
      x %<>% dplyr::mutate(binary = if_else(is.na(Model), 0, 1)) %>% 
          spread(Model, binary)
        
      z <- ldply(x[,-1], function(zz) {
          na.omit(zz) %>% length }) %>% 
          dplyr::rename(x = V1) %>% 
          dplyr::mutate(n = length(y), progress = percent(x/n))
                
    print(z)
    
    prg = sum(z$x)/sum(z$n)
    cat('\n================', as.character(percent(prg)), '================\n\n')
    }
  }

4.2 Seasonal ETS

4.2.1 ETS ts()

The forecast.ets() will automatically use the optimal ets() which is similar theory with auto.arima().

4.2.2 Weekly >> Daily

I set the length of dataset as weekly but the frequency set as 1440 minutes (per day).

# --------- eval=FALSE ---------
#sq <- seq(1 , length(data_m1$index), by = 1440)
#sets <- list()
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-11')]

for (dt in timeID) {
  smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
  dt %<>% as_date
  smp <- smp[paste0(dt %m-% weeks(1) + seconds(59), '/', dt + seconds(59))]
  
  sets <- smp %>% 
    tk_ts(frequency = 1440) %>% 
    forecast(h = 1440) %>% 
    llply(tk_tbl)
  
  if(is.double(sets$forecast$index[1])){
    sq <- smp %>% 
      tail(1) %>% 
      index
    if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
    sq <- seq(from = sq + minutes(1), sq + days(1), by = 'min')
    sets$forecast$index <- sq
    
  } else {
    sets$forecast$index <- data_m1$index[
    (which(data_m1$index == smp %>% 
             index %>% 
             xts::last()) + 1):(
     which(data_m1$index == smp %>% 
             index %>% 
             xts::last()) + 1440)]
  }
  
  if (!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))
  
  saveRDS(sets, paste0('data/fx/USDJPY/sets.wk.1440.', 
                       as_date(sets$forecast$index[1]), '.rds'))
  
  cat(paste0(
    'data/fx/USDJPY/sets.wk.1440.', 
    as_date(sets$forecast$index[1]), '.rds saved!\n'))
  }

4.2.3 Monthly >> Daily

I set the length of dataset as monthly but the frequency set as 1440 minutes (per day). Initial forecast will be based on weekly dataset and then accumulated date-by-date until a monthly dataset.

# --------- eval=FALSE ---------
#sq <- seq(1 , length(data_m1$index), by = 1440)
#sets <- list()
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-11')]

for (dt in timeID) {
  smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
  dt %<>% as_date
  smp <- smp[paste0(dt %m-% months(1) + seconds(59), '/', dt + seconds(59))]
  
  sets <- smp %>% 
    tk_ts(frequency = 1440) %>% 
    forecast(h=1440) %>% 
    llply(tk_tbl)
  
  if(is.double(sets$forecast$index[1])){
    sq <- smp %>% 
      tail(1) %>% 
      index
    if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
    sq <- seq(from = sq + minutes(1), sq + days(1), by = 'min')
    sets$forecast$index <- sq
    
  } else {
    sets$forecast$index <- data_m1$index[
    (which(data_m1$index == smp %>% 
             index %>% 
             xts::last()) + 1):(
     which(data_m1$index == smp %>% 
             index %>% 
             xts::last()) + 1440)]
  }
  
  if (!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))
  
  saveRDS(sets, paste0('data/fx/USDJPY/sets.mo.1440.', 
                       as_date(sets$forecast$index[1]), '.rds'))
  
  cat(paste0(
    'data/fx/USDJPY/sets.mo.1440.', 
    as_date(sets$forecast$index[1]), '.rds saved!\n'))
  }

4.2.4 Quarterly >> Daily

I set the length of dataset as quarterly but the frequency set as 1440 minutes (per day). Initial forecast will be based on weekly dataset and then accumulated date-by-date until a quarterly dataset.

# --------- eval=FALSE ---------
#sq <- seq(1 , length(data_m1$index), by = 1440)
#sets <- list()
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-11')]

for (dt in timeID) {
  smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
  dt %<>% as_date
  smp <- smp[paste0(dt %m-% months(3) + seconds(59), '/', dt + seconds(59))]
  
  sets <- smp %>% 
    tk_ts(frequency = 1440) %>% 
    forecast(h=1440) %>% 
    llply(tk_tbl)
  
  if(is.double(sets$forecast$index[1])){
    sq <- smp %>% 
      tail(1) %>% 
      index
    if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
    sq <- seq(from = sq + minutes(1), sq + days(1), by = 'min')
    sets$forecast$index <- sq
    
  } else {
    sets$forecast$index <- data_m1$index[
    (which(data_m1$index == smp %>% 
             index %>% 
             xts::last()) + 1):(
     which(data_m1$index == smp %>% 
             index %>% 
             xts::last()) + 1440)]
  }
  
  if (!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))
  
  saveRDS(sets, paste0('data/fx/USDJPY/sets.qt.1440.', 
                       as_date(sets$forecast$index[1]), '.rds'))
  
  cat(paste0(
    'data/fx/USDJPY/sets.qt.1440.', 
    as_date(sets$forecast$index[1]), '.rds saved!\n'))
  }

4.2.5 Yearly >> Daily

I set the length of dataset as yearly but the frequency set as 1440 minutes (per day). Initial forecast will be based on weekly dataset and then accumulated date-by-date until a yearly dataset.

# --------- eval=FALSE ---------
#sq <- seq(1 , length(data_m1$index), by = 1440)
#sets <- list()
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-11')]

for (dt in timeID) {
  smp <- data_m1 %>% tk_xts(silent = TRUE)
  dt %<>% as_date
  smp <- smp[paste0(dt %m-% years(1) + seconds(59), '/', dt + seconds(59))]
  
  sets <- smp %>% 
    tk_ts(frequency = 1440) %>% 
    forecast(h=1440) %>% 
    llply(tk_tbl)
  
  if(is.double(sets$forecast$index[1])){
    sq <- smp %>% 
      tail(1) %>% 
      index
    if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
    sq <- seq(from = sq + minutes(1), sq + days(1), by = 'min')
    sets$forecast$index <- sq
    
  } else {
    sets$forecast$index <- data_m1$index[
    (which(data_m1$index == smp %>% 
             index %>% 
             xts::last()) + 1):(
     which(data_m1$index == smp %>% 
             index %>% 
             xts::last()) + 1440)]
  }
  
  if (!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))
  
  saveRDS(sets, paste0('data/fx/USDJPY/sets.yr.1440.', 
                       as_date(sets$forecast$index[1]), '.rds'))
  
  cat(paste0(
    'data/fx/USDJPY/sets.yr.1440.', 
    as_date(sets$forecast$index[1]), '.rds saved!\n'))
  }

4.2.6 Weekly >> Weekly

I set the length of dataset as weekly but the frequency set as 7200 minutes (per week).

# --------- eval=FALSE ---------
#sq <- seq(1 , length(data_m1$index), by = 7200)
#sets <- list()
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-05')] #2015-01-11

for (dt in timeID) {
  smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
  dt %<>% as_date
  smp <- smp[paste0(dt %m-% weeks(1) + seconds(59), '/', dt + seconds(59))]
  
  sets <- smp %>% 
    tk_ts(frequency = 7200) %>% 
    forecast(h = 7200) %>% 
    llply(tk_tbl)
  
  if(is.double(sets$forecast$index[1])){
    sq <- smp %>% 
      tail(1) %>% 
      index
    if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
    sq <- seq(from = sq + minutes(1), sq + days(5), by = 'min')
    ##sqe[regexpr('Saturday|Sunday', weekdays(sqe)) == -1]
    sets$forecast$index <- sq
    
  } else {
    sets$forecast$index <- data_m1$index[
    (which(data_m1$index == smp %>% 
             index %>% 
             xts::last()) + 1):(
     which(data_m1$index == smp %>% 
             index %>% 
             xts::last()) + 7200)]
  }
  
  if (!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))
  
  saveRDS(sets, paste0('data/fx/USDJPY/sets.wk.7200.', 
                       as_date(sets$forecast$index[1]), '.rds'))
  
  cat(paste0(
    'data/fx/USDJPY/sets.wk.7200.', 
    as_date(sets$forecast$index[1]), '.rds saved!\n'))
  }

4.2.7 Monthly >> Weekly

I set the length of dataset as monthly but the frequency set as 7200 minutes (per week).

# --------- eval=FALSE ---------
#sq <- seq(1 , length(data_m1$index), by = 7200)
#sets <- list()
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-05')] #2015-01-11

for (dt in timeID) {
  smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
  dt %<>% as_date
  smp <- smp[paste0(dt %m-% months(1) + seconds(59), '/', dt + seconds(59))]
  
  sets <- smp %>% 
    tk_ts(frequency = 7200) %>% 
    forecast(h = 7200) %>% 
    llply(tk_tbl)
  
  if(is.double(sets$forecast$index[1])){
    sq <- smp %>% 
      tail(1) %>% 
      index
    if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
    sq <- seq(from = sq + minutes(1), sq + days(5), by = 'min')
    sets$forecast$index <- sq
    
  } else {
    sets$forecast$index <- data_m1$index[
    (which(data_m1$index == smp %>% 
             index %>% 
             xts::last()) + 1):(
     which(data_m1$index == smp %>% 
             index %>% 
             xts::last()) + 7200)]
  }
  
  if (!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))
  
  saveRDS(sets, paste0('data/fx/USDJPY/sets.mo.7200.', 
                       as_date(sets$forecast$index[1]), '.rds'))
  
  cat(paste0(
    'data/fx/USDJPY/sets.mo.7200.', 
    as_date(sets$forecast$index[1]), '.rds saved!\n'))
  }

4.2.8 Quarterly >> Weekly

I set the length of dataset as quarterly but the frequency set as 7200 minutes (per week).

# --------- eval=FALSE ---------
#sq <- seq(1 , length(data_m1$index), by = 7200)
#sets <- list()
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-05')] #2015-01-11

for (dt in timeID) {
  smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
  dt %<>% as_date
  smp <- smp[paste0(dt %m-% months(3) + days(5), '/', dt + seconds(59))]
  
  sets <- smp %>% 
    tk_ts(frequency = 7200) %>% 
    forecast(h = 7200) %>% 
    llply(tk_tbl)
  
  if(is.double(sets$forecast$index[1])){
    sq <- smp %>% 
      tail(1) %>% 
      index
    if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
    sq <- seq(from = sq + minutes(1), sq + weeks(1), by = 'min')
    sets$forecast$index <- sq
    
  } else {
    sets$forecast$index <- data_m1$index[
    (which(data_m1$index == smp %>% 
             index %>% 
             xts::last()) + 1):(
     which(data_m1$index == smp %>% 
             index %>% 
             xts::last()) + 7200)]
  }
  
  if (!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))
  
  saveRDS(sets, paste0('data/fx/USDJPY/sets.qt.7200.', 
                       as_date(sets$forecast$index[1]), '.rds'))
  
  cat(paste0(
    'data/fx/USDJPY/sets.qt.7200.', 
    as_date(sets$forecast$index[1]), '.rds saved!\n'))
  }

4.2.9 Yearly >> Weekly

I set the length of dataset as yearly but the frequency set as 7200 minutes (per week).

# --------- eval=FALSE ---------
#sq <- seq(1 , length(data_m1$index), by = 7200)
#sets <- list()
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-05')] #2015-01-11

for (dt in timeID) {
  smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
  dt %<>% as_date
  smp <- smp[paste0(dt %m-% years(1) + seconds(59), '/', dt + seconds(59))]
  
  sets <- smp %>% 
    tk_ts(frequency = 7200) %>% 
    forecast(h = 7200) %>% 
    llply(tk_tbl)
  
  if(is.double(sets$forecast$index[1])){
    sq <- smp %>% 
      tail(1) %>% 
      index
    if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
    sq <- seq(from = sq + minutes(1), sq + days(5), by = 'min')
    sets$forecast$index <- sq
    
  } else {
    sets$forecast$index <- data_m1$index[
    (which(data_m1$index == smp %>% 
             index %>% 
             xts::last()) + 1):(
     which(data_m1$index == smp %>% 
             index %>% 
             xts::last()) + 7200)]
  }
  
  if (!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))
  
  saveRDS(sets, paste0('data/fx/USDJPY/sets.yr.7200.', 
                       as_date(sets$forecast$index[1]), '.rds'))
  
  cat(paste0(
    'data/fx/USDJPY/sets.yr.7200.', 
    as_date(sets$forecast$index[1]), '.rds saved!\n'))
  }

4.3 Seasonal ARIMA

4.3.1 Introduce SARIMA

If you look at the help file of auto.arima and navigate to the section “Value”, you are directed to the help file of arima function and there you find the following (under the section “Value”) regarding the arma slot: A compact form of the specification, as a vector giving the number of AR, MA, seasonal AR and seasonal MA coefficients, plus the period and the number of non-seasonal and seasonal differences. That is what the seven elements you reported correspond to. In your case, you have a non-seasonal ARIMA(1,2,0).

Source : How to read p,d and q of auto.arima()? (which is 1 among the reference link above.)

So far, we have restricted our attention to non-seasonal data and non-seasonal ARIMA models. However, ARIMA models are also capable of modelling a wide range of seasonal data. A seasonal ARIMA model is formed by including additional seasonal terms in the ARIMA models we have seen so far. It is written as follows:

ARIMA \(\underbrace{(p, d, q)}\) \(\underbrace{(P, D, Q)_{m}}\)
Non-seasonal part of the model Seasonal part of the model

where m = number of observations per year. We use uppercase notation for the seasonal parts of the model, and lowercase notation for the non-seasonal parts of the model.

The seasonal part of the model consists of terms that are similar to the non-seasonal components of the model, but involve backshifts of the seasonal period. For example, an \(ARIMA(1,1,1)(1,1,1)_{4}\) model (without a constant) is for quarterly data (m = 4), and can be written as

\[(1 - {\color{Red}\phi_{1}}B)~(1 - {\color{Red}\Phi_{1}}B^{4}) (1 - B) (1 - B^{4})y_{t} = (1 + {\color{Red}\theta_{1}}B)~ (1 + {\color{Red}\Theta_{1}}B^{4})\varepsilon_{t}\]

The additional seasonal terms are simply multiplied by the non-seasonal terms.

auto.arima(euretail, stepwise=FALSE, approximation=FALSE) is better than auto.arima(euretail).

The auto.arima() function uses nsdiffs() to determine D (the number of seasonal differences to use), and ndiffs() to determine d (the number of ordinary differences to use). The selection of the other model parameters (p, q, P and Q) are all determined by minimizing the AICc, as with non-seasonal ARIMA models.

Source : 8.9 Seasonal ARIMA models (which is 1 among the reference link above.)

Above 8.5 Non-seasonal ARIMA models reference link describe the auto.arima() and the default setting is seasonal=TRUE where it will automatically model3 .

The default arguments are designed for rapid estimation of models for many time series. If you are analysing just one time series, and can afford to take some more time, it is recommended that you set stepwise=FALSE and approximation=FALSE. Non-stepwise selection can be slow, especially for seasonal data. The stepwise algorithm outlined in Hyndman & Khandakar (2008) is used except that the default method for selecting seasonal differences is now based on an estimate of seasonal strength (Wang, Smith & Hyndman, 2006) rather than the Canova-Hansen test. There are also some other minor variations to the algorithm described in Hyndman and Khandakar (2008).

Source : help section of auto.arima().

ARIMA(2,1,1)(1,0,0)[12] is seasonal ARIMA. [12] stands for number of periods in season, i.e. months in year in this case. (1,0,0) stands for seasonal part of model. Take a look at this.

Source : extract ARIMA specificaiton (which is 1 among the reference link above.)

You can force a seasonal model by setting D=1, although auto.arima() runs for quite some time with forced seasonality. (Note that the information criteria are not comparable between the original and the differenced series.) \[ \begin{array}{l,l,l} &\text{Training} & \text{Test}\\ \mathrm{ARIMA}(2,1,1) & 5.729 & 7.657\\ \mathrm{SARIMA}(1,1,0)_{52}\text{ with drift} & 6.481 & 7.390\\ \text{3 harmonics, }\mathrm{ARIMA}(2,1,0) & 5.578 & 5.151\\ \text{4 harmonics, }\mathrm{ARIMA}(2,1,1) & 5.219 & 5.188 \end{array} \]

Source : Seasonality not taken account of in auto.arima() (which is 1 among the reference link above.)

The problem with fitting seasonal ARIMA to daily data is that the “seasonal component” may only operate on the weekends or maybe just the weekdays thus overall there is a non-significnat “seasonal component”. Now what you have to do is to augment your data set with 6 dummies representing the days of the week and perhaps monthly indicators to represent annual effects. Now consider incorporating events such as holidays and include any lead, contemoraneous or lag effect around these known variables. No there may be unusual values (pulses) or level shifts or local time trends in the data. Furthermore the day-of-the-week effects may have changed over time e.g. there was no Saturday effect for the first 20 weeks but a Saturday effect for the last 50 weeks.If you wish to post tour daily data I will give it a try and maybe other readers of the list might also contribute their analysis to help guide you through this.

Source : Auto.arima with daily data: how to capture seasonality/periodicity?

4.3.2 Modelling SARIMA

4.3.2.1 Seasonal Data

Improved auto.arima() The auto.arima() function is widely used for automatically selecting ARIMA models. It works quite well, except that selection of \(D\), the order of seasonal differencing, has always been poor. Up until now, the default has been to use the Canova-Hansen test to select \(D\). Because the CH test has a null hypothesis of deterministic seasonality based on dummy variables, the function will often select \(D=0\). So I’ve now switched to using the OCSB test for selecting \(D\) which has a null hypothesis involving a seasonal difference, so it is much more likely to choose \(D=1\) than previously. I’ve done extensive testing of the forecasts obtained under the two methods, and the OCSB test leads to better forecasts. Hence it is now the default. This means that the function may return a different ARIMA model than previously when the data are seasonal. A separate function for selecting the seasonal order has also been made visible. So you can now call nsdiffs() to find the recommended number of seasonal differences without calling auto.arima(). There is also a ndiffs() function for selecting the number of first differences. Within auto.arima(), nsdiffs() is called first to select \(D\), and then ndiffs() is applied to diff(x,D) if \(D > 0\) or to \(x\) if \(D=0\).

Double-seasonal Holt-Winters The new dshw() function implements Taylor’s (2003) double-seasonal Holt-Winters method. This allows for two levels of seasonality. For example, with hourly data, there is often a daily period of 24 and a weekly period of 168. These are modelled separately in the dshw() function.

I am planning some major new functionality to extend this to the various types of complex seasonality discussed in my recent JASA paper. Hopefully that will be ready in the next few weeks – I have a research assistant working on the new code.

Source : Major changes to the forecast package

library(forecast)
# create some artifical data
modelfitsample <- data.frame(Customer_Visit=rpois(49,3000),Weekday=rep(1:7,7),
                             Christmas=c(rep(0,40),1,rep(0,8)),Day=1:49)

# Create matrix of numeric predictors
xreg <- cbind(Weekday=model.matrix(~as.factor(modelfitsample$Weekday)), 
                  Day=modelfitsample$Day,
              Christmas=modelfitsample$Christmas)

# Remove intercept
xreg <- xreg[,-1]

# Rename columns
colnames(xreg) <- c("Mon","Tue","Wed","Thu","Fri","Sat","Day","Christmas")

# Variable to be modelled
visits <- ts(modelfitsample$Customer_Visit, frequency=7)

# Find ARIMAX model
modArima <- auto.arima(visits, xreg=xreg)

Source : How to setup xreg argument in auto.arima() in R? [closed]

library(forecast)
ts_ <- ts(PaulsData$Temperature, frequency = 1)
msts_ <- msts(ts_, c(7,30,365))
fit <- auto.arima(ts_, seasonal=F, xreg=fourier(msts_, K=c(3,5,10)))  # i,j,k

Source : Find Arima equation using auto.arima, daily long-term data (msts), 3 seasonal regressors, and calculating K in fourier

ts_ <- data_m1$close %>% 
  ts()
mts_ <- data_m1 %>% 
  msts(seasonal.periods = c(1440, 7200), start = index(.)[1])
fit1 <- auto.arima(ts_, seasonal = FALSE, xreg=fourier(mts_, K=c(3,5,10)))
fit2 <- auto.arima(ts_, seasonal = FALSE, xreg=mts_)
fit3 <- auto.arima(ts_, D = 1, xreg=mts_)

## https://stackoverflow.com/questions/12161984/how-to-elegantly-convert-datetime-from-decimal-to-d-m-y-hms
## https://stackoverflow.com/questions/17738746/r-putting-time-series-with-frequency-of-20-min-into-the-function-stl
## https://stats.stackexchange.com/questions/120806/frequency-value-for-seconds-minutes-intervals-data-in-r
## http://manishbarnwal.com/blog/2017/05/03/time_series_and_forecasting_using_R/
smp %>% 
  tk_ts(start = index(index)[1], frequency = c(1440, 7200)) %>% 
  forecast %>% 
  llply(tk_tbl)

4.3.2.2 Weekly >> Daily ts()

Here I use ts() for seasonal data modeling and set auto.arima(D = 1, seasonal = TRUE) as sarima model, sarimax models will be modeled in next paper.

I set the length of dataset as nested seasonal dataset as weekly (1 week = 5 trading days = 7200 minutes) and daily (1 trading day = 1440 minutes).

# --------- eval=FALSE ---------
# sample, not run
> suppressWarnings(Y2015W1 %>% 
                     tk_xts %>% 
                     to.daily %>% 
                     Cl %>% 
                     opt_arma(arma=TRUE))
Using column `index` for date_var.
p d q P D Q s 
0 0 0 0 0 0 1
# --------- eval=FALSE ---------
# eval(parse(text = paste0(fs, "<- read_rds('", fls[[7]], "') %>% as_tibble")))
# sample, not run

sarima <- list()
for(i in (1:length(fs))) {
    smp <- data_m1 %>% tk_xts(silent = TRUE)
    timeID <- c(index(smp), xts::last(index(smp)) + minutes(1)) %>% 
      .[. > force_tz(ymd_hms('2015-01-05 00:00:00 EET'))]
    
    if (dt %in% timeID) {
      smp <- smp[paste0(dt, '/', dt %m+% weeks(1) - seconds(59))]
      
      sarima[[i]] <- tryCatch({llply(price_type, function(y) {
        df = auto.arima(smp, parallel=FALSE, num.cores = 2)
        df = data.frame(Date = index(df$latestPrice[1]), 
                        Type = paste0(names(df$latestPrice), '.', y), 
                        df$latestPrice, df$forecastPrice, t(df$AIC))
        names(df)[4] %<>% str_replace_all('1', 'T+1')
        df
      }) %>% as_tibble %>% bind_rows}, error = function(e) NULL)
      
      if (!dir.exists(paste0('data/fx/', names(sarima[[i]])[3]))) 
        dir.create(paste0('data/fx/', names(sarima[[i]])[3]))
      
      saveRDS(sarima[[i]], paste0(
        'data/fx/', names(sarima[[i]])[3], '/sarima.', 
        unique(sarima[[i]]$Date), '.rds'))
      
      cat(paste0(
        'data/fx/', names(sarima[[i]])[3], '/sarima.', 
        unique(sarima[[i]]$Date), '.rds saved!\n'))
      }
  }
# --------- eval=FALSE ---------
# sample, not run
smp <- data_m1 %>% tk_xts(silent = TRUE)
timeID <- c(index(smp), xts::last(index(smp)) + minutes(1)) %>% 
  .[. > force_tz(ymd_hms('2015-01-05 00:00:00 EET'))]
dt <- timeID[1]
smp <- smp[paste0(dt, '/', dt %m+% weeks(1) - seconds(59))]

smp %>% tk_ts %>% forecast %>% llply(tk_tbl)

mts <- multi_seasons(smp)
aar <- multi_seasons(smp, auto_arima=TRUE)

Below Arima() and auto.arima() functions prove that auto.arima() is better model since it auto adjust the best arima(p,d,q) values.

# --------- eval=FALSE ---------
# sample, not run
> n <- 2000
> m <- 200
> y <- ts(rnorm(n) + (1:n)%%100/30, f=m)

> library(forecast)
> fit <- Arima(y, order=c(2,0,1), xreg=fourier(y, K=4))
> fit
Series: y 
Regression with ARIMA(2,0,1) errors 

Coefficients:
         ar1     ar2      ma1  intercept  S1-200  C1-200   S2-200   C2-200  S3-200   C3-200   S4-200
      0.3846  0.0649  -0.2794     1.6168  0.0354  0.0308  -1.0026  -0.0222  0.0677  -0.0163  -0.5295
s.e.  0.1588  0.0324   0.1584     0.0320  0.0453  0.0452   0.0452   0.0451  0.0450   0.0450   0.0448
      C4-200
      0.0059
s.e.  0.0447

sigma^2 estimated as 1.204:  log likelihood=-3017.65
AIC=6061.3   AICc=6061.49   BIC=6134.11

> fit2 <- auto.arima(y, seasonal=FALSE, xreg=fourier(y, K=4))
> fit2
Series: y 
Regression with ARIMA(1,0,2) errors 

Coefficients:
         ar1      ma1     ma2  intercept  S1-200  C1-200   S2-200   C2-200  S3-200   C3-200   S4-200
      0.4605  -0.3566  0.0605     1.6168  0.0354  0.0309  -1.0026  -0.0222  0.0677  -0.0164  -0.5296
s.e.  0.1319   0.1322  0.0297     0.0319  0.0451  0.0451   0.0450   0.0450  0.0449   0.0449   0.0447
      C4-200
      0.0057
s.e.  0.0447

sigma^2 estimated as 1.204:  log likelihood=-3017.44
AIC=6060.87   AICc=6061.06   BIC=6133.69

> fit$aic
[1] 6061.302
> fit2$aic
[1] 6060.873

Modeling

# --------- eval=FALSE ---------
# measure as sample take from next chunk
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-11')]
dt <- timeID[1]

smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
dt %<>% as_date
smp <- smp[paste0(dt %m-% weeks(1) + seconds(59), '/', dt + seconds(59))]

sarimats <- smp %>% 
    tk_ts(frequency = 1440)

## 
fit_ts <- auto.arima(Op(sarimats), D = 1)#, trace = TRUE)
saveRDS(fit_ts, 'data/fx/USDJPY/sarima_ts_sample.rds')

## 
fr_ts <- forecast(fit_ts, h = 1440)
saveRDS(fr_ts, 'data/fx/USDJPY/sarima_frts_sample.rds')

## 
sq <- smp %>% 
  tail(1) %>% 
  index
if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
sq <- seq(from = sq + minutes(1), sq + days(1), by = 'min')
fr_ts.sample <- as_tibble(data.frame(index = sq, fr_ts)) %>% 
  dplyr::select(index, Point.Forecast)
dt.sample <- dplyr::filter(data_m1, index %in% fr_ts.sample$index) %>% 
  dplyr::select(index, open)
fr_ts.sample <- join(dt.sample, fr_ts.sample) %>% 
  as_tibble %>% 
  dplyr::rename(sarima_ts = Point.Forecast)

if(!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))

saveRDS(fr_ts.sample, paste0('data/fx/USDJPY/fr_ts.sample.wk.1440.', 
                         as_date(fr_ts.sample$index[1]), '.rds'))

cat(paste0(
    'data/fx/USDJPY/fr_ts.sample.wk.1440.', 
    as_date(fr_ts.sample$index[1]), '.rds saved!\n'))

Due to above model consume few hours, here I can only use a sample to compare the accuracy.

# --------- eval=FALSE ---------
#Not run
#sq <- seq(1 , length(data_m1$index), by = 1440)
#sets <- list()
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-11')]

for (dt in timeID) {
  smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
  dt %<>% as_date
  smp <- smp[paste0(dt %m-% weeks(1) + seconds(59), '/', dt + seconds(59))]
  
  sarimats <- smp %>% 
    tk_ts(frequency = 1440)
    #https://stackoverflow.com/a/37046276/3806250 #auto.arima(x, D = 1)
    #https://stackoverflow.com/a/37400899/3806250 #auto.arima(x, seasonal = TRUE)
  
  sarimats <- llply(., function(x) {
    auto.arima(x, D = 1) %>% #, trace = TRUE) %>% 
      forecast(h = 1440)
    }) %>% 
    llply(tk_tbl)
  
  ## ----------------------------------------
  ## Not yet test run
  sq <- smp %>% 
    tail(1) %>% 
    index
  if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
  sq <- seq(from = sq + minutes(1), sq + days(1), by = 'min')
  dtf <- as_tibble(data.frame(index = sq, sarimats)) %>% 
    dplyr::select(index, Point.Forecast)
  dts <- dplyr::filter(data_m1, index %in% dtf$index) %>% 
    dplyr::select(index, open)
  dtf <- join(dt.sample, dtf) %>% 
    as_tibble
  
  if(!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))

  saveRDS(dtf, paste0('data/fx/USDJPY/sarima_ts.wk.1440.', 
                        as_date(dtf$index[1]), '.rds'))

  cat(paste0('data/fx/USDJPY/sarima_ts.wk.1440.', 
             as_date(dtf$index[1]), '.rds saved!\n'))
  ## ----------------------------------------
  }

4.3.2.3 Monthly >> Weekly >> Daily ts()

I set the length of dataset as 3 level nested seasonal dataset as monthly (), weekly (1 week = 5 trading days = 7200 minutes) and daily (1 trading day = 1440 minutes).

4.3.2.4 Yearly >> Weekly >> Daily ts()

I set the length of dataset as 3 level nested seasonal dataset as monthly (1 year = ), weekly (1 week = 5 trading days = 7200 minutes) and daily (1 trading day = 1440 minutes).

4.3.2.5 Weekly >> Daily msts()

Modeling

# --------- eval=FALSE ---------
# measure as sample take from next chunk
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-11')]
dt <- timeID[1]

smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
dt %<>% as_date
smp <- smp[paste0(dt %m-% weeks(1) + seconds(59), '/', dt + seconds(59))]

## Dataset has 7200 observations which is 7200 mins per week
## due to not enough data to run, here I set as 60 mins and 1440 mins, therefore it can loop 5 days.
#mts <- smp %>% 
#    msts(seasonal.periods = c(1440, 7200))
sarimamsts <- smp %>% 
  msts(seasonal.periods = c(60, 1440))

##
fit_msts <- auto.arima(Op(sarimamsts), D = 1)#, trace = TRUE)
saveRDS(fit_msts, 'data/fx/USDJPY/sarima_msts_sample.rds')

##
fr_msts <- forecast(fit_msts, h = 1440)
saveRDS(fr_msts, 'data/fx/USDJPY/sarima_frmsts_sample.rds')

##

## 
sq <- smp %>% 
  tail(1) %>% 
  index
if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
sq <- seq(from = sq + minutes(1), sq + days(1), by = 'min')

fr_msts.sample <- data.frame(index = sq, fr_msts) %>% 
  dplyr::select(index, Point.Forecast) %>% as_tibble
rownames(fr_msts.sample) <- NULL
dt.sample <- dplyr::filter(data_m1, index %in% fr_msts.sample$index) %>% 
  dplyr::select(index, open)
fr_msts.sample <- join(dt.sample, fr_msts.sample) %>% 
  as_tibble %>% 
  dplyr::rename(sarima_msts = Point.Forecast)

if(!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))

saveRDS(fr_msts.sample, paste0('data/fx/USDJPY/fr_msts.sample.wk.1440.', 
                         as_date(fr_msts.sample$index[1]), '.rds'))

cat(paste0(
    'data/fx/USDJPY/fr_msts.sample.wk.1440.', 
    as_date(fr_msts.sample$index[1]), '.rds saved!\n'))
# --------- eval=FALSE ---------
#sq <- seq(1 , length(data_m1$index), by = 1440)
#mts <- list()
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-11')]

for (dt in timeID) {
  smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
  dt %<>% as_date
  smp <- smp[paste0(dt %m-% weeks(1) + seconds(59), '/', dt + seconds(59))]
  
  sarimamsts <- smp %>% 
    msts(seasonal.periods = c(1440, 7200))
  
  sarimamsts <- llply(1:ncol(sarimamsts), function(i) {
    y <- sarimamsts[,i] %>% 
      auto.arima(D = 1) %>% 
      forecast(h = 1440) %>% 
      as_tibble
      #names(y)[1] <- names(smp)[i]
      #names(y)[2:ncol(y)] <- paste0(names(y)[1], '.', names(y)[2:ncol(y)])
      #names(y)[1] <- paste0(names(smp)[i], '.Point.Forecast')
      names(y)[1] <- names(smp)[i]
      y
    }) %>% 
    bind_rows %>% 
    dplyr::mutate(Model = factor('tbats'), Period = factor('dy.wk'), type = case_when(
      !is.na(open) ~ 'open', 
      !is.na(high) ~ 'high', 
      !is.na(low) ~ 'low', 
      !is.na(close) ~ 'close')) %>% 
    dlply(.(type, Period), function(x) {
      x %<>% dplyr::rename(open.Point.Forecast = open, 
                           high.Point.Forecast = high, 
                           low.Point.Forecast = low, 
                           close.Point.Forecast = close)
      names(x)[str_detect(names(x), '80|95')] <- paste0(x$type[1], '.', names(x)[str_detect(names(x), '80|95')])
      x[colSums(!is.na(x)) > 0] %>% 
        data.frame %>% 
        as_tibble %>% 
        dplyr::select(-type)
      
      }) %>% 
    bind_cols %>% 
    as_tibble 
  sarimamsts <- sarimamsts[c('open.Point.Forecast', 'high.Point.Forecast', 'low.Point.Forecast', 'close.Point.Forecast', 
               'open.Lo.80', 'open.Hi.80', 'open.Lo.95', 'open.Hi.95', 
               'high.Lo.80', 'high.Hi.80', 'high.Lo.95', 'high.Hi.95', 
               'low.Lo.80', 'low.Hi.80', 'low.Lo.95', 'low.Hi.95', 
               'close.Lo.80', 'close.Hi.80', 'close.Lo.95', 'close.Hi.95')]
  #sarimamsts[str_detect(names(sarimamsts), 'Model.|Period.')] <- NULL
  
  ## ----------------------------------------
  ## Not yet test run  if(is.numeric(index(sarimamsts)[1])){
    sq <- smp %>% 
      tail(1) %>% 
      index
    if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
    sq <- seq(from = sq + minutes(1), sq + days(1), by = 'min')
    n <- nrow(sarimamsts) / length(sq)
    
    sarimamsts <- cbind(index = rep(sq, n), sarimamsts) %>% 
      as_tibble
    
  } else {
    stop('index of dataset does not assign.')
    #sarimamsts$forecast$index <- data_m1$index[
    #(which(data_m1$index == smp %>% 
    #         index %>% 
    #         xts::last()) + 1):(
    # which(data_m1$index == smp %>% 
    #         index %>% 
    #         xts::last()) + 1440)]
  }
  
  if (!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))
  
  saveRDS(sarimamsts, paste0('data/fx/USDJPY/sarimamsts.sample.dy.wk.', 
                       as_date(sarimamsts$index[1]), '.rds'))
  
  cat(paste0(
    'data/fx/USDJPY/sarimamsts.sample.dy.wk.', 
    as_date(sarimamsts$index[1]), '.rds saved!\n'))
  ## ----------------------------------------
  }

Due to above model consume few hours, here I can only use a sample to compare the accuracy.

4.4 TBATS forecast::tbats()

4.4.1 Modelling

4.4.2 Nested Daily-Weekly Model

# --------- eval=FALSE ---------
#sq <- seq(1 , length(data_m1$index), by = 1440)
#mts <- list()
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-11')]

for (dt in timeID) {
  smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
  dt %<>% as_date
  smp <- smp[paste0(dt %m-% weeks(1) + seconds(59), '/', dt + seconds(59))]
  
  mts <- smp %>% 
    msts(seasonal.periods = c(1440, 7200))
  
  mts <- llply(1:ncol(mts), function(i) {
    y <- mts[,i] %>% 
      tbats %>% 
      forecast(h = 1440) %>% 
      as_tibble
      #names(y)[1] <- names(smp)[i]
      #names(y)[2:ncol(y)] <- paste0(names(y)[1], '.', names(y)[2:ncol(y)])
      #names(y)[1] <- paste0(names(smp)[i], '.Point.Forecast')
      names(y)[1] <- names(smp)[i]
      y
    }) %>% 
    bind_rows %>% 
    dplyr::mutate(Model = factor('tbats'), Period = factor('dy.wk'), type = case_when(
      !is.na(open) ~ 'open', 
      !is.na(high) ~ 'high', 
      !is.na(low) ~ 'low', 
      !is.na(close) ~ 'close')) %>% 
    dlply(.(type, Period), function(x) {
      x %<>% dplyr::rename(open.Point.Forecast = open, 
                           high.Point.Forecast = high, 
                           low.Point.Forecast = low, 
                           close.Point.Forecast = close)
      names(x)[str_detect(names(x), '80|95')] <- paste0(x$type[1], '.', names(x)[str_detect(names(x), '80|95')])
      x[colSums(!is.na(x)) > 0] %>% 
        data.frame %>% 
        as_tibble %>% 
        dplyr::select(-type)
      
      }) %>% 
    bind_cols %>% 
    as_tibble 
  mts <- mts[c('open.Point.Forecast', 'high.Point.Forecast', 'low.Point.Forecast', 'close.Point.Forecast', 
               'open.Lo.80', 'open.Hi.80', 'open.Lo.95', 'open.Hi.95', 
               'high.Lo.80', 'high.Hi.80', 'high.Lo.95', 'high.Hi.95', 
               'low.Lo.80', 'low.Hi.80', 'low.Lo.95', 'low.Hi.95', 
               'close.Lo.80', 'close.Hi.80', 'close.Lo.95', 'close.Hi.95')]
  #mts[str_detect(names(mts), 'Model.|Period.')] <- NULL
  
  if(is.numeric(index(mts)[1])){
    sq <- smp %>% 
      tail(1) %>% 
      index
    if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
    sq <- seq(from = sq + minutes(1), sq + days(1), by = 'min')
    n <- nrow(mts) / length(sq)
    
    mts <- cbind(index = rep(sq, n), mts) %>% 
      as_tibble
    
  } else {
    stop('index of dataset does not assign.')
    #mts$forecast$index <- data_m1$index[
    #(which(data_m1$index == smp %>% 
    #         index %>% 
    #         xts::last()) + 1):(
    # which(data_m1$index == smp %>% 
    #         index %>% 
    #         xts::last()) + 1440)]
  }
  
  if (!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))
  
  saveRDS(mts, paste0('data/fx/USDJPY/mts.dy.wk.', 
                       as_date(mts$index[1]), '.rds'))
  
  cat(paste0(
    'data/fx/USDJPY/mts.dy.wk.', 
    as_date(mts$index[1]), '.rds saved!\n'))
  }

4.4.3 Nested Daily-Weekly-Monthly Model

# --------- eval=FALSE ---------
#sq <- seq(1 , length(data_m1$index), by = 1440)
#mts <- list()
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-11')]

for (dt in timeID) {
  smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
  dt %<>% as_date
  smp <- smp[paste0(dt %m-% months(1) + seconds(59), '/', dt + seconds(59))]
  
  mts <- smp %>% 
    msts(seasonal.periods = c(1440, 7200, nrow(smp)))
  
  mts <- llply(1:ncol(mts), function(i) {
    y <- mts[,i] %>% 
      tbats %>% 
      forecast(h = 1440) %>% 
      as_tibble
      names(y)[1] <- names(smp)[i]
      y
    }) %>% 
    bind_rows %>% 
    dplyr::mutate(Model = factor('tbats'), Period = factor('dy.wk.mo'), type = case_when(
      !is.na(open) ~ 'open', 
      !is.na(high) ~ 'high', 
      !is.na(low) ~ 'low', 
      !is.na(close) ~ 'close')) %>% 
    dlply(.(type, Period), function(x) {
      x %<>% dplyr::rename(open.Point.Forecast = open, 
                           high.Point.Forecast = high, 
                           low.Point.Forecast = low, 
                           close.Point.Forecast = close)
      names(x)[str_detect(names(x), '80|95')] <- paste0(x$type[1], '.', names(x)[str_detect(names(x), '80|95')])
      x[colSums(!is.na(x)) > 0] %>% 
        data.frame %>% 
        as_tibble %>% 
        dplyr::select(-type)
      
      }) %>% 
    join_all %>% 
    as_tibble
  
  if(is.numeric(index(mts)[1])){
    sq <- smp %>% 
      tail(1) %>% 
      index
    if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
    sq <- seq(from = sq + minutes(1), sq + days(1), by = 'min')
    n <- nrow(mts) / length(sq)
    
    mts <- cbind(index = rep(sq, n), mts) %>% 
      as_tibble
    
  } else {
    stop('index of dataset does not assign.')
    #mts$forecast$index <- data_m1$index[
    #(which(data_m1$index == smp %>% 
    #         index %>% 
    #         xts::last()) + 1):(
    # which(data_m1$index == smp %>% 
    #         index %>% 
    #         xts::last()) + 1440)]
  }
  
  if (!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))
  
  saveRDS(mts, paste0('data/fx/USDJPY/mts.dy.wk.mo.', 
                       as_date(mts$index[1]), '.rds'))
  
  cat(paste0(
    'data/fx/USDJPY/mts.dy.wk.mo.', 
    as_date(mts$index[1]), '.rds saved!\n'))
  }

4.4.4 Nested Daily-Weekly-Quarterly Model

# --------- eval=FALSE ---------
#sq <- seq(1 , length(data_m1$index), by = 1440)
#mts <- list()
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-11')]

for (dt in timeID) {
  smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
  dt %<>% as_date
  smp <- smp[paste0(dt %m-% months(3) + seconds(59), '/', dt + seconds(59))]
  
  mts <- smp %>% 
    msts(seasonal.periods = c(1440, 7200, nrow(smp)))
  
  mts <- llply(1:ncol(mts), function(i) {
    y <- mts[,i] %>% 
      tbats %>% 
      forecast(h = 1440) %>% 
      as_tibble
      names(y)[1] <- names(smp)[i]
      y
    }) %>% 
    bind_rows %>% 
    dplyr::mutate(Model = factor('tbats'), Period = factor('dy.wk.qt'), type = case_when(
      !is.na(open) ~ 'open', 
      !is.na(high) ~ 'high', 
      !is.na(low) ~ 'low', 
      !is.na(close) ~ 'close')) %>% 
    dlply(.(type, Period), function(x) {
      x %<>% dplyr::rename(open.Point.Forecast = open, 
                           high.Point.Forecast = high, 
                           low.Point.Forecast = low, 
                           close.Point.Forecast = close)
      names(x)[str_detect(names(x), '80|95')] <- paste0(x$type[1], '.', names(x)[str_detect(names(x), '80|95')])
      x[colSums(!is.na(x)) > 0] %>% 
        data.frame %>% 
        as_tibble %>% 
        dplyr::select(-type)
      
      }) %>% 
    join_all %>% 
    as_tibble
  
  if(is.numeric(index(mts)[1])){
    sq <- smp %>% 
      tail(1) %>% 
      index
    if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
    sq <- seq(from = sq + minutes(1), sq + days(1), by = 'min')
    n <- nrow(mts) / length(sq)
    
    mts <- cbind(index = rep(sq, n), mts) %>% 
      as_tibble
    
  } else {
    stop('index of dataset does not assign.')
    #mts$forecast$index <- data_m1$index[
    #(which(data_m1$index == smp %>% 
    #         index %>% 
    #         xts::last()) + 1):(
    # which(data_m1$index == smp %>% 
    #         index %>% 
    #         xts::last()) + 1440)]
  }
  
  if (!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))
  
  saveRDS(mts, paste0('data/fx/USDJPY/mts.dy.wk.qt.', 
                       as_date(mts$index[1]), '.rds'))
  
  cat(paste0(
    'data/fx/USDJPY/mts.dy.wk.qt.', 
    as_date(mts$index[1]), '.rds saved!\n'))
  }

Due to heavily calculation and based on the comparison section proved that 2 levels (or layers) nested model more effective than 3 levels (or layers) models, here I skip above model.

4.4.5 Nested Daily-Weekly-Yearly Model

# --------- eval=FALSE ---------
#sq <- seq(1 , length(data_m1$index), by = 1440)
#mts <- list()
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-11')]

for (dt in timeID) {
  smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
  dt %<>% as_date
  smp <- smp[paste0(dt %m-% years(1) + seconds(59), '/', dt + seconds(59))]
  
  mts <- smp %>% 
    msts(seasonal.periods = c(1440, 7200, nrow(smp)))
  
  mts <- llply(1:ncol(mts), function(i) {
    y <- mts[,i] %>% 
      tbats %>% 
      forecast(h = 1440) %>% 
      as_tibble
      names(y)[1] <- names(smp)[i]
      y
    }) %>% 
    bind_rows %>% 
    dplyr::mutate(Model = factor('tbats'), Period = factor('dy.wk.yr'), type = case_when(
      !is.na(open) ~ 'open', 
      !is.na(high) ~ 'high', 
      !is.na(low) ~ 'low', 
      !is.na(close) ~ 'close')) %>% 
    dlply(.(type, Period), function(x) {
      x %<>% dplyr::rename(open.Point.Forecast = open, 
                           high.Point.Forecast = high, 
                           low.Point.Forecast = low, 
                           close.Point.Forecast = close)
      names(x)[str_detect(names(x), '80|95')] <- paste0(x$type[1], '.', names(x)[str_detect(names(x), '80|95')])
      x[colSums(!is.na(x)) > 0] %>% 
        data.frame %>% 
        as_tibble %>% 
        dplyr::select(-type)
      
      }) %>% 
    join_all %>% 
    as_tibble
  
  if(is.numeric(index(mts)[1])){
    sq <- smp %>% 
      tail(1) %>% 
      index
    if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
    sq <- seq(from = sq + minutes(1), sq + days(1), by = 'min')
    n <- nrow(mts) / length(sq)
    
    mts <- cbind(index = rep(sq, n), mts) %>% 
      as_tibble
    
  } else {
    stop('index of dataset does not assign.')
    #mts$forecast$index <- data_m1$index[
    #(which(data_m1$index == smp %>% 
    #         index %>% 
    #         xts::last()) + 1):(
    # which(data_m1$index == smp %>% 
    #         index %>% 
    #         xts::last()) + 1440)]
  }
  
  if (!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))
  
  saveRDS(mts, paste0('data/fx/USDJPY/mts.dy.wk.yr.', 
                       as_date(mts$index[1]), '.rds'))
  
  cat(paste0(
    'data/fx/USDJPY/mts.dy.wk.yr.', 
    as_date(mts$index[1]), '.rds saved!\n'))
  }

Due to heavily calculation and based on the comparison section proved that 2 levels (or layers) nested model more effective than 3 levels (or layers) models, here I skip above model.

4.4.6 Nested Daily-Weekly-Monthly-Quarterly-Yearly Model

# --------- eval=FALSE ---------
#sq <- seq(1 , length(data_m1$index), by = 1440)
#mts <- list()
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-11')]

for (dt in timeID) {
  smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
  dt %<>% as_date
  
  ##https://robjhyndman.com/hyndsight/seasonal-periods/
  yr1 <- smp[paste0(dt %m-% years(1) + seconds(59), '/', dt + seconds(59))]
  qt1 <- smp[paste0(dt %m-% months(3) + seconds(59), '/', dt + seconds(59))]
  
  mts <- smp %>% 
    msts(seasonal.periods = c(1440, 7200, nrow(qt1), nrow(yr1)))
  
  mts <- llply(1:ncol(mts), function(i) {
    y <- mts[,i] %>% 
      tbats %>% 
      forecast(h = 1440) %>% 
      as_tibble
      names(y)[1] <- names(smp)[i]
      y
    }) %>% 
    bind_rows %>% 
    dplyr::mutate(Model = factor('tbats'), Period = factor('dy.wk.qt.yr'), type = case_when(
      !is.na(open) ~ 'open', 
      !is.na(high) ~ 'high', 
      !is.na(low) ~ 'low', 
      !is.na(close) ~ 'close')) %>% 
    dlply(.(type, Period), function(x) {
      x %<>% dplyr::rename(open.Point.Forecast = open, 
                           high.Point.Forecast = high, 
                           low.Point.Forecast = low, 
                           close.Point.Forecast = close)
      names(x)[str_detect(names(x), '80|95')] <- paste0(x$type[1], '.', names(x)[str_detect(names(x), '80|95')])
      x[colSums(!is.na(x)) > 0] %>% 
        data.frame %>% 
        as_tibble %>% 
        dplyr::select(-type)
      
      }) %>% 
    join_all %>% 
    as_tibble
  
  if(is.numeric(index(mts)[1])){
    sq <- smp %>% 
      tail(1) %>% 
      index
    if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
    sq <- seq(from = sq + minutes(1), sq + days(1), by = 'min')
    n <- nrow(mts) / length(sq)
    
    mts <- cbind(index = rep(sq, n), mts) %>% 
      as_tibble
    
  } else {
    stop('index of dataset does not assign.')
    #mts$forecast$index <- data_m1$index[
    #(which(data_m1$index == smp %>% 
    #         index %>% 
    #         xts::last()) + 1):(
    # which(data_m1$index == smp %>% 
    #         index %>% 
    #         xts::last()) + 1440)]
  }
  
  if (!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))
  
  saveRDS(mts, paste0('data/fx/USDJPY/mts.dy.wk.qt.yr.', 
                       as_date(mts$index[1]), '.rds'))
  
  cat(paste0(
    'data/fx/USDJPY/mts.dy.wk.qt.yr.', 
    as_date(mts$index[1]), '.rds saved!\n'))
  }

Due to heavily calculation and based on the comparison section proved that 2 levels (or layers) nested model more effective than 3 levels (or layers) models, here I skip above model.

4.4.7 Nested Daily-Quarterly Model

# --------- eval=FALSE ---------
#sq <- seq(1 , length(data_m1$index), by = 1440)
#mts <- list()
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-11')]

for (dt in timeID) {
  smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
  dt %<>% as_date
  smp <- smp[paste0(dt %m-% months(3) + seconds(59), '/', dt + seconds(59))]
  
  mts <- smp %>% 
    msts(seasonal.periods = c(1440, nrow(smp)))
  
  mts <- llply(1:ncol(mts), function(i) {
    y <- mts[,i] %>% 
      tbats %>% 
      forecast(h = 1440) %>% 
      as_tibble
      names(y)[1] <- names(smp)[i]
      y
    }) %>% 
    bind_rows %>% 
    dplyr::mutate(Model = factor('tbats'), Period = factor('dy.qt'), type = case_when(
      !is.na(open) ~ 'open', 
      !is.na(high) ~ 'high', 
      !is.na(low) ~ 'low', 
      !is.na(close) ~ 'close')) %>% 
    dlply(.(type, Period), function(x) {
      x %<>% dplyr::rename(open.Point.Forecast = open, 
                           high.Point.Forecast = high, 
                           low.Point.Forecast = low, 
                           close.Point.Forecast = close)
      names(x)[str_detect(names(x), '80|95')] <- paste0(x$type[1], '.', names(x)[str_detect(names(x), '80|95')])
      x[colSums(!is.na(x)) > 0] %>% 
        data.frame %>% 
        as_tibble %>% 
        dplyr::select(-type)
      
      }) %>% 
    bind_cols %>% 
    as_tibble 
  mts <- mts[c('open.Point.Forecast', 'high.Point.Forecast', 'low.Point.Forecast', 'close.Point.Forecast', 
               'open.Lo.80', 'open.Hi.80', 'open.Lo.95', 'open.Hi.95', 
               'high.Lo.80', 'high.Hi.80', 'high.Lo.95', 'high.Hi.95', 
               'low.Lo.80', 'low.Hi.80', 'low.Lo.95', 'low.Hi.95', 
               'close.Lo.80', 'close.Hi.80', 'close.Lo.95', 'close.Hi.95')]
  #mts[str_detect(names(mts), 'Model.|Period.')] <- NULL
  
  if(is.numeric(index(mts)[1])){
    sq <- smp %>% 
      tail(1) %>% 
      index
    if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
    sq <- seq(from = sq + minutes(1), sq + days(1), by = 'min')
    n <- nrow(mts) / length(sq)
    
    mts <- cbind(index = rep(sq, n), mts) %>% 
      as_tibble
    
  } else {
    stop('index of dataset does not assign.')
    #mts$forecast$index <- data_m1$index[
    #(which(data_m1$index == smp %>% 
    #         index %>% 
    #         xts::last()) + 1):(
    # which(data_m1$index == smp %>% 
    #         index %>% 
    #         xts::last()) + 1440)]
  }
  
  if (!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))
  
  saveRDS(mts, paste0('data/fx/USDJPY/mts.dy.qt.', 
                       as_date(mts$index[1]), '.rds'))
  
  cat(paste0(
    'data/fx/USDJPY/mts.dy.qt.', 
    as_date(mts$index[1]), '.rds saved!\n'))
  }

4.4.8 Nested Daily-Yearly Model

# --------- eval=FALSE ---------
#sq <- seq(1 , length(data_m1$index), by = 1440)
#mts <- list()
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-11')]

for (dt in timeID) {
  smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
  dt %<>% as_date
  smp <- smp[paste0(dt %m-% years(1) + seconds(59), '/', dt + seconds(59))]
  
  mts <- smp %>% 
    msts(seasonal.periods = c(1440, nrow(smp)))
  
  mts <- llply(1:ncol(mts), function(i) {
    y <- mts[,i] %>% 
      tbats %>% 
      forecast(h = 1440) %>% 
      as_tibble
      names(y)[1] <- names(smp)[i]
      y
    }) %>% 
    bind_rows %>% 
    dplyr::mutate(Model = factor('tbats'), Period = factor('dy.yr'), type = case_when(
      !is.na(open) ~ 'open', 
      !is.na(high) ~ 'high', 
      !is.na(low) ~ 'low', 
      !is.na(close) ~ 'close')) %>% 
    dlply(.(type, Period), function(x) {
      x %<>% dplyr::rename(open.Point.Forecast = open, 
                           high.Point.Forecast = high, 
                           low.Point.Forecast = low, 
                           close.Point.Forecast = close)
      names(x)[str_detect(names(x), '80|95')] <- paste0(x$type[1], '.', names(x)[str_detect(names(x), '80|95')])
      x[colSums(!is.na(x)) > 0] %<>% 
        data.frame %>% 
        as_tibble %>% 
        dplyr::select(-type)
      #x[c(ncol(x), ncol(x)-1, x[1:(ncol(x)-2)])] #Due to xts format attr, there will be not in order.
      
      }) %>% 
    bind_cols %>% 
    as_tibble 
  mts <- mts[c('open.Point.Forecast', 'high.Point.Forecast', 'low.Point.Forecast', 'close.Point.Forecast', 
               'open.Lo.80', 'open.Hi.80', 'open.Lo.95', 'open.Hi.95', 
               'high.Lo.80', 'high.Hi.80', 'high.Lo.95', 'high.Hi.95', 
               'low.Lo.80', 'low.Hi.80', 'low.Lo.95', 'low.Hi.95', 
               'close.Lo.80', 'close.Hi.80', 'close.Lo.95', 'close.Hi.95')]
  #mts[str_detect(names(mts), 'Model.|Period.')] <- NULL
  
  if(is.numeric(index(mts)[1])){
    sq <- smp %>% 
      tail(1) %>% 
      index
    if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
    sq <- seq(from = sq + minutes(1), sq + days(1), by = 'min')
    n <- nrow(mts) / length(sq)
    
    mts <- cbind(index = rep(sq, n), mts) %>% 
      as_tibble
    
  } else {
    stop('index of dataset does not assign.')
    #mts$forecast$index <- data_m1$index[
    #(which(data_m1$index == smp %>% 
    #         index %>% 
    #         xts::last()) + 1):(
    # which(data_m1$index == smp %>% 
    #         index %>% 
    #         xts::last()) + 1440)]
  }
  
  if (!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))
  
  saveRDS(mts, paste0('data/fx/USDJPY/mts.dy.yr.', 
                       as_date(mts$index[1]), '.rds'))
  
  cat(paste0(
    'data/fx/USDJPY/mts.dy.yr.', 
    as_date(mts$index[1]), '.rds saved!\n'))
  }
seasonal_m1 <- read_rds('data/fx/USDJPY/seasonal_m1.rds')
yr_2018 <- data.table(seasonal_m1)[as_date(index) > as_date('2017-12-31')]

dy.qt_dy.yr_2018 <- yr_2018[Model == 'tbats' & Period %in% c('dy.qt', 'dy.yr')]

4.4.9 Nested Weekly-Weekly Model

Based on the comparison section proved that daily (1440 mins) nested model more effective than weekly (7200 mins) nested models, here I skip above model.

4.4.10 Nested Weekly-Monthly Model

Based on the comparison section proved that daily (1440 mins) nested model more effective than weekly (7200 mins) nested models, here I skip above model.

4.4.11 Nested Weekly-Quarterly Model

Based on the comparison section proved that daily (1440 mins) nested model more effective than weekly (7200 mins) nested models, here I skip above model.

4.4.12 Nested Weekly-Yearly Model

Based on the comparison section proved that daily (1440 mins) nested model more effective than weekly (7200 mins) nested models, here I skip above model.

## Due to notice there have bias on `qt` and `yr` models after 2 years 2020 from 2018... might probably due to different reasons.

## mts.dy.wk.
ffl <- list.files('data/fx/USDJPY', pattern = 'mts.dy.wk.[0-9]{4}')
smp <- llply(ffl, function(x) {
    read_rds(paste0('data/fx/USDJPY/', x))
  })

smp_wk <- smp %>% 
  bind_rows()
smp_wk %<>% 
  .[c('index', 'open.Point.Forecast', 'high.Point.Forecast',
  'low.Point.Forecast', 'close.Point.Forecast')]
smp_wk <- join(data_m1, smp_wk)
smp_wk %<>% 
  tibble %>% 
  na.omit

## mts.dy.wk.mo
ffl <- list.files('data/fx/USDJPY', pattern = 'mts.dy.wk.mo.[0-9]{4}')
smp <- llply(ffl, function(x) {
    read_rds(paste0('data/fx/USDJPY/', x))
  })

smp_wk.mo <- smp %>% 
  bind_rows()
smp_wk.mo %<>% 
  .[c('index', 'open.Point.Forecast', 'high.Point.Forecast',
  'low.Point.Forecast', 'close.Point.Forecast')]
smp_wk.mo <- join(data_m1, smp_wk.mo)
smp_wk.mo %<>% 
  tibble %>% 
  na.omit

## mts.dy.qt.
ffl <- list.files('data/fx/USDJPY', pattern = 'mts.dy.qt.[0-9]{4}')
smp <- llply(ffl, function(x) {
    read_rds(paste0('data/fx/USDJPY/', x))
  })

smp_qt <- smp %>% 
  bind_rows()
smp_qt %<>% 
  .[c('index', 'open.Point.Forecast', 'high.Point.Forecast',
  'low.Point.Forecast', 'close.Point.Forecast')]
smp_qt <- join(data_m1, smp_qt)
smp_qt %<>% 
  tibble %>% 
  na.omit

## mts.dy.yr.
ffl <- list.files('data/fx/USDJPY', pattern = 'mts.dy.yr.[0-9]{4}')
smp <- llply(ffl, function(x) {
    read_rds(paste0('data/fx/USDJPY/', x))
  })

smp_yr <- smp %>% 
  bind_rows()
smp_yr %<>% 
  .[c('index', 'open.Point.Forecast', 'high.Point.Forecast', 
      'low.Point.Forecast', 'close.Point.Forecast')]
smp_yr <- join(data_m1, smp_yr)
smp_yr %<>% 
  tibble %>% 
  na.omit

rm(ffl, smp)

## trace and check the bias
smp_wkc <- smp_wk %>% 
    ddply(.(date = as_date(index)), summarise, 
          MSE.open = mean((open.Point.Forecast - open)^2, na.rm=TRUE), 
          MSE.high = mean((high.Point.Forecast - high)^2, na.rm=TRUE), 
          MSE.low = mean((low.Point.Forecast - low)^2, na.rm=TRUE), 
          MSE.close = mean((close.Point.Forecast - close)^2, na.rm=TRUE), 
          MSE.HLC = (MSE.high + MSE.low + MSE.close)/3, 
          MSE.OHLC = (MSE.open + MSE.high + MSE.low + MSE.close)/4, 
          n = length(index)) %>% 
    as_tibble
smp_wkc <- data.frame(model = factor('mts.dy.wk'), smp_wkc) %>% 
  tibble

smp_wk.moc <- smp_wk.mo %>% 
    ddply(.(date = as_date(index)), summarise, 
          MSE.open = mean((open.Point.Forecast - open)^2, na.rm=TRUE), 
          MSE.high = mean((high.Point.Forecast - high)^2, na.rm=TRUE), 
          MSE.low = mean((low.Point.Forecast - low)^2, na.rm=TRUE), 
          MSE.close = mean((close.Point.Forecast - close)^2, na.rm=TRUE), 
          MSE.HLC = (MSE.high + MSE.low + MSE.close)/3, 
          MSE.OHLC = (MSE.open + MSE.high + MSE.low + MSE.close)/4, 
          n = length(index)) %>% 
    as_tibble
smp_wk.moc <- data.frame(model = factor('mts.dy.wk.mo'), smp_wk.moc) %>% 
  tibble

smp_qtc <- smp_qt %>% 
    ddply(.(date = as_date(index)), summarise, 
          MSE.open = mean((open.Point.Forecast - open)^2, na.rm=TRUE), 
          MSE.high = mean((high.Point.Forecast - high)^2, na.rm=TRUE), 
          MSE.low = mean((low.Point.Forecast - low)^2, na.rm=TRUE), 
          MSE.close = mean((close.Point.Forecast - close)^2, na.rm=TRUE), 
          MSE.HLC = (MSE.high + MSE.low + MSE.close)/3, 
          MSE.OHLC = (MSE.open + MSE.high + MSE.low + MSE.close)/4, 
          n = length(index)) %>% 
    as_tibble
smp_qtc <- data.frame(model = factor('mts.dy.qt'), smp_qtc) %>% 
  tibble

smp_yrc <- smp_yr %>% 
    ddply(.(date = as_date(index)), summarise, 
          MSE.open = mean((open.Point.Forecast - open)^2, na.rm=TRUE), 
          MSE.high = mean((high.Point.Forecast - high)^2, na.rm=TRUE), 
          MSE.low = mean((low.Point.Forecast - low)^2, na.rm=TRUE), 
          MSE.close = mean((close.Point.Forecast - close)^2, na.rm=TRUE), 
          MSE.HLC = (MSE.high + MSE.low + MSE.close)/3, 
          MSE.OHLC = (MSE.open + MSE.high + MSE.low + MSE.close)/4, 
          n = length(index)) %>% 
    as_tibble
smp_yrc <- data.frame(model = factor('mts.dy.yr'), smp_yrc) %>% 
  tibble

smpp <- list(smp_wkc, smp_wk.moc, smp_qtc, smp_yrc) %>% 
  bind_rows

MSE.open <- smpp %>% 
    dplyr::select(date, model, MSE.open, n) %>% 
    spread(model, MSE.open) %>% 
  na.omit %>% 
    dplyr::mutate(mean = rowMeans(
      select(., mts.dy.wk, mts.dy.wk.mo, mts.dy.qt, mts.dy.yr)))

MSE.high <- smpp %>% 
    dplyr::select(date, model, MSE.high, n) %>% 
    spread(model, MSE.high) %>% 
  na.omit %>% 
    dplyr::mutate(mean = rowMeans(
      select(., mts.dy.wk, mts.dy.wk.mo, mts.dy.qt, mts.dy.yr)))

MSE.low <- smpp %>% 
    dplyr::select(date, model, MSE.low, n) %>% 
    spread(model, MSE.low) %>% 
  na.omit %>% 
    dplyr::mutate(mean = rowMeans(
      select(., mts.dy.wk, mts.dy.wk.mo, mts.dy.qt, mts.dy.yr)))

MSE.close <- smpp %>% 
    dplyr::select(date, model, MSE.close, n) %>% 
    spread(model, MSE.close) %>% 
  na.omit %>% 
    dplyr::mutate(mean = rowMeans(
      select(., mts.dy.wk, mts.dy.wk.mo, mts.dy.qt, mts.dy.yr)))

select(MSE.open, c(mts.dy.wk, mts.dy.wk.mo, mts.dy.qt, mts.dy.yr, mean)) %>% colMeans
#   mts.dy.wk mts.dy.wk.mo    mts.dy.qt    mts.dy.yr         mean 
#   0.2931847    0.3066926    0.6637179    3.0892483    1.0882109 
select(MSE.high, c(mts.dy.wk, mts.dy.wk.mo, mts.dy.qt, mts.dy.yr, mean)) %>% colMeans
#   mts.dy.wk mts.dy.wk.mo    mts.dy.qt    mts.dy.yr         mean 
#   0.2824914    0.3044910    0.6679225    3.1030069    1.0894780 
select(MSE.low, c(mts.dy.wk, mts.dy.wk.mo, mts.dy.qt, mts.dy.yr, mean)) %>% colMeans
#   mts.dy.wk mts.dy.wk.mo    mts.dy.qt    mts.dy.yr         mean 
#   0.2798276    0.3028962    0.6615109    3.0781766    1.0806028 
select(MSE.close, c(mts.dy.wk, mts.dy.wk.mo, mts.dy.qt, mts.dy.yr, mean)) %>% colMeans
#   mts.dy.wk mts.dy.wk.mo    mts.dy.qt    mts.dy.yr         mean 
#   0.2997343    0.2947651    0.6627861    3.0969951    1.0885702
> list(smp_wkc, smp_wk.moc, smp_qtc, smp_yrc) %>% 
  l_ply(function(x) length(x$n), .print = TRUE)
[1] 1084
[1] 1076
[1] 1084
[1] 1084

chk1 <- MSE.open %>% 
    dplyr::mutate(
        diff1 = abs(mts.dy.wk - mean), 
        diff2 = abs(mts.dy.wk.mo - mean),
        diff3 = abs(mts.dy.qt - mean),
        diff4 = abs(mts.dy.yr - mean)) %>% 
    dplyr::mutate_if(is.numeric, round, 4) %>% 
    data.frame

chk1a <- chk1 %>% 
  dplyr::filter(diff1 >= 0.05 | diff2 >= 0.05 | diff3 >= 0.05 | diff4 >= 0.05)
chk1a[1:100,]

4.5 Seasonal Models seasonal::seas()

# --------- eval=FALSE ---------
#sq <- seq(1 , length(data_m1$index), by = 1440)
#mts <- list()
timeID <- data_m1$index %>% 
  as_date %>% 
  unique %>% 
  sort
timeID %<>% .[. > as_date('2015-01-11')]

for (dt in timeID) {
  smp <- data_m1 %>% 
    tk_xts(silent = TRUE)
  dt %<>% as_date
  smp <- smp[paste0(dt %m-% weeks(1) + seconds(59), '/', dt + seconds(59))]
  
  mts <- smp %>% 
    msts(seasonal.periods = c(1440, 7200))
  
  mts <- llply(1:ncol(mts), function(i) {
    y <- mts[,i] %>% 
      tbats %>% 
      forecast(h = 1440) %>% 
      as_tibble
      names(y)[1] <- names(smp)[i]
      y
    }) %>% bind_rows
  
  if(is.double(mts$forecast$index[1])){
    sq <- smp %>% 
      tail(1) %>% 
      index
    if(weekdays(sq) == '土曜日'|weekdays(sq) == 'Saturday') sq <- sq + days(2)
    sq <- seq(from = sq + minutes(1), sq + days(1), by = 'min')
    mts$forecast$index <- sq
    
  } else {
    mts$forecast$index <- data_m1$index[
    (which(data_m1$index == smp %>% 
             index %>% 
             xts::last()) + 1):(
     which(data_m1$index == smp %>% 
             index %>% 
             xts::last()) + 1440)]
  }
  
  if (!dir.exists(paste0('data/fx/USDJPY'))) 
    dir.create(paste0('data/fx/USDJPY'))
  
  saveRDS(sets, paste0('data/fx/USDJPY/sets.wk.1440.', 
                       as_date(sets$forecast$index[1]), '.rds'))
  
  cat(paste0(
    'data/fx/USDJPY/sets.wk.1440.', 
    as_date(sets$forecast$index[1]), '.rds saved!\n'))
  }

4.6 MIDAS

Mixed Frequency Data Sampling Regression Models - The R Package midasr introduce a midas model.

4.7 GARCH-MIDAS

4.8 mcsGARCH

I have just noticed there has another GARCH model in rugarch package and then I roughly read through below articles. This multiplicative component GARCH model is different with normal GARCH model due to it includes the effects of volatility within a day. It is designate for intraday dataset.

## ------------- Simulate uv_fx() ----------------------
## uv_fx just made the model and some argument flexible.
mcsGARCH <- list()

for (dt in timeID) {
  
  for (i in seq(cr_code)) {
    
    smp <- mbase[[names(cr_code)[i]]]
    timeID2 <- c(index(smp), xts::last(index(smp)) + days(1))
    
    if (dt %in% timeID2) {
      dtr <- xts::last(index(smp[index(smp) < dt]), 1) #tail(..., 1)
      smp <- smp[paste0(dtr %m-% years(1), '/', dtr)]
      
      mcsGARCH[[i]] <- tryCatch({llply(price_type, function(y) {
        df = uv_fx(smp, .model = 'mcsGARCH', currency = cr_code[i], 
                   price = y, .cluster = .cl)
        df = data.frame(Date = index(df$latestPrice[1]), 
                        Type = paste0(names(df$latestPrice), '.', y), 
                        df$latestPrice, df$forecastPrice, t(df$AIC))
        names(df)[4] %<>% str_replace_all('1', 'T+1')
        df
      }) %>% as_tibble %>% bind_rows}, error = function(e) NULL)
      
      if (!dir.exists(paste0('data/fx/', names(mcsGARCH[[i]])[3]))) 
        dir.create(paste0('data/fx/', names(mcsGARCH[[i]])[3]))
      
      saveRDS(mcsGARCH[[i]], paste0(
        'data/fx/', names(mcsGARCH[[i]])[3], '/mcsGARCH.', 
        unique(mcsGARCH[[i]]$Date), '.rds'))
    
      cat(paste0(
        'data/fx/', names(mcsGARCH[[i]])[3], '/mcsGARCH.', 
        unique(mcsGARCH[[i]]$Date), '.rds saved!\n'))
    }
    }; rm(i)
  }

4.9 Levy Process

5 Comparison

5.1 1 min per unit

5.1.1 Seasonal ts and msts

Here I read the saved models.

## Get all files.
fls <- paste0('data/fx/USDJPY/', list.files(
  'data/fx/USDJPY/', pattern = '^sets|^mts'))

## Shows example.
# read_rds(grep('sets', fls, value = TRUE)[1])
# read_rds(grep('mts', fls, value = TRUE)[1]) %>% as_tibble

seasonal_m <- llply(1:length(fls), function(i) {
  
  x <- fls[i]
  y <- list()
  
  if(str_detect(x, 'sets.wk.1440.')) {
    y[[i]] <- read_rds(x)$forecast %>% 
      dplyr::mutate(Model = factor('ts'), Period = factor('wk.1440'))

  } else if(str_detect(x, 'sets.mo.1440.')) {
    y[[i]] <- read_rds(x)$forecast %>% 
      dplyr::mutate(Model = factor('ts'), Period = factor('mo.1440'))
    
  } else if(str_detect(x, 'sets.qt.1440.')) {
    y[[i]] <- read_rds(x)$forecast %>% 
      dplyr::mutate(Model = factor('ts'), Period = factor('qt.1440'))
    
  } else if(str_detect(x, 'sets.yr.1440.')) {
    y[[i]] <- read_rds(x)$forecast %>% 
      dplyr::mutate(Model = factor('ts'), Period = factor('yr.1440'))
    
  } else if(str_detect(x, 'sets.wk.7200.')) {
    y[[i]] <- read_rds(x)$forecast %>% 
      dplyr::mutate(Model = factor('ts'), Period = factor('wk.7200'))
    
  } else if(str_detect(x, 'sets.mo.7200.')) {
    y[[i]] <- read_rds(x)$forecast %>% 
      dplyr::mutate(Model = factor('ts'), Period = factor('mo.7200'))
    
  } else if(str_detect(x, 'sets.qt.7200.')) {
    y[[i]] <- read_rds(x)$forecast %>% 
      dplyr::mutate(Model = factor('ts'), Period = factor('qt.7200'))
    
  } else if(str_detect(x, 'sets.yr.7200.')) {
    y[[i]] <- read_rds(x)$forecast %>% 
      dplyr::mutate(Model = factor('ts'), Period = factor('yr.7200'))
    
  } else if(str_detect(x, 'mts.dy.wk.[0-9]{4}')) {
    y[[i]] <- read_rds(x) %>% 
      dplyr::mutate(Model = factor('tbats'), Period = factor('dy.wk'))
    
  } else if(str_detect(x, 'mts.dy.qt.[0-9]{4}')) {
    y[[i]] <- read_rds(x) %>% 
      dplyr::mutate(Model = factor('tbats'), Period = factor('dy.qt'))
    
  } else if(str_detect(x, 'mts.dy.yr.[0-9]{4}')) {
    y[[i]] <- read_rds(x) %>% 
      dplyr::mutate(Model = factor('tbats'), Period = factor('dy.yr'))
    
  } else if(str_detect(x, 'mts.wk.qt.[0-9]{4}')) {
    y[[i]] <- read_rds(x) %>% 
      dplyr::mutate(Model = factor('tbats'), Period = factor('wk.qt'))
    
  } else if(str_detect(x, 'mts.wk.qt.[0-9]{4}')) {
    y[[i]] <- read_rds(x) %>% 
      dplyr::mutate(Model = factor('tbats'), Period = factor('wk.yr'))
    
  } else if(str_detect(x, 'mts.qt.yr.[0-9]{4}')) {
    y[[i]] <- read_rds(x) %>% 
      dplyr::mutate(Model = factor('tbats'), Period = factor('qt.yr'))
    
  }  else if(str_detect(x, 'mts.dy.wk.mo.[0-9]{4}')) {
    y[[i]] <- read_rds(x) %>% # i = 2077
      dplyr::mutate(Model = factor('tbats'), Period = factor('dy.wk.mo'))# %>% 
            #dplyr::rename(high.Point.Forecast = high.high.Point.Forecast)
    
  } else if(str_detect(x, 'mts.dy.wk.mo.qt.[0-9]{4}')) {
    y[[i]] <- read_rds(x) %>% 
      dplyr::mutate(Model = factor('tbats'), Period = factor('dy.wk.mo.qt'))
    
  } else if(str_detect(x, 'mts.dy.wk.mo.yr.[0-9]{4}')) {
    y[[i]] <- read_rds(x) %>% 
      dplyr::mutate(Model = factor('tbats'), Period = factor('dy.wk.mo.yr'))
    
  } else {
    cat('No such files.\n')
  }
  
  y[[i]] %<>% .[c('index', 'Model', 'Period', 
                 'open.Point.Forecast', 'high.Point.Forecast', 
                 'low.Point.Forecast','close.Point.Forecast')]
  #saveRDS(y[[i]], x)
  #cat(x, '\n')
  
  }) %>% 
  bind_rows %>% 
  as_tibble

# seasonal_m[c('Lo.80', 
#              'close.Lo.80', 'close.Hi.80', 'close.Lo.95', 'close.Hi.95', 
#              'high.Hi.80', 'high.Lo.95', 'high.Hi.95', 
#              'high.high.Point.Forecast', 'low.Hi.80', 'low.Lo.95', 
#              'low.Hi.95', 'open.Hi.80', 'open.Lo.95', 'open.Hi.95', 
#              'open.Lo.80', 'high.Lo.80', 'low.Lo.80', 'close.Lo.80')] <- NULL

#a1 <- rbind(aa1, aa2)
#a2 <- rbind(aa3, aa4)
#seasonal_m <- rbind(a1, a2)

## don't use complete.cases() since there has some NA elements in ts models.
#seasonal_m <- seasonal_m[complete.cases(seasonal_m),]
#dataset with 23
#write_rds(seasonal_m, 'data/fx/USDJPY/seasonal_m.rds')
#seasonal_m1 <- seasonal_m
#rm(seasonal_m, data_m1)

#seasonal_m1 %<>% 
#  .[c('index','Model','Period',
#  'open.Point.Forecast','high.Point.Forecast',
#  'low.Point.Forecast','close.Point.Forecast')]#,
#  'open.Point.Forecast.Hi 80','open.Point.Forecast.Lo 80',
#  'open.Point.Forecast.Lo 95','open.Point.Forecast.Hi 95',
#  'high.Point.Forecast.Lo 80','high.Point.Forecast.Hi 80',
#  'high.Point.Forecast.Lo 95','high.Point.Forecast.Hi 95',
#  'low.Point.Forecast.Lo 80','low.Point.Forecast.Hi 80',
#  'low.Point.Forecast.Lo 95','low.Point.Forecast.Hi 95',
#  'close.Point.Forecast.Lo 80','close.Point.Forecast.Hi 80',
#  'close.Point.Forecast.Lo 95','close.Point.Forecast.Hi 95')]

##
#seasonal_m <- llply(fls, function(x) {
#  read_rds(x)$forecast %>% 
#    dplyr::mutate(
#      Model = case_when(
#        grepl('sets.wk.1440.', x) ~ factor('ts'), 
#        grepl('sets.mo.1440.', x) ~ factor('ts'), 
#        grepl('sets.qt.1440.', x) ~ factor('ts'), 
#        grepl('sets.yr.1440.', x) ~ factor('ts'), 
#        grepl('sets.wk.7200.', x) ~ factor('ts'), 
#        grepl('sets.mo.7200.', x) ~ factor('ts'), 
#        grepl('sets.qt.7200.', x) ~ factor('ts'), 
#        grepl('sets.yr.7200.', x) ~ factor('ts'), 
#        grepl('mts.dy.wk.[0-9]{4}', x) ~ factor('tbats'), 
#        grepl('mts.dy.wk.mo.[0-9]{4}', x) ~ factor('tbats'), 
#        grepl('mts.dy.wk.mo.qt.[0-9]{4}', x) ~ factor('tbats'), 
#        grepl('mts.dy.wk.mo.yr.[0-9]{4}', x) ~ factor('tbats'), 
#        FALSE~ stop('No such files.')), 
#      Period = factor('wk.1440'), 
#      Period = factor('mo.1440'), 
#      Period = factor('qt.1440'), 
#      Period = factor('yr.1440'), 
#      Period = factor('wk.7200'), 
#      Period = factor('mo.7200'), 
#      Period = factor('qt.7200'), 
#      Period = factor('yr.7200'), 
#      Period = factor('dy.wk'), 
#      Period = factor('dy.wk.mo'), 
#      Period = factor('dy.wk.mo.qt'), 
#      Period = factor('dy.wk.mo.yr'))
#
  #} else {
  #  stop('No such files.')
  #}
#  }) %>% 
#  bind_rows %>% 
#  as_tibble

##The last observation of Friday is Saturday 00:00:00 but not next Monday 00:00:00. Therefore the Saturday forecasted price will not be merge with Next Monday market price.
#comp %<>% .[colSums(!is.na(.)) > 0]
#seasonal_m1 <- join(data_m1, seasonal_m1) %>% 
#  bind_rows %>% 
#  as_tibble
seasonal_m1 <- join(data_m1, seasonal_m) %>% 
  bind_rows %>% 
  as_tibble

#seasonal_m1 %<>% 
#  .[c('index','Model','Period','open','high','low','close',
#  'open.Point.Forecast','high.Point.Forecast',
#  'low.Point.Forecast','close.Point.Forecast')]#,
#  'open.Point.Forecast.Hi 80','open.Point.Forecast.Lo 80',
#  'open.Point.Forecast.Lo 95','open.Point.Forecast.Hi 95',
#  'high.Point.Forecast.Lo 80','high.Point.Forecast.Hi 80',
#  'high.Point.Forecast.Lo 95','high.Point.Forecast.Hi 95',
#  'low.Point.Forecast.Lo 80','low.Point.Forecast.Hi 80',
#  'low.Point.Forecast.Lo 95','low.Point.Forecast.Hi 95',
#  'close.Point.Forecast.Lo 80','close.Point.Forecast.Hi 80',
#  'close.Point.Forecast.Lo 95','close.Point.Forecast.Hi 95')]

seasonal_m1 %<>% na.omit

seasonal_m1 %<>% .[c('index', 'Model', 'Period', 
                'open', 'high', 'low', 'close', 
                'open.Point.Forecast', 'high.Point.Forecast', 
                'low.Point.Forecast','close.Point.Forecast')]
seasonal_m1 %<>% data.table

## don't use complete.cases() since there has some NA elements in ts models.
#seasonal_m <- seasonal_m[complete.cases(seasonal_m),]
write_rds(seasonal_m1, 'data/fx/USDJPY/seasonal_m1.rds')
#zip it to be splited 99MB for each file.

## ------------------------------------------
## zip above files to be splitted small files since file sizes restriction on GitHub.
## ------------------------------------------
#dir('data/fx/USDJPY', pattern = '*.z') %>% 
#  llply(., function(x) {
#    suppressAll(unzip(paste0('data/fx/USDJPY/', x)))
#  })
seasonal_m1 <- read_rds('data/fx/USDJPY/seasonal_m1.rds')

## https://stackoverflow.com/a/52490634/3806250
#seasonal_m1[is.nan(seasonal_m1)] <- NA

5.1.1.1 Line Graph & Trend

Below graph shows the forecast price and actual price.

5.1.1.1.1 Overview
grph <- seasonal_m1 %>% 
  tidyr::unite(Model, Model:Period) %>% 
  data.table
prc <- unique(grph[, .(index, open, high, low, close)])
prc <- prc[, Model := 'Market.Price'][]
grph <- grph[, (c('open', 'high', 'low', 'close')) := NULL]
names(grph) <- c('index', 'Model', 'open', 'high', 'low', 'close')
grph <- rbind(grph, prc)
grph <- data.table(grph)[order(index)]
rm(prc)

## save dataset in data.table format
saveRDS(grph, 'data/fx/USDJPY/grph.rds')
# fwrite(data.table(grph), 'data/fx/USDJPY/grph.csv')
# write.table(data.table(grph), 'data/fx/USDJPY/grph.txt')

## https://rstudio-pubs-static.s3.amazonaws.com/31702_9c22e3d1a0c44968a4a1f9656f1800ab.html
grph_json <- rjson::toJSON(grph)
write(grph_json, 'data/fx/USDJPY/grph_json.json')

#grph_json <- fromJSON('data/fx/USDJPY/grph_json.json')
grph <- readRDS('data/fx/USDJPY/grph.rds')
data.frame(grph)[c(1:5, (nrow(grph)-5):nrow(grph)),] %>% 
  kbl('html', caption = 'Data Sample', escape = FALSE) %>% 
  ## https://www.w3schools.com/cssref/css_colors.asp
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = 'CornflowerBlue') %>% 
  column_spec(2, background = 'LightSlateGrey') %>% 
  column_spec(3, background = 'DarkGrey') %>% 
  column_spec(5, background = 'DarkGrey') %>% 
  column_spec(7, background = 'DarkGrey') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kable_material(full_width = FALSE) %>% ##`full_width = FALSE` will auto adjust every single columns width to fit the table full width.
  scroll_box(width = '100%', fixed_thead = TRUE)#, height = '400px')
Data Sample
index Model open high low close
1 2015-01-06 00:01:00 ts_mo.7200 119.6400 119.6407 119.6334 119.6341
2 2015-01-06 00:01:00 ts_qt.7200 119.6400 119.6407 119.6334 119.6341
3 2015-01-06 00:01:00 ts_yr.7200 119.6400 119.6407 119.6334 119.6341
4 2015-01-06 00:01:00 Market.Price 119.6340 119.6350 119.6030 119.6145
5 2015-01-06 00:02:00 ts_mo.7200 119.6400 119.6414 119.6337 119.6341
30612955 2018-07-07 00:00:00 ts_yr.7200 110.6905 110.6916 110.6836 110.6871
30612956 2018-07-07 00:00:00 ts_yr.7200 110.7946 110.8081 110.7752 110.7782
30612957 2018-07-07 00:00:00 ts_yr.7200 110.5770 110.5920 110.5786 110.5886
30612958 2018-07-07 00:00:00 ts_yr.7200 110.4429 110.4474 110.4187 110.4338
30612959 2018-07-07 00:00:00 ts_yr.7200 110.6963 110.7030 110.6271 110.6315
30612960 2018-07-07 00:00:00 Market.Price 110.4635 110.4765 110.4615 110.4740

the dataset above has 30612960 x, 6 x dimensions.

## https://plotly.com/r/embedding-graphs-in-rmarkdown
## https://stackoverflow.com/questions/25186022/embedding-plotly-output-in-r-markdown/25192691
## 
fig <- plot_ly(grph, x = ~index, y = ~open, color = ~Model) 
fig <- fig %>% add_lines()
fig
5.1.1.1.2 Open Price
## ------------ eval = FALSE -------------------
## Due to high volume dataset and heavily ploting, here I ommit it.
grph %>% 
    group_by(Model) %>% 
    e_charts(x = index) %>% 
    e_line(open.Point.Forecast, smooth = TRUE) %>% 
  e_datazoom(
    type = 'slider', 
    toolbox = FALSE,
    bottom = -5) %>% 
  e_tooltip() %>% 
  e_title(text = 'Model', subtext = 'open.Point.Forecast', left = 'center') %>% 
  e_axis_labels(x = 'index', y = 'open.Point.Forecast') %>%
  e_x_axis(index, axisPointer = list(show = TRUE)) %>% 
  e_legend(
    orient = 'vertical', 
    type = c('scroll'), 
    #selectedMode = 'multiple', #https://echarts.apache.org/en/option.html#legend
    #selected = list('Model'), 
    left = 0, top = 80) %>% 
  e_grid(left = 150, top = 90) %>% 
  #e_theme('shine') %>% 
  e_toolbox_feature('saveAsImage', title = 'Screenshot')
## ggthemes
palettes1 <- ggthemes_data[['tableau']][['color-palettes']][['ordered-sequential']]
## https://github.com/BTJ01/ggthemes/blob/master/inst/examples/ex-scale_color_tableau.R
palettes2 <- ggthemes_data[["tableau"]][["color-palettes"]][["regular"]]

## -------------------------------
## ggthemr
## https://www.shanelynn.ie/themes-and-colours-for-r-ggplots-with-ggthemr/

#tableau_colours <- c('#1F77B4', '#FF7F0E', '#2CA02C', '#D62728', '#9467BD', '#8C564B', '#CFECF9', '#7F7F7F', '#BCBD22', '#17BECF')
tableau_colours <- palettes2$`Tableau 20`$value
names(tableau_colours) <- palettes2$`Tableau 20`$name

#names(tableau_colours) <- unique(grph$Model)

## https://colorbrewer2.org/#type=qualitative&scheme=Paired&n=12
#tableau_colours <- c('#a6cee3', '#1f78b4', '#b2df8a', '#33a02c', '#fb9a99', '#e31a1c', '#fdbf6f', '#ff7f00', '#cab2d6', '#6a3d9a', '#ffff99', '#b15928')

# you have to add a colour at the start of your palette for outlining boxes, we'll use a grey:
#tableau_colours <- c("#555555", tableau_colours)
# remove previous effects:
ggthemr_reset()

# Define colours for your figures with define_palette
tableau <- define_palette(
    swatch = tableau_colours, # colours for plotting points and bars
    ## https://stackoverflow.com/questions/7014387/whats-the-difference-between-1l-and-1
    gradient = c(lower = tableau_colours[1L], upper = tableau_colours[length(tableau_colours)]), #upper and lower colours for continuous colours
    #background = "#EEEEEE" #defining a grey-ish background 
)
# set the theme for your figures:
ggthemr(tableau)

## ------------------------
## https://stackoverflow.com/questions/34601194/change-colours-to-defined-palette-for-ggplot-objects
change_colours <- function(p, palette) {
  n <- nlevels(p$data[[deparse(p$mapping$group)]])
  tryCatch(as.character(palette), 
           error=function(e) stop('palette should be a vector of colours', call.=FALSE))
  if(n > length(palette)) stop('Not enough colours in palette.')
  pal <- function(n) palette[seq_len(n)]
  p + theme_light() + discrete_scale('colour', 'foo', pal)
}
md1 <- sort(unique(grph$Model)[str_detect(unique(grph$Model), '^ts_')])
md2 <- unique(grph$Model)[!unique(grph$Model) %in% md1]

## https://www.r-graph-gallery.com/line-chart-several-groups-ggplot2.html
p1a <- grph[Model %in% md1] %>% 
  ggplot(aes(x = index, y = open, group = Model, color = Model)) + 
  geom_line() + 
  #scale_colour_gradient2_tableau(palette = names(palettes)[1]) + #first palettes list in name
  #scale_color_viridis(discrete = TRUE) + 
  labs(title = '1 min Open Price Forecasting', 
       subtitle = paste('From', range(unique(grph$index))[1L], 'to', range(unique(grph$index))[2L]), 
       caption = "Data source: fxcm") + 
  ylab('Exchange Rates USD/JPY') + 
  theme_economist() + 
  #scale_color_economist() + 
  ##scale_fill_manual(values = tableau_colours) + 
  #scale_color_brewer(tableau_colours) + 
  #scale_color_jcolors(palette = palettes2$`Tableau 20`$value) + #choose color set among palettes
  #theme(axis.text.x = element_text(hjust = c(0, 0.5, 0.5, 0.5, 1))) + 
  theme(legend.position = 'right')

#ggplotly(p1a)
#p1a

Due to large size, here I do not plot the graph.

## https://www.r-graph-gallery.com/line-chart-several-groups-ggplot2.html
p1b <- grph[Model %in% md2] %>% 
  ggplot(aes(x = index, y = open, group = Model, color = Model)) + 
  geom_line() + 
  #scale_colour_gradient2_tableau(palette = names(palettes)[1]) + #first palettes list in name
  #scale_color_viridis(discrete = TRUE) + 
  labs(title = '1 min Open Price Forecasting', 
       subtitle = paste('From', range(unique(grph$index))[1L], 'to', range(unique(grph$index))[2L]), 
       caption = "Data source: fxcm") + 
  ylab('Exchange Rates USD/JPY') + 
  theme_economist() + 
  #scale_color_economist() + 
  ##scale_fill_manual(values = tableau_colours) + 
  #scale_color_brewer(tableau_colours) + 
  #scale_color_jcolors(palette = palettes2$`Tableau 20`$value) + #choose color set among palettes
  #theme(axis.text.x = element_text(hjust = c(0, 0.5, 0.5, 0.5, 1))) + 
  theme(legend.position = 'right')

#ggplotly(p1b)
#p1b

Due to large size, here I do not plot the graph.

5.1.1.1.3 High Price
## https://www.r-graph-gallery.com/line-chart-several-groups-ggplot2.html
p2a <- grph[Model %in% md1] %>% 
  ggplot(aes(x = index, y = high, group = Model, color = Model)) + 
  geom_line() + 
  #scale_color_viridis(discrete = TRUE) + 
  labs(title = '1 min High Price Forecasting', 
       subtitle = paste('From', range(unique(grph$index))[1L], 'to', range(unique(grph$index))[2L]), 
       caption = "Data source: fxcm") + 
  ylab('Exchange Rates USD/JPY') + 
  theme_economist() + 
  #scale_color_economist() + 
  #theme(axis.text.x = element_text(hjust = c(0, 0.5, 0.5, 0.5, 1))) + 
  theme(legend.position = 'right')

#ggplotly(p2a)
#p2a

Due to large size, here I do not plot the graph.

## https://www.r-graph-gallery.com/line-chart-several-groups-ggplot2.html
p2b <- grph[Model %in% md2] %>% 
  ggplot(aes(x = index, y = high, group = Model, color = Model)) + 
  geom_line() + 
  #scale_color_viridis(discrete = TRUE) + 
  labs(title = '1 min High Price Forecasting', 
       subtitle = paste('From', range(unique(grph$index))[1L], 'to', range(unique(grph$index))[2L]), 
       caption = "Data source: fxcm") + 
  ylab('Exchange Rates USD/JPY') + 
  theme_economist() + 
  #scale_color_economist() + 
  #theme(axis.text.x = element_text(hjust = c(0, 0.5, 0.5, 0.5, 1))) + 
  theme(legend.position = 'right')

#ggplotly(p2b)
#p2b

Due to large size, here I do not plot the graph.

5.1.1.1.4 Low Price
## https://www.r-graph-gallery.com/line-chart-several-groups-ggplot2.html
p3a <- grph[Model %in% md1] %>% 
  ggplot(aes(x = index, y = low, group = Model, color = Model)) + 
  geom_line() + 
  #scale_color_viridis(discrete = TRUE) + 
  labs(title = '1 min Low Price Forecasting', 
       subtitle = paste('From', range(unique(grph$index))[1], 'to', range(unique(grph$index))[2]), 
       caption = "Data source: fxcm") + 
  ylab('Exchange Rates USD/JPY') + 
  theme_economist() + 
  #scale_color_economist() + 
  #theme(axis.text.x = element_text(hjust = c(0, 0.5, 0.5, 0.5, 1))) + 
  theme(legend.position = 'right')

#ggplotly(p3a)
#p3a

Due to large size, here I do not plot the graph.

## https://www.r-graph-gallery.com/line-chart-several-groups-ggplot2.html
p3b <- grph[Model %in% md2] %>% 
  ggplot(aes(x = index, y = low, group = Model, color = Model)) + 
  geom_line() + 
  #scale_color_viridis(discrete = TRUE) + 
  labs(title = '1 min Low Price Forecasting', 
       subtitle = paste('From', range(unique(grph$index))[1], 'to', range(unique(grph$index))[2]), 
       caption = "Data source: fxcm") + 
  ylab('Exchange Rates USD/JPY') + 
  theme_economist() + 
  #scale_color_economist() + 
  #theme(axis.text.x = element_text(hjust = c(0, 0.5, 0.5, 0.5, 1))) + 
  theme(legend.position = 'right')

#ggplotly(p3b)
#p3b

Due to large size, here I do not plot the graph.

5.1.1.1.5 Close Price
## https://www.r-graph-gallery.com/line-chart-several-groups-ggplot2.html
p4a <- grph[Model %in% md1] %>% 
  ggplot(aes(x = index, y = close, group = Model, color = Model)) + 
  geom_line() + 
  #scale_color_viridis(discrete = TRUE) + 
  labs(title = '1 min Close Price Forecasting', 
       subtitle = paste('From', range(unique(grph$index))[1], 'to', range(unique(grph$index))[2]), 
       caption = "Data source: fxcm") + 
  ylab('Exchange Rates USD/JPY') + 
  theme_economist() + 
  #scale_color_economist() + 
  #theme(axis.text.x = element_text(hjust = c(0, 0.5, 0.5, 0.5, 1))) + 
  theme(legend.position = 'right')

#ggplotly(p4a)
#p4a

Due to large size, here I do not plot the graph.

## https://www.r-graph-gallery.com/line-chart-several-groups-ggplot2.html
p4b <- grph[Model %in% md2] %>% 
  ggplot(aes(x = index, y = close, group = Model, color = Model)) + 
  geom_line() + 
  #scale_color_viridis(discrete = TRUE) + 
  labs(title = '1 min Close Price Forecasting', 
       subtitle = paste('From', range(unique(grph$index))[1], 'to', range(unique(grph$index))[2]), 
       caption = "Data source: fxcm") + 
  ylab('Exchange Rates USD/JPY') + 
  theme_economist() + 
  #scale_color_economist() + 
  #theme(axis.text.x = element_text(hjust = c(0, 0.5, 0.5, 0.5, 1))) + 
  theme(legend.position = 'right')

#ggplotly(p4b)
#p4b

Due to large size, here I do not plot the graph.

5.1.1.2 MSE Table

Below table compares the models.

mse1 <- seasonal_m1 %>% 
  ddply(.(Model, Period), summarise, 
        MSE.open = mean((open.Point.Forecast - open)^2, na.rm=TRUE), 
        MSE.high = mean((high.Point.Forecast - high)^2, na.rm=TRUE), 
        MSE.low = mean((low.Point.Forecast - low)^2, na.rm=TRUE), 
        MSE.close = mean((close.Point.Forecast - close)^2, na.rm=TRUE), 
        MSE.HLC = (MSE.high + MSE.low + MSE.close)/3, 
        MSE.OHLC = (MSE.open + MSE.high + MSE.low + MSE.close)/4, 
        n = length(index)) %>% 
  as_tibble
tb6 <- mse1 %>% 
  dplyr::mutate(
    MSE.open = ifelse(
      rank(MSE.open) <= 3, 
      cell_spec(
        paste0(round(MSE.open, 7), ' (rank: ', sprintf('%1.f', rank(MSE.open)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(MSE.open, 7), ' (rank: ', sprintf('%1.f', rank(MSE.open)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    MSE.high = ifelse(
      rank(MSE.high) <= 3, 
      cell_spec(
        paste0(round(MSE.high, 7), ' (rank: ', sprintf('%1.f', rank(MSE.high)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(MSE.high, 7), ' (rank: ', sprintf('%1.f', rank(MSE.high)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    MSE.low = ifelse(
      rank(MSE.low) <= 3, 
      cell_spec(
        paste0(round(MSE.low, 7), ' (rank: ', sprintf('%1.f', rank(MSE.low)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(MSE.low, 7), ' (rank: ', sprintf('%1.f', rank(MSE.low)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    MSE.close = ifelse(
      rank(MSE.close) <= 3, 
      cell_spec(
        paste0(round(MSE.close, 7), ' (rank: ', sprintf('%1.f', rank(MSE.close)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(MSE.close, 7), ' (rank: ', sprintf('%1.f', rank(MSE.close)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    MSE.HLC = ifelse(
      rank(MSE.HLC) <= 3, 
      cell_spec(
        paste0(round(MSE.HLC, 7), ' (rank: ', sprintf('%1.f', rank(MSE.HLC)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(MSE.HLC, 7), ' (rank: ', sprintf('%1.f', rank(MSE.HLC)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    MSE.OHLC = ifelse(
      rank(MSE.OHLC) <= 3, 
      cell_spec(
        paste0(round(MSE.OHLC, 7), ' (rank: ', sprintf('%1.f', rank(MSE.OHLC)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(MSE.OHLC, 7), ' (rank: ', sprintf('%1.f', rank(MSE.OHLC)), ')'), 
        'html', color = 'grey', italic = TRUE))) %>% 
  kbl('html', caption = 'MSE of Seasonal Daily 1440 minutes ETS Model (Accumulated Period from Weekly)', escape = FALSE) %>% 
  ## https://www.w3schools.com/cssref/css_colors.asp
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = 'CornflowerBlue') %>% 
  column_spec(2, background = 'DarkGrey') %>% 
  column_spec(3, background = 'Gainsboro') %>% 
  column_spec(4, background = 'LightGray') %>% 
  column_spec(5, background = 'Gainsboro') %>% 
  column_spec(6, background = 'LightGray') %>% 
  column_spec(7, background = 'Gainsboro') %>%  
  column_spec(8, background = 'LightGray') %>% 
  column_spec(9, background = 'LightSlateGrey') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kable_material(full_width = FALSE) %>% ##`full_width = FALSE` will auto adjust every single columns width to fit the table full width.
  scroll_box(width = '100%', fixed_thead = TRUE)#, height = '400px')

tb6
MSE of Seasonal Daily 1440 minutes ETS Model (Accumulated Period from Weekly)
Model Period MSE.open MSE.high MSE.low MSE.close MSE.HLC MSE.OHLC n
tbats dy.qt 0.5935084 (rank: 7) 0.5943026 (rank: 7) 0.593878 (rank: 7) 0.59344 (rank: 7) 0.5938735 (rank: 7) 0.5937822 (rank: 7) 1298880
tbats dy.wk 0.2331241 (rank: 1) 0.2303957 (rank: 1) 0.2332475 (rank: 1) 0.2415673 (rank: 4) 0.2350702 (rank: 2) 0.2345836 (rank: 1) 1298880
tbats dy.wk.mo 0.2585134 (rank: 6) 0.2529979 (rank: 6) 0.2512802 (rank: 6) 0.2468493 (rank: 5) 0.2503758 (rank: 6) 0.2524102 (rank: 6) 1287360
tbats dy.yr 2.992332 (rank: 12) 2.998829 (rank: 12) 2.9904869 (rank: 12) 3.0017416 (rank: 12) 2.9970192 (rank: 12) 2.9958474 (rank: 12) 1298880
ts mo.1440 0.238598 (rank: 4) 0.2371241 (rank: 4) 0.2350053 (rank: 4) 0.2378324 (rank: 3) 0.2366539 (rank: 4) 0.23714 (rank: 4) 1298880
ts mo.7200 0.9879508 (rank: 11) 0.9550506 (rank: 11) 0.9493971 (rank: 11) 0.9785574 (rank: 11) 0.9610017 (rank: 11) 0.967739 (rank: 11) 4728960
ts qt.1440 0.2355912 (rank: 2) 0.2356448 (rank: 2) 0.2347662 (rank: 2) 0.234693 (rank: 1) 0.2350347 (rank: 1) 0.2351738 (rank: 2) 1298880
ts qt.7200 0.8957095 (rank: 9) 0.8946693 (rank: 10) 0.8959858 (rank: 9) 0.8933443 (rank: 9) 0.8946665 (rank: 9) 0.8949272 (rank: 9) 4739040
ts wk.1440 0.2525562 (rank: 5) 0.2482487 (rank: 5) 0.2492224 (rank: 5) 0.2490372 (rank: 6) 0.2488361 (rank: 5) 0.2497661 (rank: 5) 1298880
ts wk.7200 0.9067682 (rank: 10) 0.8624934 (rank: 8) 0.9333364 (rank: 10) 0.9688244 (rank: 10) 0.9215514 (rank: 10) 0.9178556 (rank: 10) 4710240
ts yr.1440 0.2357672 (rank: 3) 0.2357996 (rank: 3) 0.2349973 (rank: 3) 0.2348683 (rank: 2) 0.2352217 (rank: 3) 0.2353581 (rank: 3) 1298880
ts yr.7200 0.8951182 (rank: 8) 0.8940555 (rank: 9) 0.8943435 (rank: 8) 0.8927659 (rank: 8) 0.8937216 (rank: 8) 0.8940708 (rank: 8) 4739040

from above models we know the βest model.

5.1.2 Interday Models

Here I summarize 1440 of 1 min data to be 1 day and choose the best fitted model. Below table compares the models.

# mse2 <- seasonal_m1 %>% 
#   ddply(.(Model, Period, index), summarise, 
#         MSE.open = mean((open.Point.Forecast - open)^2, na.rm=TRUE), 
#         MSE.high = mean((high.Point.Forecast - high)^2, na.rm=TRUE), 
#         MSE.low = mean((low.Point.Forecast - low)^2, na.rm=TRUE), 
#         MSE.close = mean((close.Point.Forecast - close)^2, na.rm=TRUE), 
#         MSE.HLC = (MSE.high + MSE.low + MSE.close)/3, 
#         MSE.OHLC = (MSE.open + MSE.high + MSE.low + MSE.close)/4, 
#         n = length(index)) %>% 
#   as_tibble

## https://tysonbarrett.com/jekyll/update/2019/10/06/datatable_memory/
## http://brooksandrew.github.io/simpleblog/articles/advanced-data-table/
seasonal_m1 <- data.table(seasonal_m1)
setorder(seasonal_m1, index)

open.accr <- seasonal_m1[, {
  open = open
  open.Point.Forecast = open.Point.Forecast
  .SD[, .(.N, open.mape = MAPE(open, open.Point.Forecast), 
          open.smape = SMAPE(open, open.Point.Forecast), 
          open.mse = MSE(open, open.Point.Forecast), 
          open.rmse = RMSE(open, open.Point.Forecast)), 
      by={index=as_date(index)}]}, 
  by=.(Model, Period)]

saveRDS(open.accr, 'data/fx/USDJPY/open.accr.rds')

high.accr <- seasonal_m1[, {
  high = high
  high.Point.Forecast = high.Point.Forecast
  .SD[, .(.N, high.mape = MAPE(high, high.Point.Forecast), 
          high.smape = SMAPE(high, high.Point.Forecast), 
          high.mse = MSE(high, high.Point.Forecast), 
          high.rmse = RMSE(high, high.Point.Forecast)), 
      by={index=as_date(index)}]}, 
  by=.(Model, Period)]

low.accr <- seasonal_m1[, {
  low = low
  low.Point.Forecast = low.Point.Forecast
  .SD[, .(.N, low.mape = MAPE(low, low.Point.Forecast), 
          low.smape = SMAPE(low, low.Point.Forecast), 
          low.mse = MSE(low, low.Point.Forecast), 
          low.rmse = RMSE(low, low.Point.Forecast)), 
      by={index=as_date(index)}]}, 
  by=.(Model, Period)]

close.accr <- seasonal_m1[, {
  close = close
  close.Point.Forecast = close.Point.Forecast
  .SD[, .(.N, close.mape = MAPE(close, close.Point.Forecast), 
          close.smape = SMAPE(close, close.Point.Forecast), 
          close.mse = MSE(close, close.Point.Forecast), 
          close.rmse = RMSE(close, close.Point.Forecast)), 
      by={index=as_date(index)}]}, 
  by=.(Model, Period)]
open.sm <- open.accr[, list(open.mape = mean(open.mape), 
                            open.smape = mean(open.smape), 
                            open.mse = mean(open.mse), 
                            open.rmse = mean(open.rmse)), 
                       by=.(Model, Period)]

high.sm <- high.accr[, list(high.mape = mean(high.mape), 
                            high.smape = mean(high.smape), 
                            high.mse = mean(high.mse), 
                            high.rmse = mean(high.rmse)), 
                       by=.(Model, Period)]

low.sm <- low.accr[, list(low.mape = mean(low.mape), 
                          low.smape = mean(low.smape), 
                          low.mse = mean(low.mse), 
                          low.rmse = mean(low.rmse)), 
                       by=.(Model, Period)]

close.sm <- close.accr[, list(close.mape = mean(close.mape), 
                              close.smape = mean(close.smape), 
                              close.mse = mean(close.mse), 
                              close.rmse = mean(close.rmse)), 
                       by=.(Model, Period)]

daily.sm <- join_all(list(open.sm, high.sm, low.sm, close.sm)) %>% 
  tibble

saveRDS(daily.sm, 'data/fx/USDJPY/best_m.rds')
rm(open.accr, high.accr, low.accr, close.accr)
rm(open.sm, high.sm, low.sm, close.sm)
open.accr <- readRDS('data/fx/USDJPY/open.accr.rds')

data.frame(open.accr)[c(1:5, (nrow(open.accr)-5):nrow(open.accr)),] %>% 
  kbl('html', caption = 'Data Sample', escape = FALSE) %>% 
  ## https://www.w3schools.com/cssref/css_colors.asp
  ## https://jrnold.github.io/ggthemes/reference/tableau_color_pal.html
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = '#4E79A7') %>% 
  column_spec(2, background = 'CornflowerBlue') %>% 
  column_spec(3, background = 'CornflowerBlue') %>% 
  column_spec(4, background = '#5b65a7') %>% 
  column_spec(5, background = '#A0CBE8') %>% 
  column_spec(6, background = 'DarkGrey') %>% 
  column_spec(8, background = 'DarkGrey') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kable_material(full_width = FALSE) %>% ##`full_width = FALSE` will auto adjust every single columns width to fit the table full width.
  scroll_box(width = '100%', fixed_thead = TRUE)#, height = '400px')
Data Sample
Model Period index N open.mape open.smape open.mse open.rmse
1 ts mo.7200 2015-01-06 1439 0.0056264 0.0056468 0.5810119 0.7622413
2 ts mo.7200 2015-01-07 2879 0.0051038 0.0051011 0.4379304 0.6617631
3 ts mo.7200 2015-01-08 4319 0.0049272 0.0049070 0.5804952 0.7619023
4 ts mo.7200 2015-01-09 5759 0.0043424 0.0043424 0.4274257 0.6537780
5 ts mo.7200 2015-01-10 4 0.0063985 0.0064248 0.7527902 0.8676348
13042 tbats dy.wk.mo 2018-07-02 1439 0.0010502 0.0010493 0.0212129 0.1456465
13043 tbats dy.wk.mo 2018-07-03 1440 0.0012721 0.0012733 0.0349143 0.1868537
13044 tbats dy.wk.mo 2018-07-04 1440 0.0010274 0.0010281 0.0163645 0.1279240
13045 tbats dy.wk.mo 2018-07-05 1440 0.0009804 0.0009800 0.0141517 0.1189611
13046 tbats dy.wk.mo 2018-07-06 1440 0.0007993 0.0007997 0.0130552 0.1142594
13047 tbats dy.wk.mo 2018-07-07 1 0.0016373 0.0016386 0.0328181 0.1811577

From above table, we can know the models with 7200 has more observations due to using 7200 observations per forecast day.

5.1.2.1 Open Price

daily.sm <- readRDS('data/fx/USDJPY/best_m.rds')

tb7 <- daily.sm %>% 
  dplyr::select(contains(c('Model', 'Period', 'open'))) %>% 
  dplyr::mutate(
    open.mape = ifelse(
      rank(open.mape) <= 3, 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.smape = ifelse(
      rank(open.smape) <= 3, 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.mse = ifelse(
      rank(open.mse) <= 3, 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.rmse = ifelse(
      rank(open.rmse) <= 3, 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE))) %>% 
  kbl('html', caption = 'Comparison of Models (1 min Open Price Summarised to 1 Day per Unit)', escape = FALSE) %>% 
  ## https://www.w3schools.com/cssref/css_colors.asp
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = 'CornflowerBlue') %>% 
  column_spec(2, background = 'DarkGrey') %>% 
  column_spec(3, background = 'Gainsboro') %>% 
  column_spec(4, background = 'LightGray') %>% 
  column_spec(5, background = 'Gainsboro') %>% 
  column_spec(6, background = 'LightGray') %>%   
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kable_material(full_width = FALSE) %>% ##`full_width = FALSE` will auto adjust every single columns width to fit the table full width.
  scroll_box(width = '100%', fixed_thead = TRUE)#, height = '400px')

tb7
Comparison of Models (1 min Open Price Summarised to 1 Day per Unit)
Model Period open.mape open.smape open.mse open.rmse
ts mo.7200 0.0064662 (rank: 11) 0.0064709 (rank: 11) 1.0473956 (rank: 11) 0.8433017 (rank: 11)
ts qt.7200 0.006161 (rank: 10) 0.0061649 (rank: 10) 0.9539573 (rank: 9) 0.8067731 (rank: 10)
ts yr.7200 0.0061594 (rank: 9) 0.0061632 (rank: 9) 0.9534985 (rank: 8) 0.8065848 (rank: 9)
tbats dy.qt 0.0038487 (rank: 7) 0.0038663 (rank: 7) 0.6615488 (rank: 7) 0.4836051 (rank: 7)
tbats dy.wk 0.0031178 (rank: 2) 0.0031203 (rank: 2) 0.2951857 (rank: 4) 0.4022059 (rank: 1)
tbats dy.yr 0.0078141 (rank: 12) 0.007929 (rank: 12) 3.0602275 (rank: 12) 0.9279223 (rank: 12)
ts mo.1440 0.0031302 (rank: 4) 0.0031321 (rank: 4) 0.2895257 (rank: 3) 0.4044655 (rank: 4)
ts qt.1440 0.0031176 (rank: 1) 0.0031195 (rank: 1) 0.2870498 (rank: 1) 0.4030116 (rank: 2)
ts wk.1440 0.0032485 (rank: 6) 0.0032503 (rank: 6) 0.3038581 (rank: 5) 0.4183746 (rank: 6)
ts wk.7200 0.0059882 (rank: 8) 0.0059922 (rank: 8) 0.9699289 (rank: 10) 0.7943849 (rank: 8)
ts yr.1440 0.0031196 (rank: 3) 0.0031215 (rank: 3) 0.2872197 (rank: 2) 0.4032139 (rank: 3)
tbats dy.wk.mo 0.0031517 (rank: 5) 0.003155 (rank: 5) 0.3068028 (rank: 6) 0.4058541 (rank: 5)

5.1.2.2 High Price

tb8 <- daily.sm %>% 
  dplyr::select(contains(c('Model', 'Period', 'high'))) %>% 
  dplyr::mutate(
    high.mape = ifelse(
      rank(high.mape) <= 3, 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.smape = ifelse(
      rank(high.smape) <= 3, 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.mse = ifelse(
      rank(high.mse) <= 3, 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.rmse = ifelse(
      rank(high.rmse) <= 3, 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE))) %>% 
  kbl('html', caption = 'Comparison of Models (1 min High Price Summarised to 1 Day per Unit)', escape = FALSE) %>% 
  ## https://www.w3schools.com/cssref/css_colors.asp
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = 'CornflowerBlue') %>% 
  column_spec(2, background = 'DarkGrey') %>% 
  column_spec(3, background = 'Gainsboro') %>% 
  column_spec(4, background = 'LightGray') %>% 
  column_spec(5, background = 'Gainsboro') %>% 
  column_spec(6, background = 'LightGray') %>%   
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kable_material(full_width = FALSE) %>% ##`full_width = FALSE` will auto adjust every single columns width to fit the table full width.
  scroll_box(width = '100%', fixed_thead = TRUE)#, height = '400px')

tb8
Comparison of Models (1 min High Price Summarised to 1 Day per Unit)
Model Period high.mape high.smape high.mse high.rmse
ts mo.7200 0.0064193 (rank: 11) 0.006423 (rank: 11) 1.0112124 (rank: 11) 0.8358733 (rank: 11)
ts qt.7200 0.0061557 (rank: 10) 0.0061595 (rank: 10) 0.9533066 (rank: 10) 0.8063007 (rank: 10)
ts yr.7200 0.0061533 (rank: 9) 0.0061571 (rank: 9) 0.9528094 (rank: 9) 0.806096 (rank: 9)
tbats dy.qt 0.0038612 (rank: 7) 0.0038788 (rank: 7) 0.6638121 (rank: 7) 0.4849377 (rank: 7)
tbats dy.wk 0.003073 (rank: 1) 0.0030751 (rank: 1) 0.2834713 (rank: 1) 0.3968974 (rank: 1)
tbats dy.yr 0.0078198 (rank: 12) 0.0079349 (rank: 12) 3.0679658 (rank: 12) 0.928731 (rank: 12)
ts mo.1440 0.0031324 (rank: 4) 0.0031343 (rank: 4) 0.2906514 (rank: 4) 0.4047309 (rank: 4)
ts qt.1440 0.0031181 (rank: 2) 0.0031199 (rank: 2) 0.2876954 (rank: 2) 0.4030555 (rank: 2)
ts wk.1440 0.0032268 (rank: 6) 0.0032287 (rank: 6) 0.2990047 (rank: 5) 0.4154547 (rank: 6)
ts wk.7200 0.0059253 (rank: 8) 0.0059297 (rank: 8) 0.9198171 (rank: 8) 0.7835024 (rank: 8)
ts yr.1440 0.0031204 (rank: 3) 0.0031222 (rank: 3) 0.2878581 (rank: 3) 0.4032895 (rank: 3)
tbats dy.wk.mo 0.0031536 (rank: 5) 0.0031563 (rank: 5) 0.3040547 (rank: 6) 0.4059904 (rank: 5)

5.1.2.3 Low Price

tb9 <- daily.sm %>% 
  dplyr::select(contains(c('Model', 'Period', 'low'))) %>% 
  dplyr::mutate(
    low.mape = ifelse(
      rank(low.mape) <= 3, 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.smape = ifelse(
      rank(low.smape) <= 3, 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.mse = ifelse(
      rank(low.mse) <= 3, 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.rmse = ifelse(
      rank(low.rmse) <= 3, 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE))) %>% 
  kbl('html', caption = 'Comparison of Models (1 min Open Price Summarised to 1 Day per Unit)', escape = FALSE) %>% 
  ## https://www.w3schools.com/cssref/css_colors.asp
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = 'CornflowerBlue') %>% 
  column_spec(2, background = 'DarkGrey') %>% 
  column_spec(3, background = 'Gainsboro') %>% 
  column_spec(4, background = 'LightGray') %>% 
  column_spec(5, background = 'Gainsboro') %>% 
  column_spec(6, background = 'LightGray') %>%   
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kable_material(full_width = FALSE) %>% ##`full_width = FALSE` will auto adjust every single columns width to fit the table full width.
  scroll_box(width = '100%', fixed_thead = TRUE)#, height = '400px')

tb9
Comparison of Models (1 min Open Price Summarised to 1 Day per Unit)
Model Period low.mape low.smape low.mse low.rmse
ts mo.7200 0.0064064 (rank: 11) 0.00641 (rank: 11) 1.004097 (rank: 11) 0.8332683 (rank: 11)
ts qt.7200 0.0061671 (rank: 10) 0.0061709 (rank: 10) 0.9531488 (rank: 9) 0.8074387 (rank: 10)
ts yr.7200 0.0061568 (rank: 9) 0.0061607 (rank: 9) 0.9515652 (rank: 8) 0.8062817 (rank: 9)
tbats dy.qt 0.0038643 (rank: 7) 0.0038818 (rank: 7) 0.6608467 (rank: 7) 0.4852226 (rank: 7)
tbats dy.wk 0.0030681 (rank: 1) 0.0030702 (rank: 1) 0.2827046 (rank: 1) 0.3965762 (rank: 1)
tbats dy.yr 0.0078147 (rank: 12) 0.0079295 (rank: 12) 3.0546429 (rank: 12) 0.9280394 (rank: 12)
ts mo.1440 0.0031174 (rank: 3) 0.0031192 (rank: 3) 0.283951 (rank: 4) 0.4029595 (rank: 3)
ts qt.1440 0.0031165 (rank: 2) 0.0031183 (rank: 2) 0.2835706 (rank: 2) 0.4028773 (rank: 2)
ts wk.1440 0.0032311 (rank: 6) 0.0032327 (rank: 6) 0.2973999 (rank: 5) 0.4160712 (rank: 6)
ts wk.7200 0.0060377 (rank: 8) 0.0060395 (rank: 8) 0.9968272 (rank: 10) 0.8053099 (rank: 8)
ts yr.1440 0.0031191 (rank: 4) 0.0031209 (rank: 4) 0.283776 (rank: 3) 0.4031772 (rank: 4)
tbats dy.wk.mo 0.0031829 (rank: 5) 0.0031859 (rank: 5) 0.3037754 (rank: 6) 0.4091673 (rank: 5)

5.1.2.4 Close Price

tb10 <- daily.sm %>% 
  dplyr::select(contains(c('Model', 'Period', 'close'))) %>% 
  dplyr::mutate(
    close.mape = ifelse(
      rank(close.mape) <= 3, 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.smape = ifelse(
      rank(close.smape) <= 3, 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.mse = ifelse(
      rank(close.mse) <= 3, 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.rmse = ifelse(
      rank(close.rmse) <= 3, 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE))) %>% 
  kbl('html', caption = 'Comparison of Models (1 min Close Price Summarised to 1 Day per Unit)', escape = FALSE) %>% 
  ## https://www.w3schools.com/cssref/css_colors.asp
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = 'CornflowerBlue') %>% 
  column_spec(2, background = 'DarkGrey') %>% 
  column_spec(3, background = 'Gainsboro') %>% 
  column_spec(4, background = 'LightGray') %>% 
  column_spec(5, background = 'Gainsboro') %>% 
  column_spec(6, background = 'LightGray') %>%   
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kable_material(full_width = FALSE) %>% ##`full_width = FALSE` will auto adjust every single columns width to fit the table full width.
  scroll_box(width = '100%', fixed_thead = TRUE)#, height = '400px')

tb10
Comparison of Models (1 min Close Price Summarised to 1 Day per Unit)
Model Period close.mape close.smape close.mse close.rmse
ts mo.7200 0.0064453 (rank: 11) 0.0064496 (rank: 11) 1.0374788 (rank: 11) 0.8399431 (rank: 11)
ts qt.7200 0.0061522 (rank: 10) 0.006156 (rank: 10) 0.951238 (rank: 9) 0.8057525 (rank: 9)
ts yr.7200 0.0061507 (rank: 9) 0.0061544 (rank: 9) 0.9507895 (rank: 8) 0.8055764 (rank: 8)
tbats dy.qt 0.0038503 (rank: 7) 0.0038679 (rank: 7) 0.6610232 (rank: 7) 0.4837561 (rank: 7)
tbats dy.wk 0.003145 (rank: 5) 0.0031473 (rank: 5) 0.3015154 (rank: 6) 0.4057309 (rank: 5)
tbats dy.yr 0.0078135 (rank: 12) 0.0079289 (rank: 12) 3.0682874 (rank: 12) 0.9280099 (rank: 12)
ts mo.1440 0.0031304 (rank: 4) 0.003132 (rank: 4) 0.2874381 (rank: 3) 0.4044561 (rank: 4)
ts qt.1440 0.0031164 (rank: 1) 0.0031182 (rank: 1) 0.284739 (rank: 1) 0.4028578 (rank: 2)
ts wk.1440 0.0032319 (rank: 6) 0.0032337 (rank: 6) 0.2995034 (rank: 5) 0.4162795 (rank: 6)
ts wk.7200 0.0060614 (rank: 8) 0.006062 (rank: 8) 1.0358588 (rank: 10) 0.8067671 (rank: 10)
ts yr.1440 0.0031187 (rank: 2) 0.0031205 (rank: 2) 0.2849251 (rank: 2) 0.403099 (rank: 3)
tbats dy.wk.mo 0.0031204 (rank: 3) 0.0031234 (rank: 3) 0.2948921 (rank: 4) 0.4018679 (rank: 1)

5.1.2.5 Summary

tb11 <- daily.sm %>% 
  dplyr::mutate(
    open.mape = ifelse(
      rank(open.mape) <= 3, 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.smape = ifelse(
      rank(open.smape) <= 3, 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.mse = ifelse(
      rank(open.mse) <= 3, 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.rmse = ifelse(
      rank(open.rmse) <= 3, 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    high.mape = ifelse(
      rank(high.mape) <= 3, 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.smape = ifelse(
      rank(high.smape) <= 3, 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.mse = ifelse(
      rank(high.mse) <= 3, 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.rmse = ifelse(
      rank(high.rmse) <= 3, 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    low.mape = ifelse(
      rank(low.mape) <= 3, 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.smape = ifelse(
      rank(low.smape) <= 3, 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.mse = ifelse(
      rank(low.mse) <= 3, 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.rmse = ifelse(
      rank(low.rmse) <= 3, 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    close.mape = ifelse(
      rank(close.mape) <= 3, 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.smape = ifelse(
      rank(close.smape) <= 3, 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.mse = ifelse(
      rank(close.mse) <= 3, 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.rmse = ifelse(
      rank(close.rmse) <= 3, 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE))) %>% 
  kbl('html', caption = 'Comparison of Models (1 min summarised to 1 day per unit)', escape = FALSE) %>% 
  ## https://www.w3schools.com/cssref/css_colors.asp
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = 'CornflowerBlue') %>% 
  column_spec(2, background = 'DarkGrey') %>% 
  #column_spec(3, background = 'LightSlateGrey') %>% 
  column_spec(3, background = 'LightGray') %>% 
  column_spec(4, background = 'Gainsboro') %>% 
  column_spec(5, background = 'LightGray') %>%   
  column_spec(6, background = 'Gainsboro') %>% 
  column_spec(7, background = 'LightGray') %>% 
  column_spec(8, background = 'Gainsboro') %>% 
  column_spec(9, background = 'LightGray') %>%   
  column_spec(10, background = 'Gainsboro') %>% 
  column_spec(11, background = 'LightGray') %>% 
  column_spec(12, background = 'Gainsboro') %>% 
  column_spec(13, background = 'LightGray') %>%   
  column_spec(14, background = 'Gainsboro') %>% 
  column_spec(15, background = 'LightGray') %>% 
  column_spec(16, background = 'Gainsboro') %>% 
  column_spec(17, background = 'LightGray') %>%   
  column_spec(18, background = 'Gainsboro') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kable_material(full_width = FALSE) %>% ##`full_width = FALSE` will auto adjust every single columns width to fit the table full width.
  scroll_box(width = '100%', fixed_thead = TRUE)#, height = '400px')

tb11
Comparison of Models (1 min summarised to 1 day per unit)
Model Period open.mape open.smape open.mse open.rmse high.mape high.smape high.mse high.rmse low.mape low.smape low.mse low.rmse close.mape close.smape close.mse close.rmse
ts mo.7200 0.0064662 (rank: 11) 0.0064709 (rank: 11) 1.0473956 (rank: 11) 0.8433017 (rank: 11) 0.0064193 (rank: 11) 0.006423 (rank: 11) 1.0112124 (rank: 11) 0.8358733 (rank: 11) 0.0064064 (rank: 11) 0.00641 (rank: 11) 1.004097 (rank: 11) 0.8332683 (rank: 11) 0.0064453 (rank: 11) 0.0064496 (rank: 11) 1.0374788 (rank: 11) 0.8399431 (rank: 11)
ts qt.7200 0.006161 (rank: 10) 0.0061649 (rank: 10) 0.9539573 (rank: 9) 0.8067731 (rank: 10) 0.0061557 (rank: 10) 0.0061595 (rank: 10) 0.9533066 (rank: 10) 0.8063007 (rank: 10) 0.0061671 (rank: 10) 0.0061709 (rank: 10) 0.9531488 (rank: 9) 0.8074387 (rank: 10) 0.0061522 (rank: 10) 0.006156 (rank: 10) 0.951238 (rank: 9) 0.8057525 (rank: 9)
ts yr.7200 0.0061594 (rank: 9) 0.0061632 (rank: 9) 0.9534985 (rank: 8) 0.8065848 (rank: 9) 0.0061533 (rank: 9) 0.0061571 (rank: 9) 0.9528094 (rank: 9) 0.806096 (rank: 9) 0.0061568 (rank: 9) 0.0061607 (rank: 9) 0.9515652 (rank: 8) 0.8062817 (rank: 9) 0.0061507 (rank: 9) 0.0061544 (rank: 9) 0.9507895 (rank: 8) 0.8055764 (rank: 8)
tbats dy.qt 0.0038487 (rank: 7) 0.0038663 (rank: 7) 0.6615488 (rank: 7) 0.4836051 (rank: 7) 0.0038612 (rank: 7) 0.0038788 (rank: 7) 0.6638121 (rank: 7) 0.4849377 (rank: 7) 0.0038643 (rank: 7) 0.0038818 (rank: 7) 0.6608467 (rank: 7) 0.4852226 (rank: 7) 0.0038503 (rank: 7) 0.0038679 (rank: 7) 0.6610232 (rank: 7) 0.4837561 (rank: 7)
tbats dy.wk 0.0031178 (rank: 2) 0.0031203 (rank: 2) 0.2951857 (rank: 4) 0.4022059 (rank: 1) 0.003073 (rank: 1) 0.0030751 (rank: 1) 0.2834713 (rank: 1) 0.3968974 (rank: 1) 0.0030681 (rank: 1) 0.0030702 (rank: 1) 0.2827046 (rank: 1) 0.3965762 (rank: 1) 0.003145 (rank: 5) 0.0031473 (rank: 5) 0.3015154 (rank: 6) 0.4057309 (rank: 5)
tbats dy.yr 0.0078141 (rank: 12) 0.007929 (rank: 12) 3.0602275 (rank: 12) 0.9279223 (rank: 12) 0.0078198 (rank: 12) 0.0079349 (rank: 12) 3.0679658 (rank: 12) 0.928731 (rank: 12) 0.0078147 (rank: 12) 0.0079295 (rank: 12) 3.0546429 (rank: 12) 0.9280394 (rank: 12) 0.0078135 (rank: 12) 0.0079289 (rank: 12) 3.0682874 (rank: 12) 0.9280099 (rank: 12)
ts mo.1440 0.0031302 (rank: 4) 0.0031321 (rank: 4) 0.2895257 (rank: 3) 0.4044655 (rank: 4) 0.0031324 (rank: 4) 0.0031343 (rank: 4) 0.2906514 (rank: 4) 0.4047309 (rank: 4) 0.0031174 (rank: 3) 0.0031192 (rank: 3) 0.283951 (rank: 4) 0.4029595 (rank: 3) 0.0031304 (rank: 4) 0.003132 (rank: 4) 0.2874381 (rank: 3) 0.4044561 (rank: 4)
ts qt.1440 0.0031176 (rank: 1) 0.0031195 (rank: 1) 0.2870498 (rank: 1) 0.4030116 (rank: 2) 0.0031181 (rank: 2) 0.0031199 (rank: 2) 0.2876954 (rank: 2) 0.4030555 (rank: 2) 0.0031165 (rank: 2) 0.0031183 (rank: 2) 0.2835706 (rank: 2) 0.4028773 (rank: 2) 0.0031164 (rank: 1) 0.0031182 (rank: 1) 0.284739 (rank: 1) 0.4028578 (rank: 2)
ts wk.1440 0.0032485 (rank: 6) 0.0032503 (rank: 6) 0.3038581 (rank: 5) 0.4183746 (rank: 6) 0.0032268 (rank: 6) 0.0032287 (rank: 6) 0.2990047 (rank: 5) 0.4154547 (rank: 6) 0.0032311 (rank: 6) 0.0032327 (rank: 6) 0.2973999 (rank: 5) 0.4160712 (rank: 6) 0.0032319 (rank: 6) 0.0032337 (rank: 6) 0.2995034 (rank: 5) 0.4162795 (rank: 6)
ts wk.7200 0.0059882 (rank: 8) 0.0059922 (rank: 8) 0.9699289 (rank: 10) 0.7943849 (rank: 8) 0.0059253 (rank: 8) 0.0059297 (rank: 8) 0.9198171 (rank: 8) 0.7835024 (rank: 8) 0.0060377 (rank: 8) 0.0060395 (rank: 8) 0.9968272 (rank: 10) 0.8053099 (rank: 8) 0.0060614 (rank: 8) 0.006062 (rank: 8) 1.0358588 (rank: 10) 0.8067671 (rank: 10)
ts yr.1440 0.0031196 (rank: 3) 0.0031215 (rank: 3) 0.2872197 (rank: 2) 0.4032139 (rank: 3) 0.0031204 (rank: 3) 0.0031222 (rank: 3) 0.2878581 (rank: 3) 0.4032895 (rank: 3) 0.0031191 (rank: 4) 0.0031209 (rank: 4) 0.283776 (rank: 3) 0.4031772 (rank: 4) 0.0031187 (rank: 2) 0.0031205 (rank: 2) 0.2849251 (rank: 2) 0.403099 (rank: 3)
tbats dy.wk.mo 0.0031517 (rank: 5) 0.003155 (rank: 5) 0.3068028 (rank: 6) 0.4058541 (rank: 5) 0.0031536 (rank: 5) 0.0031563 (rank: 5) 0.3040547 (rank: 6) 0.4059904 (rank: 5) 0.0031829 (rank: 5) 0.0031859 (rank: 5) 0.3037754 (rank: 6) 0.4091673 (rank: 5) 0.0031204 (rank: 3) 0.0031234 (rank: 3) 0.2948921 (rank: 4) 0.4018679 (rank: 1)

Above table summarized the daily mape, smape, mse and rmse values and then summarized again the models (which is nested summarize due to daily settlement), we can interpret from above table :

  • Weekly or 7200 mins length’s dataset with msts(seasonal.periods = c(1440, 7200)) %>% tbats %>% forecast(h = 1440).
  • Quarterly length’s dataset with tk_ts(frequency = 1440) %>% forecast(h=1440).
  • Annum length’s dataset with tk_ts(frequency = 1440) %>% forecast(h=1440).

5.1.3 Miscellaneous

5.1.3.1 Best Model

#best_model <- seasonal_m1 %>% 
#    ddply(.(Model, Period), summarize, 
#        mape = MAPE(open, open.Point.Forecast), 
#        smape = SMAPE(open, open.Point.Forecast), 
#        mse = MSE(open, open.Point.Forecast), 
#        rmse = RMSE(open, open.Point.Forecast))

## https://tysonbarrett.com/jekyll/update/2019/10/06/datatable_memory/
## http://brooksandrew.github.io/simpleblog/articles/advanced-data-table/
if(!is.data.table(seasonal_m1)) seasonal_m1 <- data.table(seasonal_m1)
setorder(seasonal_m1, index)

m.op <- seasonal_m1[, {
  open = open
  open.Point.Forecast = open.Point.Forecast
  .SD[, .(.N, open.mape = MAPE(open, open.Point.Forecast), 
          open.smape = SMAPE(open, open.Point.Forecast), 
          open.mse = MSE(open, open.Point.Forecast), 
          open.rmse = RMSE(open, open.Point.Forecast)), 
      by=.(Model, Period)]}][order(Model, Period), ]

m.hi <- seasonal_m1[, {
  high = high
  high.Point.Forecast = high.Point.Forecast
  .SD[, .(.N, high.mape = MAPE(high, high.Point.Forecast), 
          high.smape = SMAPE(high, high.Point.Forecast), 
          high.mse = MSE(high, high.Point.Forecast), 
          high.rmse = RMSE(high, high.Point.Forecast)), 
      by=.(Model, Period)]}][order(Model, Period), ]

m.lo <- seasonal_m1[, {
  low = low
  low.Point.Forecast = low.Point.Forecast
  .SD[, .(.N, low.mape = MAPE(low, low.Point.Forecast), 
          low.smape = SMAPE(low, low.Point.Forecast), 
          low.mse = MSE(low, low.Point.Forecast), 
          low.rmse = RMSE(low, low.Point.Forecast)), 
      by=.(Model, Period)]}][order(Model, Period), ]

m.cl <- seasonal_m1[, {
  close = close
  close.Point.Forecast = close.Point.Forecast
  .SD[, .(.N, close.mape = MAPE(close, close.Point.Forecast), 
          close.smape = SMAPE(close, close.Point.Forecast), 
          close.mse = MSE(close, close.Point.Forecast), 
          close.rmse = RMSE(close, close.Point.Forecast)), 
      by=.(Model, Period)]}][order(Model, Period), ]

best_model <- join_all(list(m.op, m.hi, m.lo, m.cl)) %>% tibble
saveRDS(best_model, 'data/fx/USDJPY/best_m_daily.rds')
rm(m.op, m.hi, m.lo, m.cl)
best_model <- readRDS('data/fx/USDJPY/best_m_daily.rds')

tb12 <- best_model %>% 
  dplyr::mutate(
    open.mape = ifelse(
      rank(open.mape) <= 3, 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.smape = ifelse(
      rank(open.smape) <= 3, 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.mse = ifelse(
      rank(open.mse) <= 3, 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.rmse = ifelse(
      rank(open.rmse) <= 3, 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    high.mape = ifelse(
      rank(high.mape) <= 3, 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.smape = ifelse(
      rank(high.smape) <= 3, 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.mse = ifelse(
      rank(high.mse) <= 3, 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.rmse = ifelse(
      rank(high.rmse) <= 3, 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    low.mape = ifelse(
      rank(low.mape) <= 3, 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.smape = ifelse(
      rank(low.smape) <= 3, 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.mse = ifelse(
      rank(low.mse) <= 3, 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.rmse = ifelse(
      rank(low.rmse) <= 3, 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    close.mape = ifelse(
      rank(close.mape) <= 3, 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.smape = ifelse(
      rank(close.smape) <= 3, 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.mse = ifelse(
      rank(close.mse) <= 3, 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.rmse = ifelse(
      rank(close.rmse) <= 3, 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE))) %>% 
  kbl('html', caption = 'Comparison of Models', escape = FALSE) %>% 
  ## https://www.w3schools.com/cssref/css_colors.asp
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = 'CornflowerBlue') %>% 
  column_spec(2, background = 'DarkGrey') %>% 
  column_spec(3, background = 'LightSlateGrey') %>% 
  column_spec(4, background = 'LightGray') %>% 
  column_spec(5, background = 'Gainsboro') %>% 
  column_spec(6, background = 'LightGray') %>%   
  column_spec(7, background = 'Gainsboro') %>% 
  column_spec(8, background = 'LightGray') %>% 
  column_spec(9, background = 'Gainsboro') %>% 
  column_spec(10, background = 'LightGray') %>%   
  column_spec(11, background = 'Gainsboro') %>% 
  column_spec(12, background = 'LightGray') %>% 
  column_spec(13, background = 'Gainsboro') %>% 
  column_spec(14, background = 'LightGray') %>%   
  column_spec(15, background = 'Gainsboro') %>% 
  column_spec(16, background = 'LightGray') %>% 
  column_spec(17, background = 'Gainsboro') %>% 
  column_spec(18, background = 'LightGray') %>%   
  column_spec(19, background = 'Gainsboro') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kable_material(full_width = FALSE) %>% ##`full_width = FALSE` will auto adjust every single columns width to fit the table full width.
  scroll_box(width = '100%', fixed_thead = TRUE)#, height = '400px')

tb12
Comparison of Models
Model Period N open.mape open.smape open.mse open.rmse high.mape high.smape high.mse high.rmse low.mape low.smape low.mse low.rmse close.mape close.smape close.mse close.rmse
tbats dy.qt 1298880 0.0035608 (rank: 10) 0.0035773 (rank: 10) 0.5935084 (rank: 11) 0.770395 (rank: 11) 0.0035672 (rank: 10) 0.0035837 (rank: 10) 0.5946396 (rank: 11) 0.7711288 (rank: 11) 0.0035692 (rank: 10) 0.0035856 (rank: 10) 0.593577 (rank: 11) 0.7704395 (rank: 11) 0.0035606 (rank: 10) 0.0035771 (rank: 10) 0.59344 (rank: 11) 0.7703506 (rank: 11)
tbats dy.wk 1298880 0.002821 (rank: 1) 0.0028228 (rank: 1) 0.2331241 (rank: 1) 0.4828292 (rank: 1) 0.0027999 (rank: 1) 0.0028016 (rank: 1) 0.2305384 (rank: 1) 0.4801442 (rank: 1) 0.0028014 (rank: 1) 0.0028031 (rank: 1) 0.2331357 (rank: 1) 0.4828412 (rank: 1) 0.002839 (rank: 1) 0.002841 (rank: 1) 0.2415673 (rank: 4) 0.4914949 (rank: 4)
tbats dy.wk.mo 1287360 0.0028932 (rank: 5) 0.0028962 (rank: 5) 0.2585134 (rank: 6) 0.5084421 (rank: 6) 0.002889 (rank: 6) 0.0028914 (rank: 6) 0.2531527 (rank: 7) 0.5031428 (rank: 7) 0.0029032 (rank: 5) 0.0029056 (rank: 5) 0.2511519 (rank: 6) 0.5011506 (rank: 6) 0.0028635 (rank: 4) 0.0028661 (rank: 4) 0.2468493 (rank: 5) 0.4968393 (rank: 5)
tbats dy.yr 1298880 0.0075387 (rank: 12) 0.0076525 (rank: 12) 2.992332 (rank: 12) 1.7298358 (rank: 12) 0.0075476 (rank: 12) 0.0076617 (rank: 12) 3.0002451 (rank: 12) 1.7321216 (rank: 12) 0.0075415 (rank: 12) 0.0076552 (rank: 12) 2.989127 (rank: 12) 1.7289092 (rank: 12) 0.0075423 (rank: 12) 0.0076565 (rank: 12) 3.0017416 (rank: 12) 1.7325535 (rank: 12)
ts mo.1440 1298880 0.002871 (rank: 4) 0.0028723 (rank: 4) 0.238598 (rank: 4) 0.4884649 (rank: 4) 0.0028638 (rank: 5) 0.0028652 (rank: 5) 0.2372364 (rank: 4) 0.4870692 (rank: 4) 0.0028605 (rank: 3) 0.0028618 (rank: 3) 0.2349181 (rank: 4) 0.4846835 (rank: 4) 0.0028733 (rank: 5) 0.0028745 (rank: 5) 0.2378324 (rank: 3) 0.4876807 (rank: 3)
ts mo.7200 244800 0.0034764 (rank: 8) 0.0034756 (rank: 8) 0.3134664 (rank: 8) 0.5598807 (rank: 8) 0.0035018 (rank: 8) 0.0035011 (rank: 8) 0.3146787 (rank: 8) 0.5609623 (rank: 8) 0.0034669 (rank: 8) 0.0034659 (rank: 8) 0.3119626 (rank: 8) 0.5585361 (rank: 8) 0.0034906 (rank: 8) 0.0034897 (rank: 8) 0.3142609 (rank: 7) 0.5605898 (rank: 7)
ts qt.1440 1298880 0.0028558 (rank: 2) 0.0028571 (rank: 2) 0.2355912 (rank: 2) 0.4853773 (rank: 2) 0.0028566 (rank: 3) 0.002858 (rank: 3) 0.2357561 (rank: 2) 0.4855472 (rank: 2) 0.0028598 (rank: 2) 0.0028611 (rank: 2) 0.2346795 (rank: 2) 0.4844374 (rank: 2) 0.0028572 (rank: 2) 0.0028585 (rank: 2) 0.234693 (rank: 1) 0.4844512 (rank: 1)
ts qt.7200 223200 0.0034844 (rank: 9) 0.0034841 (rank: 9) 0.3156878 (rank: 9) 0.561861 (rank: 9) 0.0035078 (rank: 9) 0.0035075 (rank: 9) 0.3167276 (rank: 9) 0.5627856 (rank: 9) 0.0034754 (rank: 9) 0.003475 (rank: 9) 0.3144045 (rank: 9) 0.5607179 (rank: 9) 0.0034988 (rank: 9) 0.0034984 (rank: 9) 0.3168899 (rank: 8) 0.5629298 (rank: 8)
ts wk.1440 1298880 0.0029887 (rank: 7) 0.0029899 (rank: 7) 0.2525562 (rank: 5) 0.5025497 (rank: 5) 0.0029757 (rank: 7) 0.0029772 (rank: 7) 0.2483678 (rank: 6) 0.4983651 (rank: 6) 0.0029796 (rank: 7) 0.0029807 (rank: 7) 0.2491352 (rank: 5) 0.4991344 (rank: 5) 0.0029779 (rank: 7) 0.0029791 (rank: 7) 0.2490372 (rank: 6) 0.4990362 (rank: 6)
ts wk.7200 6494400 0.0029027 (rank: 6) 0.002903 (rank: 6) 0.2850686 (rank: 7) 0.5339181 (rank: 7) 0.0028179 (rank: 2) 0.0028195 (rank: 2) 0.2391797 (rank: 5) 0.48906 (rank: 5) 0.00295 (rank: 6) 0.0029496 (rank: 6) 0.3065442 (rank: 7) 0.5536644 (rank: 7) 0.0029287 (rank: 6) 0.0029266 (rank: 6) 0.32009 (rank: 9) 0.565765 (rank: 9)
ts yr.1440 1298880 0.0028579 (rank: 3) 0.0028593 (rank: 3) 0.2357672 (rank: 3) 0.4855587 (rank: 3) 0.0028589 (rank: 4) 0.0028603 (rank: 4) 0.2359108 (rank: 3) 0.4857065 (rank: 3) 0.0028625 (rank: 4) 0.0028637 (rank: 4) 0.2349109 (rank: 3) 0.484676 (rank: 3) 0.0028594 (rank: 3) 0.0028607 (rank: 3) 0.2348683 (rank: 2) 0.4846321 (rank: 2)
ts yr.7200 208800 0.0036239 (rank: 11) 0.0036236 (rank: 11) 0.3342637 (rank: 10) 0.5781554 (rank: 10) 0.0036485 (rank: 11) 0.0036482 (rank: 11) 0.3353777 (rank: 10) 0.5791181 (rank: 10) 0.0036111 (rank: 11) 0.0036106 (rank: 11) 0.3327021 (rank: 10) 0.5768033 (rank: 10) 0.0036356 (rank: 11) 0.0036352 (rank: 11) 0.335306 (rank: 10) 0.5790561 (rank: 10)

Above table summarized the total observations with mape, smape, mse and rmse values (which is not nested summarize not daily settlement for P&L), we can interpret from above table :

  • Weekly or 7200 mins length’s dataset with msts(seasonal.periods = c(1440, 7200)) %>% tbats %>% forecast(h = 1440).
  • Quarterly length’s dataset with tk_ts(frequency = 1440) %>% forecast(h=1440).
  • Annum length’s dataset with tk_ts(frequency = 1440) %>% forecast(h=1440).

5.1.3.2 Sarima

##Below model use open price dataset where contain 7200 mins and forecast 1440 mins.
fit_ts <- readRDS('data/fx/USDJPY/sarima_ts_sample.rds')
#fr_ts <- forecast(fit_ts, h = 1440)
fr_ts <- readRDS('data/fx/USDJPY/sarima_frts_sample.rds')
fr_ts.sample <- readRDS('data/fx/USDJPY/fr_ts.sample.wk.1440.2015-01-12.rds')

##Below model use open price dataset where contain 7200 mins and forecast nested 60mins & 1440 mins.
fit_msts <- readRDS('data/fx/USDJPY/sarima_msts_sample.rds')
fr_msts <- readRDS('data/fx/USDJPY/sarima_frmsts_sample.rds')
fr_msts.sample <- readRDS('data/fx/USDJPY/fr_msts.sample.wk.1440.2015-01-12.rds')

Due to heavily calculation on sarima models, here I only use 1st week from 2015-01-12 00:01:00 to from 2015-01-13 00:00:00` calculate.

cmp1 <- join(fr_ts.sample, fr_msts.sample) %>% 
  as_tibble

lst1 <- list.files('data/fx/USDJPY', pattern = '^mts.*.2015-01-12.rds$')
cmp2 <- llply(lst1, function(x) {
    readRDS(paste0('data/fx/USDJPY/', x)) %>% 
    dplyr::select(contains(c('index', 'open.Point.Forecast'))) %>% 
    .[,1:2]
  })
names(cmp2) <- str_replace_all(lst1, '.[1-9].*', '')
cmp2 %<>% ldply %>% 
  as_tibble %>% 
  spread(.id, open.Point.Forecast)
cmp2 <- data.frame(open = cmp1$open, cmp2) %>% 
  as_tibble %>% 
  .[c(2:1, 3:ncol(.))]

lst2 <- list.files('data/fx/USDJPY', pattern = '^sets.*.2015-01-12.rds$')
cmp3 <- llply(lst2, function(x) {
    readRDS(paste0('data/fx/USDJPY/', x))$forecast %>% 
    dplyr::select(contains(c('index', 'open.Point.Forecast'))) %>% 
    .[1:1440,1:2]
  })
names(cmp3) <- substr(lst2, 1, 12) #manual filter characters
cmp3 %<>% ldply %>% 
  as_tibble %>% 
  spread(.id, open.Point.Forecast)
cmp3 <- data.frame(open = cmp1$open, cmp3) %>% 
  as_tibble %>% 
  .[c(2:1, 3:ncol(.))]

## ------------------------
cmp1 <- data.frame(
  Model = c('sarima_ts', 'sarima_msts'), 
  n = nrow(cmp1), 
  mae = c(MAE(cmp1$open, cmp1$sarima_ts, na.rm = TRUE), 
           MAE(cmp1$open, cmp1$sarima_msts, na.rm = TRUE)), 
  mape = c(MAPE(cmp1$open, cmp1$sarima_ts, na.rm = TRUE), 
           MAPE(cmp1$open, cmp1$sarima_msts, na.rm = TRUE)), 
  smape = c(SMAPE(cmp1$open, cmp1$sarima_ts, na.rm = TRUE), 
            SMAPE(cmp1$open, cmp1$sarima_msts, na.rm = TRUE)), 
  mse = c(MSE(cmp1$open, cmp1$sarima_ts, na.rm = TRUE), 
          MSE(cmp1$open, cmp1$sarima_msts, na.rm = TRUE)), 
  rmse = c(RMSE(cmp1$open, cmp1$sarima_ts, na.rm = TRUE), 
           RMSE(cmp1$open, cmp1$sarima_msts, na.rm = TRUE))) %>% 
  as_tibble

cmp2 <- data.frame(
  Model = names(cmp2[3:ncol(cmp2)]), 
  n = nrow(cmp2), 
  mae = c(MAE(cmp2$open, cmp2$mts.dy.qt, na.rm = TRUE), 
          MAE(cmp2$open, cmp2$mts.dy.wk, na.rm = TRUE), 
          MAE(cmp2$open, cmp2$mts.dy.wk.mo, na.rm = TRUE), 
          MAE(cmp2$open, cmp2$mts.dy.yr, na.rm = TRUE)), 
  mape = c(MAPE(cmp2$open, cmp2$mts.dy.qt, na.rm = TRUE), 
           MAPE(cmp2$open, cmp2$mts.dy.wk, na.rm = TRUE), 
           MAPE(cmp2$open, cmp2$mts.dy.wk.mo, na.rm = TRUE), 
           MAPE(cmp2$open, cmp2$mts.dy.yr, na.rm = TRUE)), 
  smape = c(SMAPE(cmp2$open, cmp2$mts.dy.qt, na.rm = TRUE), 
            SMAPE(cmp2$open, cmp2$mts.dy.wk, na.rm = TRUE), 
            SMAPE(cmp2$open, cmp2$mts.dy.wk.mo, na.rm = TRUE), 
            SMAPE(cmp2$open, cmp2$mts.dy.yr, na.rm = TRUE)), 
  mse = c(MSE(cmp2$open, cmp2$mts.dy.qt, na.rm = TRUE), 
          MSE(cmp2$open, cmp2$mts.dy.wk, na.rm = TRUE), 
          MSE(cmp2$open, cmp2$mts.dy.wk.mo, na.rm = TRUE), 
          MSE(cmp2$open, cmp2$mts.dy.yr, na.rm = TRUE)), 
  rmse = c(RMSE(cmp2$open, cmp2$mts.dy.qt, na.rm = TRUE), 
           RMSE(cmp2$open, cmp2$mts.dy.wk, na.rm = TRUE), 
           RMSE(cmp2$open, cmp2$mts.dy.wk.mo, na.rm = TRUE), 
           RMSE(cmp2$open, cmp2$mts.dy.yr, na.rm = TRUE))) %>% 
  as_tibble

cmp3 <- data.frame(
  Model = names(cmp3)[3:ncol(cmp3)], 
  n = nrow(cmp3), 
  mae = c(MAE(cmp3$open, cmp3$sets.mo.1440, na.rm = TRUE), 
          MAE(cmp3$open, cmp3$sets.mo.7200, na.rm = TRUE), 
          MAE(cmp3$open, cmp3$sets.qt.1440, na.rm = TRUE), 
          MAE(cmp3$open, cmp3$sets.qt.7200, na.rm = TRUE), 
          MAE(cmp3$open, cmp3$sets.wk.1440, na.rm = TRUE), 
          MAE(cmp3$open, cmp3$sets.wk.7200, na.rm = TRUE), 
          MAE(cmp3$open, cmp3$sets.yr.1440, na.rm = TRUE), 
          MAE(cmp3$open, cmp3$sets.yr.7200, na.rm = TRUE)), 
  mape = c(MAPE(cmp3$open, cmp3$sets.mo.1440, na.rm = TRUE), 
           MAPE(cmp3$open, cmp3$sets.mo.7200, na.rm = TRUE), 
           MAPE(cmp3$open, cmp3$sets.qt.1440, na.rm = TRUE), 
           MAPE(cmp3$open, cmp3$sets.qt.7200, na.rm = TRUE), 
           MAPE(cmp3$open, cmp3$sets.wk.1440, na.rm = TRUE), 
           MAPE(cmp3$open, cmp3$sets.wk.7200, na.rm = TRUE), 
           MAPE(cmp3$open, cmp3$sets.yr.1440, na.rm = TRUE), 
           MAPE(cmp3$open, cmp3$sets.yr.7200, na.rm = TRUE)), 
  smape = c(SMAPE(cmp3$open, cmp3$sets.mo.1440, na.rm = TRUE), 
            SMAPE(cmp3$open, cmp3$sets.mo.7200, na.rm = TRUE), 
            SMAPE(cmp3$open, cmp3$sets.qt.1440, na.rm = TRUE), 
            SMAPE(cmp3$open, cmp3$sets.qt.7200, na.rm = TRUE), 
            SMAPE(cmp3$open, cmp3$sets.wk.1440, na.rm = TRUE), 
            SMAPE(cmp3$open, cmp3$sets.wk.7200, na.rm = TRUE), 
            SMAPE(cmp3$open, cmp3$sets.yr.1440, na.rm = TRUE), 
            SMAPE(cmp3$open, cmp3$sets.yr.7200, na.rm = TRUE)), 
  mse = c(MSE(cmp3$open, cmp3$sets.mo.1440, na.rm = TRUE), 
          MSE(cmp3$open, cmp3$sets.mo.7200, na.rm = TRUE), 
          MSE(cmp3$open, cmp3$sets.qt.1440, na.rm = TRUE), 
          MSE(cmp3$open, cmp3$sets.qt.7200, na.rm = TRUE), 
          MSE(cmp3$open, cmp3$sets.wk.1440, na.rm = TRUE), 
          MSE(cmp3$open, cmp3$sets.wk.7200, na.rm = TRUE), 
          MSE(cmp3$open, cmp3$sets.yr.1440, na.rm = TRUE), 
          MSE(cmp3$open, cmp3$sets.yr.7200, na.rm = TRUE)), 
  rmse = c(RMSE(cmp3$open, cmp3$sets.mo.1440, na.rm = TRUE), 
           RMSE(cmp3$open, cmp3$sets.mo.7200, na.rm = TRUE), 
           RMSE(cmp3$open, cmp3$sets.qt.1440, na.rm = TRUE), 
           RMSE(cmp3$open, cmp3$sets.qt.7200, na.rm = TRUE), 
           RMSE(cmp3$open, cmp3$sets.wk.1440, na.rm = TRUE), 
           RMSE(cmp3$open, cmp3$sets.wk.7200, na.rm = TRUE), 
           RMSE(cmp3$open, cmp3$sets.yr.1440, na.rm = TRUE), 
           RMSE(cmp3$open, cmp3$sets.yr.7200, na.rm = TRUE))) %>% 
  as_tibble

cmp <- bind_rows(cmp1, cmp2, cmp3) %>% 
  as_tibble
tb13 <- cmp %>% 
  dplyr::mutate(
    mae = ifelse(
      rank(mae) <= 3, 
      cell_spec(
        paste0(round(mae, 7), ' (rank: ', sprintf('%1.f', rank(mae)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(mae, 7), ' (rank: ', sprintf('%1.f', rank(mae)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    mape = ifelse(
      rank(mape) <= 3, 
      cell_spec(
        paste0(round(mape, 7), ' (rank: ', sprintf('%1.f', rank(mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(mape, 7), ' (rank: ', sprintf('%1.f', rank(mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    smape = ifelse(
      rank(smape) <= 3, 
      cell_spec(
        paste0(round(smape, 7), ' (rank: ', sprintf('%1.f', rank(smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(smape, 7), ' (rank: ', sprintf('%1.f', rank(smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    mse = ifelse(
      rank(mse) <= 3, 
      cell_spec(
        paste0(round(mse, 7), ' (rank: ', sprintf('%1.f', rank(mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(mse, 7), ' (rank: ', sprintf('%1.f', rank(mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    rmse = ifelse(
      rank(rmse) <= 3, 
      cell_spec(
        paste0(round(rmse, 7), ' (rank: ', sprintf('%1.f', rank(rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(rmse, 7), ' (rank: ', sprintf('%1.f', rank(rmse)), ')'), 
        'html', color = 'grey', italic = TRUE))) %>% 
  kbl('html', caption = 'Comparison of Sarima_ts & Sarima_msts Models etc', escape = FALSE) %>% 
  ## https://www.w3schools.com/cssref/css_colors.asp
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = 'CornflowerBlue') %>% 
  column_spec(2, background = 'DarkGrey') %>% 
  #column_spec(3, background = 'LightSlateGrey') %>% 
  column_spec(3, background = 'LightGray') %>% 
  column_spec(4, background = 'Gainsboro') %>% 
  column_spec(5, background = 'LightGray') %>% 
  column_spec(6, background = 'Gainsboro') %>% 
  column_spec(7, background = 'LightGray') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kable_material(full_width = FALSE) %>% ##`full_width = FALSE` will auto adjust every single columns width to fit the table full width.
  scroll_box(width = '100%', fixed_thead = TRUE)#, height = '400px')

tb13
Comparison of Sarima_ts & Sarima_msts Models etc
Model n mae mape smape mse rmse
sarima_ts 1440 118.5053007 (rank: 8) 100.3580762 (rank: 12) 0.0045896 (rank: 12) 14043.6207299 (rank: 8) 118.5057835 (rank: 8)
sarima_msts 1440 118.5053007 (rank: 8) 100.3580762 (rank: 12) 0.0045896 (rank: 12) 14043.6207299 (rank: 8) 118.5057835 (rank: 8)
mts.dy.qt 1440 118.5053007 (rank: 8) 99.9715789 (rank: 6) 0.0024726 (rank: 6) 14043.6207299 (rank: 8) 118.5057835 (rank: 8)
mts.dy.wk 1440 118.5053007 (rank: 8) 99.9715789 (rank: 6) 0.0024726 (rank: 6) 14043.6207299 (rank: 8) 118.5057835 (rank: 8)
mts.dy.wk.mo 1440 118.5053007 (rank: 8) NaN (rank: 14) NaN (rank: 14) 14043.6207299 (rank: 8) 118.5057835 (rank: 8)
mts.dy.yr 1440 118.5053007 (rank: 8) 99.9715789 (rank: 6) 0.0024726 (rank: 6) 14043.6207299 (rank: 8) 118.5057835 (rank: 8)
sets.mo.1440 1440 118.5053007 (rank: 8) 99.8560737 (rank: 2) 0.0026221 (rank: 10) 14043.6207299 (rank: 8) 118.5057835 (rank: 8)
sets.mo.7200 1440 118.5053007 (rank: 8) 99.9715791 (rank: 10) 0.0024726 (rank: 2) 14043.6207299 (rank: 8) 118.5057835 (rank: 8)
sets.qt.1440 1440 118.5053007 (rank: 8) 99.8560737 (rank: 2) 0.0026221 (rank: 10) 14043.6207299 (rank: 8) 118.5057835 (rank: 8)
sets.qt.7200 1440 118.5053007 (rank: 8) 99.9715791 (rank: 10) 0.0024726 (rank: 2) 14043.6207299 (rank: 8) 118.5057835 (rank: 8)
sets.wk.1440 1440 118.5053007 (rank: 8) 99.8560737 (rank: 2) 0.0026221 (rank: 10) 14043.6207299 (rank: 8) 118.5057835 (rank: 8)
sets.wk.7200 1440 118.5053007 (rank: 8) 99.9715791 (rank: 10) 0.0024726 (rank: 2) 14043.6207299 (rank: 8) 118.5057835 (rank: 8)
sets.yr.1440 1440 118.5053007 (rank: 8) 99.8560737 (rank: 2) 0.0026221 (rank: 10) 14043.6207299 (rank: 8) 118.5057835 (rank: 8)
sets.yr.7200 1440 118.5053007 (rank: 8) 99.9715791 (rank: 10) 0.0024726 (rank: 2) 14043.6207299 (rank: 8) 118.5057835 (rank: 8)

Application of auto.arima() on both ts() and msts() seasonal datasets compare the ts() and msts() sarima models.

5.2 1 day per unit

5.2.1 Interday ETS Model

Below I recall the ETS models for interday price prediction in previous paper for comparison.

ets.fls <- list.files('data', pattern = '^[A-Z]{3}\\.[A-Za-z]{4}')
ETS.MSE <- llply(ets.fls, function(x) {
    nm <- x %>% 
      str_replace_all('.rds', '') %>% 
      str_split_fixed('\\.', 2) %>% 
      as_data_frame
    names(nm) <- c('Model', 'Type')
    
    y <- paste0('data/', x) %>% 
      read_rds
    
    data.frame(nm, y) %>% as_tibble
  }) %>% bind_rows %>% 
  dplyr::select(Date, Model,Type, Point.Forecast, forClose, 
                USDJPY.Open, USDJPY.High, USDJPY.Low, USDJPY.Close)

ETS.MSE %<>% dplyr::mutate(
    MSE.1 = case_when(
        substr(Type, 1, 2) == 'Op' ~ mean((Point.Forecast - USDJPY.Open)^2, 
                                          na.rm = TRUE), 
        substr(Type, 1, 2) == 'Hi' ~ mean((Point.Forecast - USDJPY.High)^2, 
                                          na.rm = TRUE), 
        substr(Type, 1, 2) == 'Mn' ~ mean((Point.Forecast - (USDJPY.High + USDJPY.Low)/2)^2, na.rm = TRUE), 
        substr(Type, 1, 2) == 'Lo' ~ mean((Point.Forecast - USDJPY.Low)^2, 
                                          na.rm = TRUE), 
        substr(Type, 1, 2) == 'Cl' ~ mean((Point.Forecast - USDJPY.Close)^2, 
                                          na.rm = TRUE)), 
    MSE.2 = case_when(
        substr(Type, 3, 4) == 'Op' ~ mean((Point.Forecast - USDJPY.Open)^2, 
                                          na.rm = TRUE), 
        substr(Type, 3, 4) == 'Hi' ~ mean((Point.Forecast - USDJPY.High)^2, 
                                          na.rm = TRUE), 
        substr(Type, 3, 4) == 'Mn' ~ mean((Point.Forecast - (USDJPY.High + USDJPY.Low)/2)^2, na.rm = TRUE), 
        substr(Type, 3, 4) == 'Lo' ~ mean((Point.Forecast - USDJPY.Low)^2, 
                                          na.rm = TRUE), 
        substr(Type, 3, 4) == 'Cl' ~ mean((Point.Forecast - USDJPY.Close)^2, 
                                          na.rm = TRUE)))

ETS.MSE %<>% 
    ddply(.(Model, Type), summarise, 
          MSE.1 = mean(MSE.1, na.rm=TRUE), 
          MSE.2 = mean(MSE.2, na.rm=TRUE))

tb14 <- ETS.MSE %>% dplyr::mutate(
    MSE.1 = ifelse(
      rank(MSE.1) <= 3, 
      cell_spec(
        paste0(round(MSE.1, 7), ' (rank: ', sprintf('%1.f', rank(MSE.1)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(MSE.1, 7), ' (rank: ', sprintf('%1.f', rank(MSE.1)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    MSE.2 = ifelse(
      rank(MSE.2) <= 3, 
      cell_spec(
        paste0(round(MSE.2, 7), ' (rank: ', sprintf('%1.f', rank(MSE.2)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(MSE.2, 7), ' (rank: ', sprintf('%1.f', rank(MSE.2)), ')'), 
        'html', color = 'grey', italic = TRUE))) %>% 
  kbl('html', caption = 'MSE of daily Opened and Closed Transaction Orders', escape = FALSE) %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kableExtra::group_rows('AAN', 1, 25, label_row_css = 'background-color: #e68a00; color: #fff;') %>%
  kableExtra::group_rows('AAZ', 26, 50, label_row_css = 'background-color: #ff0000; color: #fff;') %>%
  kableExtra::group_rows('ANN', 51, 75, label_row_css = 'background-color: #bf80ff; color: #fff;') %>%
  kableExtra::group_rows('ANZ', 76, 100, label_row_css = 'background-color: #66ff33; color: #fff;') %>%
  kableExtra::group_rows('AZN', 101, 125, label_row_css = 'background-color: #6666ff; color: #fff;') %>%
  kableExtra::group_rows('AZZ', 126, 150, label_row_css = 'background-color: #66e0ff; color: #fff;') %>%
  kableExtra::group_rows('MAN', 151, 175, label_row_css = 'background-color:#0066ff; color: #fff;') %>%
  kableExtra::group_rows('MAZ', 176, 200, label_row_css = 'background-color: #ff9900; color: #fff;') %>%
  kableExtra::group_rows('MMN', 201, 225, label_row_css = 'background-color: #33ff33; color: #fff;') %>%
  kableExtra::group_rows('MMZ', 226, 250, label_row_css = 'background-color: #339966; color: #fff;') %>%
  kableExtra::group_rows('MNN', 251, 275, label_row_css = 'background-color: #5900b3; color: #fff;') %>%
  kableExtra::group_rows('MNZ', 276, 300, label_row_css = 'background-color: #269900; color: #fff;') %>%
  kableExtra::group_rows('MZN', 301, 325, label_row_css = 'background-color: #808000; color: #fff;') %>%
  kableExtra::group_rows('MZZ', 326, 350, label_row_css = 'background-color: #3399ff; color: #fff;') %>%
  kableExtra::group_rows('ZAN', 351, 375, label_row_css = 'background-color: #003380; color: #fff;') %>%
  kableExtra::group_rows('ZAZ', 376, 400, label_row_css = 'background-color: #804d00; color: #fff;') %>%
  kableExtra::group_rows('ZMN', 401, 425, label_row_css = 'background-color: #d279d2; color: #fff;') %>%
  kableExtra::group_rows('ZMZ', 426, 450, label_row_css = 'background-color: #666; color: #fff;') %>%
  kableExtra::group_rows('ZNN', 451, 475, label_row_css = 'background-color: #ff3377; color: #fff;') %>%
  kableExtra::group_rows('ZNZ', 476, 500, label_row_css = 'background-color: #993399; color: #fff;') %>%
  kableExtra::group_rows('ZZN', 501, 525, label_row_css = 'background-color: #00a3cc; color: #fff;') %>%
  kableExtra::group_rows('ZZZ', 526, 550, label_row_css = 'background-color: #e60000; color: #fff;') %>%
  scroll_box(width = '100%', fixed_thead = TRUE, height = '400px')

tb14
MSE of daily Opened and Closed Transaction Orders
Model Type MSE.1 MSE.2
AAN
AAN ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
AAN ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
AAN ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
AAN ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
AAN ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
AAN HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
AAN HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
AAN HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
AAN HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
AAN HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
AAN LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
AAN LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
AAN LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
AAN LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
AAN LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
AAN MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
AAN MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
AAN MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
AAN MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
AAN MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
AAN OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
AAN OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
AAN OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
AAN OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
AAN OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
AAZ
AAZ ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
AAZ ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
AAZ ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
AAZ ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
AAZ ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
AAZ HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
AAZ HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
AAZ HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
AAZ HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
AAZ HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
AAZ LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
AAZ LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
AAZ LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
AAZ LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
AAZ LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
AAZ MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
AAZ MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
AAZ MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
AAZ MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
AAZ MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
AAZ OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
AAZ OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
AAZ OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
AAZ OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
AAZ OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
ANN
ANN ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
ANN ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
ANN ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
ANN ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
ANN ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
ANN HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
ANN HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
ANN HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
ANN HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
ANN HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
ANN LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
ANN LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
ANN LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
ANN LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
ANN LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
ANN MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
ANN MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
ANN MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
ANN MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
ANN MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
ANN OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
ANN OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
ANN OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
ANN OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
ANN OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
ANZ
ANZ ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
ANZ ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
ANZ ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
ANZ ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
ANZ ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
ANZ HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
ANZ HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
ANZ HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
ANZ HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
ANZ HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
ANZ LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
ANZ LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
ANZ LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
ANZ LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
ANZ LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
ANZ MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
ANZ MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
ANZ MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
ANZ MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
ANZ MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
ANZ OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
ANZ OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
ANZ OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
ANZ OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
ANZ OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
AZN
AZN ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
AZN ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
AZN ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
AZN ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
AZN ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
AZN HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
AZN HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
AZN HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
AZN HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
AZN HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
AZN LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
AZN LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
AZN LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
AZN LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
AZN LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
AZN MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
AZN MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
AZN MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
AZN MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
AZN MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
AZN OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
AZN OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
AZN OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
AZN OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
AZN OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
AZZ
AZZ ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
AZZ ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
AZZ ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
AZZ ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
AZZ ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
AZZ HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
AZZ HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
AZZ HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
AZZ HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
AZZ HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
AZZ LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
AZZ LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
AZZ LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
AZZ LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
AZZ LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
AZZ MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
AZZ MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
AZZ MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
AZZ MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
AZZ MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
AZZ OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
AZZ OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
AZZ OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
AZZ OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
AZZ OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
MAN
MAN ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
MAN ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
MAN ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
MAN ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
MAN ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
MAN HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
MAN HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
MAN HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
MAN HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
MAN HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
MAN LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
MAN LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
MAN LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
MAN LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
MAN LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
MAN MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
MAN MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
MAN MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
MAN MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
MAN MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
MAN OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
MAN OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
MAN OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
MAN OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
MAN OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
MAZ
MAZ ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
MAZ ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
MAZ ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
MAZ ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
MAZ ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
MAZ HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
MAZ HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
MAZ HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
MAZ HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
MAZ HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
MAZ LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
MAZ LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
MAZ LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
MAZ LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
MAZ LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
MAZ MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
MAZ MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
MAZ MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
MAZ MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
MAZ MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
MAZ OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
MAZ OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
MAZ OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
MAZ OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
MAZ OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
MMN
MMN ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
MMN ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
MMN ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
MMN ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
MMN ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
MMN HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
MMN HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
MMN HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
MMN HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
MMN HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
MMN LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
MMN LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
MMN LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
MMN LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
MMN LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
MMN MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
MMN MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
MMN MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
MMN MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
MMN MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
MMN OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
MMN OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
MMN OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
MMN OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
MMN OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
MMZ
MMZ ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
MMZ ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
MMZ ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
MMZ ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
MMZ ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
MMZ HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
MMZ HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
MMZ HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
MMZ HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
MMZ HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
MMZ LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
MMZ LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
MMZ LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
MMZ LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
MMZ LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
MMZ MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
MMZ MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
MMZ MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
MMZ MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
MMZ MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
MMZ OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
MMZ OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
MMZ OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
MMZ OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
MMZ OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
MNN
MNN ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
MNN ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
MNN ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
MNN ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
MNN ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
MNN HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
MNN HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
MNN HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
MNN HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
MNN HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
MNN LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
MNN LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
MNN LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
MNN LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
MNN LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
MNN MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
MNN MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
MNN MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
MNN MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
MNN MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
MNN OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
MNN OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
MNN OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
MNN OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
MNN OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
MNZ
MNZ ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
MNZ ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
MNZ ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
MNZ ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
MNZ ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
MNZ HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
MNZ HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
MNZ HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
MNZ HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
MNZ HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
MNZ LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
MNZ LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
MNZ LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
MNZ LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
MNZ LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
MNZ MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
MNZ MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
MNZ MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
MNZ MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
MNZ MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
MNZ OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
MNZ OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
MNZ OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
MNZ OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
MNZ OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
MZN
MZN ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
MZN ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
MZN ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
MZN ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
MZN ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
MZN HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
MZN HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
MZN HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
MZN HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
MZN HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
MZN LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
MZN LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
MZN LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
MZN LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
MZN LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
MZN MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
MZN MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
MZN MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
MZN MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
MZN MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
MZN OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
MZN OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
MZN OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
MZN OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
MZN OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
MZZ
MZZ ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
MZZ ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
MZZ ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
MZZ ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
MZZ ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
MZZ HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
MZZ HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
MZZ HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
MZZ HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
MZZ HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
MZZ LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
MZZ LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
MZZ LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
MZZ LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
MZZ LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
MZZ MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
MZZ MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
MZZ MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
MZZ MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
MZZ MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
MZZ OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
MZZ OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
MZZ OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
MZZ OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
MZZ OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
ZAN
ZAN ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
ZAN ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
ZAN ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
ZAN ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
ZAN ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
ZAN HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
ZAN HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
ZAN HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
ZAN HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
ZAN HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
ZAN LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
ZAN LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
ZAN LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
ZAN LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
ZAN LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
ZAN MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
ZAN MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
ZAN MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
ZAN MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
ZAN MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
ZAN OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
ZAN OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
ZAN OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
ZAN OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
ZAN OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
ZAZ
ZAZ ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
ZAZ ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
ZAZ ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
ZAZ ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
ZAZ ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
ZAZ HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
ZAZ HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
ZAZ HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
ZAZ HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
ZAZ HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
ZAZ LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
ZAZ LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
ZAZ LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
ZAZ LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
ZAZ LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
ZAZ MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
ZAZ MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
ZAZ MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
ZAZ MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
ZAZ MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
ZAZ OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
ZAZ OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
ZAZ OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
ZAZ OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
ZAZ OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
ZMN
ZMN ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
ZMN ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
ZMN ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
ZMN ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
ZMN ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
ZMN HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
ZMN HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
ZMN HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
ZMN HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
ZMN HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
ZMN LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
ZMN LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
ZMN LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
ZMN LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
ZMN LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
ZMN MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
ZMN MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
ZMN MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
ZMN MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
ZMN MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
ZMN OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
ZMN OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
ZMN OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
ZMN OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
ZMN OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
ZMZ
ZMZ ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
ZMZ ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
ZMZ ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
ZMZ ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
ZMZ ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
ZMZ HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
ZMZ HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
ZMZ HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
ZMZ HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
ZMZ HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
ZMZ LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
ZMZ LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
ZMZ LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
ZMZ LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
ZMZ LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
ZMZ MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
ZMZ MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
ZMZ MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
ZMZ MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
ZMZ MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
ZMZ OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
ZMZ OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
ZMZ OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
ZMZ OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
ZMZ OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
ZNN
ZNN ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
ZNN ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
ZNN ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
ZNN ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
ZNN ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
ZNN HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
ZNN HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
ZNN HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
ZNN HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
ZNN HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
ZNN LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
ZNN LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
ZNN LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
ZNN LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
ZNN LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
ZNN MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
ZNN MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
ZNN MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
ZNN MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
ZNN MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
ZNN OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
ZNN OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
ZNN OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
ZNN OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
ZNN OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
ZNZ
ZNZ ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
ZNZ ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
ZNZ ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
ZNZ ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
ZNZ ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
ZNZ HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
ZNZ HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
ZNZ HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
ZNZ HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
ZNZ HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
ZNZ LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
ZNZ LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
ZNZ LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
ZNZ LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
ZNZ LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
ZNZ MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
ZNZ MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
ZNZ MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
ZNZ MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
ZNZ MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
ZNZ OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
ZNZ OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
ZNZ OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
ZNZ OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
ZNZ OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
ZZN
ZZN ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
ZZN ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
ZZN ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
ZZN ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
ZZN ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
ZZN HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
ZZN HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
ZZN HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
ZZN HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
ZZN HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
ZZN LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
ZZN LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
ZZN LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
ZZN LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
ZZN LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
ZZN MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
ZZN MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
ZZN MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
ZZN MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
ZZN MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
ZZN OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
ZZN OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
ZZN OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
ZZN OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
ZZN OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)
ZZZ
ZZZ ClCl 0.467076 (rank: 166) 0.467076 (rank: 166)
ZZZ ClHi 0.467076 (rank: 166) 0.8097381 (rank: 386)
ZZZ ClLo 0.467076 (rank: 166) 1.0410108 (rank: 496)
ZZZ ClMn 0.467076 (rank: 166) 0.6447018 (rank: 276)
ZZZ ClOp 0.467076 (rank: 166) 0.4635132 (rank: 56)
ZZZ HiCl 0.8097381 (rank: 386) 0.467076 (rank: 166)
ZZZ HiHi 0.8097381 (rank: 386) 0.8097381 (rank: 386)
ZZZ HiLo 0.8097381 (rank: 386) 1.0410108 (rank: 496)
ZZZ HiMn 0.8097381 (rank: 386) 0.6447018 (rank: 276)
ZZZ HiOp 0.8097381 (rank: 386) 0.4635132 (rank: 56)
ZZZ LoCl 1.0410108 (rank: 496) 0.467076 (rank: 166)
ZZZ LoHi 1.0410108 (rank: 496) 0.8097381 (rank: 386)
ZZZ LoLo 1.0410108 (rank: 496) 1.0410108 (rank: 496)
ZZZ LoMn 1.0410108 (rank: 496) 0.6447018 (rank: 276)
ZZZ LoOp 1.0410108 (rank: 496) 0.4635132 (rank: 56)
ZZZ MnCl 0.6447018 (rank: 276) 0.467076 (rank: 166)
ZZZ MnHi 0.6447018 (rank: 276) 0.8097381 (rank: 386)
ZZZ MnLo 0.6447018 (rank: 276) 1.0410108 (rank: 496)
ZZZ MnMn 0.6447018 (rank: 276) 0.6447018 (rank: 276)
ZZZ MnOp 0.6447018 (rank: 276) 0.4635132 (rank: 56)
ZZZ OpCl 0.4635132 (rank: 56) 0.467076 (rank: 166)
ZZZ OpHi 0.4635132 (rank: 56) 0.8097381 (rank: 386)
ZZZ OpLo 0.4635132 (rank: 56) 1.0410108 (rank: 496)
ZZZ OpMn 0.4635132 (rank: 56) 0.6447018 (rank: 276)
ZZZ OpOp 0.4635132 (rank: 56) 0.4635132 (rank: 56)

Source : Binary.com Interview Q1 (Extention)

From above MSE comparison with intraday-dataset, we know that the intraday data will be more accurate than just daily dataset.

5.2.2 Interday auto.arima Model

ar.fls <- list.files('data', pattern = '^fundAutoArima')
ARIMA.MSE <- llply(ar.fls, function(x) {
    nm <- x %>% 
      str_replace_all('.rds', '') %>% 
      substring(nchar(.) - 3)
    
    y <- paste0('data/', x) %>% 
      read_rds
    
    data.frame(Model = 'auto.arima', Type = nm, y) %>% as_tibble
  }) %>% bind_rows %>% 
  dplyr::mutate(index = Date) %>% 
  dplyr::select(index, Model, Type, Point.Forecast, forClose, 
                USDJPY.Open, USDJPY.High, USDJPY.Low, USDJPY.Close, 
                -Date)

ARIMA.MSE %<>% dplyr::mutate(
  MSE.1 = case_when(
    substr(Type, 1, 2) == 'OP' ~ mean((Point.Forecast - USDJPY.Open)^2), 
    substr(Type, 1, 2) == 'HI' ~ mean((Point.Forecast - USDJPY.High)^2), 
    substr(Type, 1, 2) == 'MN' ~ mean((Point.Forecast - (USDJPY.High + USDJPY.Low)/2)^2), 
    substr(Type, 1, 2) == 'LO' ~ mean((Point.Forecast - USDJPY.Low)^2), 
    substr(Type, 1, 2) == 'CL' ~ mean((Point.Forecast - USDJPY.Close)^2)), 
  MSE.2 = case_when(
    substr(Type, 3, 4) == 'OP' ~ mean((Point.Forecast - USDJPY.Open)^2), 
    substr(Type, 3, 4) == 'HI' ~ mean((Point.Forecast - USDJPY.High)^2), 
    substr(Type, 3, 4) == 'MN' ~ mean((Point.Forecast - (USDJPY.High + USDJPY.Low)/2)^2), 
    substr(Type, 3, 4) == 'LO' ~ mean((Point.Forecast - USDJPY.Low)^2), 
    substr(Type, 3, 4) == 'CL' ~ mean((Point.Forecast - USDJPY.Close)^2)))

tb15 <- ARIMA.MSE %>% 
    ddply(.(Model), summarise, 
          MSE.1 = mean(MSE.1, na.rm=TRUE), 
          MSE.2 = mean(MSE.2, na.rm=TRUE)) %>% 
  arrange(MSE.1, MSE.2) %>% 
  kable(caption = 'MSE of daily Opened and Closed Transaction Orders') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive'))

tb15
MSE of daily Opened and Closed Transaction Orders
Model MSE.1 MSE.2
auto.arima 0.6962568 0.7515629

By refer to section 7.1.3 Unexpected Error, here I omitted the data from year 2018-01-01 to 2018-07-09 but the outcome is same. Here I forced to omit the mentioned dataset.

5.3 Filtered Dataset From 2015-01-05 to 2017-12-31

5.3.1 Unfilter 7200 mins Dataset

5.3.1.1 Overview

if(!exists('seasonal_m1')) {
  seasonal_m1 <- read_rds('data/fx/USDJPY/seasonal_m1.rds')}

## https://dtplyr.tidyverse.org for future use, otherwise need to recode and rerun.
#ftl1 <- seasonal_m1 %>% lazy_dt()
#ftl1 %<>% filter(index <= as_date('2017-12-31'))
#ftl1 %<>% as.data.table()
ftl1 <- seasonal_m1[index <= as_date('2017-12-31')]
#setkey(ftl1)
#setkeyv(ftl1, c('index', 'Model', 'Period'))
yr_2015_2017 <- seasonal_m1[index <= as_date('2017-12-31')]
saveRDS(yr_2015_2017, 'data/fx/USDJPY/yr_2015_2017.rds')
#fwrite(yr_2015_2017, 'data/fx/USDJPY/yr_2015_2017.csv')
#yr_2015_2017 <- read_rds('data/fx/USDJPY/yr_2015_2017.rds')
#ftl1 <- fread('data/fx/USDJPY/yr_2015_2017.csv')
ftl1 <- read_rds('data/fx/USDJPY/yr_2015_2017.rds')

m.op <- ftl1[, {
    open = open
    open.Point.Forecast = open.Point.Forecast
    .SD[, .(.N, 
            open.mae = MAE(open, open.Point.Forecast), 
            open.mape = MAPE(open, open.Point.Forecast), 
            open.smape = SMAPE(open, open.Point.Forecast), 
            open.mse = MSE(open, open.Point.Forecast), 
            open.rmse = RMSE(open, open.Point.Forecast)), 
        by=.(Model, Period)]}][order(Model, Period), ]

m.hi <- ftl1[, {
    high = high
    high.Point.Forecast = high.Point.Forecast
    .SD[, .(.N, 
            high.mae = MAE(high, high.Point.Forecast), 
            high.mape = MAPE(high, high.Point.Forecast), 
            high.smape = SMAPE(high, high.Point.Forecast), 
            high.mse = MSE(high, high.Point.Forecast), 
            high.rmse = RMSE(high, high.Point.Forecast)), 
        by=.(Model, Period)]}][order(Model, Period), ]

m.lo <- ftl1[, {
    low = low
    low.Point.Forecast = low.Point.Forecast
    .SD[, .(.N, 
            low.mae = MAE(low, low.Point.Forecast), 
            low.mape = MAPE(low, low.Point.Forecast), 
            low.smape = SMAPE(low, low.Point.Forecast), 
            low.mse = MSE(low, low.Point.Forecast), 
            low.rmse = RMSE(low, low.Point.Forecast)), 
        by=.(Model, Period)]}][order(Model, Period), ]

m.cl <- ftl1[, {
    close = close
    close.Point.Forecast = close.Point.Forecast
    .SD[, .(.N, 
            close.mae = MAE(close, close.Point.Forecast), 
            close.mape = MAPE(close, close.Point.Forecast), 
            close.smape = SMAPE(close, close.Point.Forecast), 
            close.mse = MSE(close, close.Point.Forecast), 
            close.rmse = RMSE(close, close.Point.Forecast)), 
        by=.(Model, Period)]}][order(Model, Period), ]

ftl_dat1a <- join_all(list(m.op, m.hi, m.lo, m.cl)) %>% 
  as_tibble

The models mo.7200, qt.7200, yr.7200, wk.7200 predict 7200 mins data in advanced per day. But models mo.1440, qt.1440, wk.1440, yr.1440 only predict 1440 mins data in advanced per day. Therefore there will be different data size and duplicate forecasted price.

5.3.1.2 Overall Dataset

tb16 <- ftl_dat1a %>% 
  dplyr::mutate(
    open.mae = ifelse(
      rank(open.mape) <= 3, 
      cell_spec(
        paste0(round(open.mae, 7), ' (rank: ', sprintf('%1.f', rank(open.mae)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mae, 7), ' (rank: ', sprintf('%1.f', rank(open.mae)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.mape = ifelse(
      rank(open.mape) <= 3, 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.smape = ifelse(
      rank(open.smape) <= 3, 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.mse = ifelse(
      rank(open.mse) <= 3, 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.rmse = ifelse(
      rank(open.rmse) <= 3, 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    high.mape = ifelse(
      rank(high.mape) <= 3, 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.smape = ifelse(
      rank(high.smape) <= 3, 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.mse = ifelse(
      rank(high.mse) <= 3, 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.rmse = ifelse(
      rank(high.rmse) <= 3, 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    low.mape = ifelse(
      rank(low.mape) <= 3, 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.smape = ifelse(
      rank(low.smape) <= 3, 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.mse = ifelse(
      rank(low.mse) <= 3, 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.rmse = ifelse(
      rank(low.rmse) <= 3, 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    close.mape = ifelse(
      rank(close.mape) <= 3, 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.smape = ifelse(
      rank(close.smape) <= 3, 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.mse = ifelse(
      rank(close.mse) <= 3, 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.rmse = ifelse(
      rank(close.rmse) <= 3, 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE))) %>% 
  kbl('html', caption = 'Comparison of Models (1 min summarised to 1 day per unit)', escape = FALSE) %>% 
  ## https://www.w3schools.com/cssref/css_colors.asp
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = 'CornflowerBlue') %>% 
  column_spec(2, background = 'DarkGrey') %>% 
  column_spec(3, background = 'LightSlateGrey') %>% 
  column_spec(4, background = 'LightGray') %>% 
  column_spec(5, background = 'Gainsboro') %>% 
  column_spec(6, background = 'LightGray') %>%   
  column_spec(7, background = 'Gainsboro') %>% 
  column_spec(8, background = 'LightGray') %>% 
  column_spec(9, background = 'Gainsboro') %>% 
  column_spec(10, background = 'LightGray') %>%   
  column_spec(11, background = 'Gainsboro') %>% 
  column_spec(12, background = 'LightGray') %>% 
  column_spec(13, background = 'Gainsboro') %>% 
  column_spec(14, background = 'LightGray') %>%   
  column_spec(15, background = 'Gainsboro') %>% 
  column_spec(16, background = 'LightGray') %>% 
  column_spec(17, background = 'Gainsboro') %>% 
  column_spec(18, background = 'LightGray') %>% 
  column_spec(19, background = 'Gainsboro') %>% 
  column_spec(20, background = 'LightGray') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kable_material(full_width = FALSE) %>% ##`full_width = FALSE` will auto adjust every single columns width to fit the table full width.
  scroll_box(width = '100%', fixed_thead = TRUE)#, height = '400px')

tb16
Comparison of Models (1 min summarised to 1 day per unit)
Model Period N open.mae open.mape open.smape open.mse open.rmse high.mae high.mape high.smape high.mse high.rmse low.mae low.mape low.smape low.mse low.rmse close.mae close.mape close.smape close.mse close.rmse
tbats dy.qt 1107360 113.9211118 (rank: 5) 99.9874339 (rank: 2) 0.0028715 (rank: 2) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9878461 (rank: 5) 0.0028743 (rank: 2) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.9890648 (rank: 3) 0.0028794 (rank: 2) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.9868906 (rank: 2) 0.0028659 (rank: 3) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
tbats dy.wk 1107360 113.9211118 (rank: 5) 99.9875357 (rank: 3) 0.0028974 (rank: 3) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9854879 (rank: 2) 0.0028844 (rank: 3) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.9866407 (rank: 1) 0.0028896 (rank: 3) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.9876367 (rank: 4) 0.0029325 (rank: 4) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
tbats dy.wk.mo 1095840 113.880531 (rank: 1) 99.988005 (rank: 4) 0.0029033 (rank: 4) 13009.6732246 (rank: 1) 114.0599545 (rank: 1) 113.8910 99.9891807 (rank: 6) 0.0028948 (rank: 4) 13012.048105 (rank: 1) 114.0703647 (rank: 1) 113.8700 99.9883727 (rank: 2) 0.0029122 (rank: 4) 13007.2785705 (rank: 1) 114.0494567 (rank: 1) 113.8805 99.9863519 (rank: 1) 0.002865 (rank: 2) 13009.670848 (rank: 1) 114.0599441 (rank: 1)
tbats dy.yr 1107360 113.9211118 (rank: 5) 99.9886429 (rank: 6) 0.0028657 (rank: 1) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9861341 (rank: 3) 0.002866 (rank: 1) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.99081 (rank: 4) 0.0028686 (rank: 1) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.9872289 (rank: 3) 0.0028559 (rank: 1) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
ts mo.1440 1107360 113.9211118 (rank: 5) 99.997698 (rank: 12) 0.0029726 (rank: 7) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9955946 (rank: 10) 0.0029629 (rank: 7) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.9961108 (rank: 9) 0.0029588 (rank: 6) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.9977861 (rank: 12) 0.0029733 (rank: 7) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
ts mo.7200 4024800 113.9506154 (rank: 10) 99.9862221 (rank: 1) 0.0065243 (rank: 12) 13025.152525 (rank: 10) 114.1277903 (rank: 10) 113.9613 99.9877541 (rank: 4) 0.0064656 (rank: 12) 13027.5778602 (rank: 10) 114.1384154 (rank: 10) 113.9399 99.9912018 (rank: 6) 0.0064556 (rank: 12) 13022.7140985 (rank: 10) 114.1171069 (rank: 10) 113.9506 99.988863 (rank: 5) 0.0065013 (rank: 12) 13025.1522625 (rank: 10) 114.1277892 (rank: 10)
ts qt.1440 1107360 113.9211118 (rank: 5) 99.9959563 (rank: 11) 0.0029554 (rank: 5) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9960047 (rank: 12) 0.002956 (rank: 5) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.9961693 (rank: 10) 0.0029585 (rank: 5) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.9960002 (rank: 10) 0.0029556 (rank: 5) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
ts qt.7200 4034880 113.9688821 (rank: 12) 99.9934976 (rank: 8) 0.0061786 (rank: 11) 13029.3483473 (rank: 12) 114.146171 (rank: 12) 113.9796 99.9933861 (rank: 8) 0.0061737 (rank: 11) 13031.7740075 (rank: 12) 114.1567957 (rank: 12) 113.9581 99.9938441 (rank: 8) 0.0061902 (rank: 11) 13026.9096587 (rank: 12) 114.1354882 (rank: 12) 113.9689 99.9935873 (rank: 7) 0.006172 (rank: 11) 13029.3481487 (rank: 12) 114.1461701 (rank: 12)
ts wk.1440 1107360 113.9211118 (rank: 5) 99.9959377 (rank: 10) 0.0030953 (rank: 8) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9942862 (rank: 9) 0.0030773 (rank: 8) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.9968647 (rank: 12) 0.0030863 (rank: 8) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.995752 (rank: 8) 0.0030839 (rank: 8) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
ts wk.7200 4006080 113.9265833 (rank: 9) 99.9886039 (rank: 5) 0.0060006 (rank: 9) 13019.7394475 (rank: 9) 114.1040729 (rank: 9) 113.9372 99.9825282 (rank: 1) 0.0059472 (rank: 9) 13022.16088 (rank: 9) 114.114683 (rank: 9) 113.9159 99.9908147 (rank: 5) 0.0060663 (rank: 9) 13017.3055576 (rank: 9) 114.0934072 (rank: 9) 113.9266 99.9971454 (rank: 11) 0.0060972 (rank: 9) 13019.7393598 (rank: 9) 114.1040725 (rank: 9)
ts yr.1440 1107360 113.9211118 (rank: 5) 99.9959377 (rank: 9) 0.0029555 (rank: 6) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9959517 (rank: 11) 0.0029561 (rank: 6) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.996185 (rank: 11) 0.0029592 (rank: 7) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.9959783 (rank: 9) 0.0029557 (rank: 6) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
ts yr.7200 4034880 113.9688821 (rank: 12) 99.9933323 (rank: 7) 0.0061776 (rank: 10) 13029.3483473 (rank: 12) 114.146171 (rank: 12) 113.9796 99.9933013 (rank: 7) 0.0061719 (rank: 10) 13031.7740075 (rank: 12) 114.1567957 (rank: 12) 113.9581 99.9936176 (rank: 7) 0.0061793 (rank: 10) 13026.9096587 (rank: 12) 114.1354882 (rank: 12) 113.9689 99.9934146 (rank: 6) 0.006171 (rank: 10) 13029.3481487 (rank: 12) 114.1461701 (rank: 12)

Above table summarized the total observations with mape, smape, mse and rmse values (which is not nested summarize not daily settlement for P&L).

5.3.1.3 Daily Dataset

open.accr <- ftl1[, {
  open = open
  open.Point.Forecast = open.Point.Forecast
  .SD[, .(.N, 
          open.mae = MAE(open, open.Point.Forecast), 
          open.mape = MAPE(open, open.Point.Forecast), 
          open.smape = SMAPE(open, open.Point.Forecast), 
          open.mse = MSE(open, open.Point.Forecast), 
          open.rmse = RMSE(open, open.Point.Forecast)), 
      by={index=as_date(index)}]}, 
  by=.(Model, Period)]

high.accr <- ftl1[, {
  high = high
  high.Point.Forecast = high.Point.Forecast
  .SD[, .(.N, 
          high.mae = MAE(high, high.Point.Forecast), 
          high.mape = MAPE(high, high.Point.Forecast), 
          high.smape = SMAPE(high, high.Point.Forecast), 
          high.mse = MSE(high, high.Point.Forecast), 
          high.rmse = RMSE(high, high.Point.Forecast)), 
      by={index=as_date(index)}]}, 
  by=.(Model, Period)]

low.accr <- ftl1[, {
  low = low
  low.Point.Forecast = low.Point.Forecast
  .SD[, .(.N, 
          low.mae = MAE(low, low.Point.Forecast), 
          low.mape = MAPE(low, low.Point.Forecast), 
          low.smape = SMAPE(low, low.Point.Forecast), 
          low.mse = MSE(low, low.Point.Forecast), 
          low.rmse = RMSE(low, low.Point.Forecast)), 
      by={index=as_date(index)}]}, 
  by=.(Model, Period)]

close.accr <- ftl1[, {
  close = close
  close.Point.Forecast = close.Point.Forecast
  .SD[, .(.N, 
          close.mae = MAE(close, close.Point.Forecast), 
          close.mape = MAPE(close, close.Point.Forecast), 
          close.smape = SMAPE(close, close.Point.Forecast), 
          close.mse = MSE(close, close.Point.Forecast), 
          close.rmse = RMSE(close, close.Point.Forecast)), 
      by={index=as_date(index)}]}, 
  by=.(Model, Period)]

open.sm <- open.accr[, list(
  N = mean(N), 
  open.mae = mean(open.mae), 
  open.mape = mean(open.mape), 
  open.smape = mean(open.smape), 
  open.mse = mean(open.mse), 
  open.rmse = mean(open.rmse)), 
  by=.(Model, Period)]

high.sm <- high.accr[, list(
  N = mean(N), 
  high.mae = mean(high.mae), 
  high.mape = mean(high.mape), 
  high.smape = mean(high.smape), 
  high.mse = mean(high.mse), 
  high.rmse = mean(high.rmse)), 
  by=.(Model, Period)]

low.sm <- low.accr[, list(
  N = mean(N), 
  low.mae = mean(low.mae), 
  low.mape = mean(low.mape), 
  low.smape = mean(low.smape), 
  low.mse = mean(low.mse), 
  low.rmse = mean(low.rmse)), 
  by=.(Model, Period)]

close.sm <- close.accr[, list(
  N = mean(N), 
  close.mae = mean(close.mae), 
  close.mape = mean(close.mape), 
  close.smape = mean(close.smape), 
  close.mse = mean(close.mse), 
  close.rmse = mean(close.rmse)), 
  by=.(Model, Period)]

ftl_dat1b <- join_all(list(open.sm, high.sm, low.sm, close.sm)) %>% 
  as_tibble
tb17 <- ftl_dat1b %>% 
  dplyr::mutate(
    open.mae = ifelse(
      rank(open.mae) <= 3, 
      cell_spec(
        paste0(round(open.mae, 7), ' (rank: ', sprintf('%1.f', rank(open.mae)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mae, 7), ' (rank: ', sprintf('%1.f', rank(open.mae)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.mape = ifelse(
      rank(open.mape) <= 3, 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.smape = ifelse(
      rank(open.smape) <= 3, 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.mse = ifelse(
      rank(open.mse) <= 3, 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.rmse = ifelse(
      rank(open.rmse) <= 3, 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    high.mape = ifelse(
      rank(high.mape) <= 3, 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.smape = ifelse(
      rank(high.smape) <= 3, 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.mse = ifelse(
      rank(high.mse) <= 3, 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.rmse = ifelse(
      rank(high.rmse) <= 3, 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    low.mape = ifelse(
      rank(low.mape) <= 3, 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.smape = ifelse(
      rank(low.smape) <= 3, 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.mse = ifelse(
      rank(low.mse) <= 3, 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.rmse = ifelse(
      rank(low.rmse) <= 3, 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    close.mape = ifelse(
      rank(close.mape) <= 3, 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.smape = ifelse(
      rank(close.smape) <= 3, 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.mse = ifelse(
      rank(close.mse) <= 3, 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.rmse = ifelse(
      rank(close.rmse) <= 3, 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE))) %>% 
  kbl('html', caption = 'Comparison of Models (1 min summarised to 1 day per unit)', escape = FALSE) %>% 
  ## https://www.w3schools.com/cssref/css_colors.asp
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = 'CornflowerBlue') %>% 
  column_spec(2, background = 'DarkGrey') %>% 
  #column_spec(3, background = 'LightSlateGrey') %>% 
  column_spec(3, background = 'LightSlateGrey') %>% 
  column_spec(4, background = 'LightGray') %>% 
  column_spec(5, background = 'Gainsboro') %>% 
  column_spec(6, background = 'LightGray') %>%   
  column_spec(7, background = 'Gainsboro') %>% 
  column_spec(8, background = 'LightGray') %>% 
  column_spec(9, background = 'Gainsboro') %>% 
  column_spec(10, background = 'LightGray') %>%   
  column_spec(11, background = 'Gainsboro') %>% 
  column_spec(12, background = 'LightGray') %>% 
  column_spec(13, background = 'Gainsboro') %>% 
  column_spec(14, background = 'LightGray') %>%   
  column_spec(15, background = 'Gainsboro') %>% 
  column_spec(16, background = 'LightGray') %>% 
  column_spec(17, background = 'Gainsboro') %>% 
  column_spec(18, background = 'LightGray') %>%   
  column_spec(19, background = 'Gainsboro') %>% 
  column_spec(20, background = 'LightGray') %>%   
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kable_material(full_width = FALSE) %>% ##`full_width = FALSE` will auto adjust every single columns width to fit the table full width.
  scroll_box(width = '100%', fixed_thead = TRUE)#, height = '400px')

tb17
Comparison of Models (1 min summarised to 1 day per unit)
Model Period N open.mae open.mape open.smape open.mse open.rmse high.mae high.mape high.smape high.mse high.rmse low.mae low.mape low.smape low.mse low.rmse close.mae close.mape close.smape close.mse close.rmse
ts mo.7200 4304.599 113.9568357 (rank: 10) 99.9855805 (rank: 5) 0.0067014 (rank: 12) 13026.629641 (rank: 10) 113.9571521 (rank: 10) 113.9686 99.9870942 (rank: 6) 0.0066468 (rank: 12) 13029.302226 (rank: 10) 113.9688815 (rank: 10) 113.9453 99.9906476 (rank: 9) 0.0066298 (rank: 12) 13024.0173177 (rank: 10) 113.9456617 (rank: 10) 113.9570 99.988296 (rank: 5) 0.0066766 (rank: 12) 13026.6806631 (rank: 10) 113.9573559 (rank: 10)
ts qt.7200 4315.380 113.9568357 (rank: 12) 99.9910107 (rank: 11) 0.0063751 (rank: 11) 13026.6296428 (rank: 12) 113.9571522 (rank: 12) 113.9686 99.9908152 (rank: 9) 0.0063706 (rank: 11) 13029.3022289 (rank: 12) 113.9688815 (rank: 12) 113.9453 99.9914321 (rank: 12) 0.0063822 (rank: 11) 13024.0173194 (rank: 12) 113.9456617 (rank: 12) 113.9570 99.9910805 (rank: 10) 0.0063651 (rank: 11) 13026.6806654 (rank: 12) 113.9573559 (rank: 12)
ts yr.7200 4315.380 113.9568357 (rank: 12) 99.9908218 (rank: 10) 0.0063743 (rank: 10) 13026.6296428 (rank: 12) 113.9571522 (rank: 12) 113.9686 99.990712 (rank: 8) 0.006369 (rank: 10) 13029.3022289 (rank: 12) 113.9688815 (rank: 12) 113.9453 99.9911817 (rank: 11) 0.0063707 (rank: 10) 13024.0173194 (rank: 12) 113.9456617 (rank: 12) 113.9570 99.9908831 (rank: 9) 0.0063644 (rank: 10) 13026.6806654 (rank: 12) 113.9573559 (rank: 12)
tbats dy.qt 1198.442 113.9168659 (rank: 5) 99.9827217 (rank: 1) 0.0031822 (rank: 2) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.9847327 (rank: 4) 0.0031922 (rank: 2) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9837386 (rank: 3) 0.0031997 (rank: 3) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9832649 (rank: 1) 0.0031787 (rank: 3) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
tbats dy.wk 1198.442 113.9168659 (rank: 5) 99.9830175 (rank: 2) 0.0032321 (rank: 4) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.9837571 (rank: 3) 0.0031979 (rank: 3) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9814492 (rank: 1) 0.0031972 (rank: 2) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9872821 (rank: 4) 0.003283 (rank: 7) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
tbats dy.yr 1198.442 113.9168659 (rank: 5) 99.9850262 (rank: 4) 0.0031819 (rank: 1) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.983682 (rank: 2) 0.0031809 (rank: 1) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9860155 (rank: 4) 0.0031824 (rank: 1) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9834722 (rank: 3) 0.0031677 (rank: 2) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
ts mo.1440 1198.442 113.9168659 (rank: 5) 99.9919173 (rank: 12) 0.00327 (rank: 7) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.9913289 (rank: 10) 0.003271 (rank: 7) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9898799 (rank: 6) 0.0032548 (rank: 6) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9921135 (rank: 11) 0.0032685 (rank: 6) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
ts qt.1440 1198.442 113.9168659 (rank: 5) 99.9904949 (rank: 9) 0.0032559 (rank: 5) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.9913755 (rank: 12) 0.003256 (rank: 6) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9899631 (rank: 7) 0.0032544 (rank: 5) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9906295 (rank: 8) 0.0032536 (rank: 4) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
ts wk.1440 1198.442 113.9168659 (rank: 5) 99.989367 (rank: 7) 0.0033961 (rank: 8) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.9899969 (rank: 7) 0.0033679 (rank: 8) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9907161 (rank: 10) 0.003378 (rank: 8) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9890199 (rank: 6) 0.0033779 (rank: 8) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
ts wk.7200 4307.613 113.9292233 (rank: 9) 99.9858873 (rank: 6) 0.0062015 (rank: 9) 13020.4110471 (rank: 9) 113.9295397 (rank: 9) 113.9409 99.9803412 (rank: 1) 0.0061414 (rank: 9) 13023.0775024 (rank: 9) 113.941246 (rank: 9) 113.9177 99.9871864 (rank: 5) 0.0062622 (rank: 9) 13017.8034233 (rank: 9) 113.9180662 (rank: 9) 113.9294 99.9948054 (rank: 12) 0.0062949 (rank: 9) 13020.4602425 (rank: 9) 113.9297357 (rank: 9)
ts yr.1440 1198.442 113.9168659 (rank: 5) 99.990482 (rank: 8) 0.003256 (rank: 6) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.9913327 (rank: 11) 0.003256 (rank: 5) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9899977 (rank: 8) 0.003255 (rank: 7) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9906131 (rank: 7) 0.0032538 (rank: 5) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
tbats dy.wk.mo 1196.332 113.8834162 (rank: 1) 99.9849071 (rank: 3) 0.0032018 (rank: 3) 13010.4070779 (rank: 1) 113.8837311 (rank: 1) 113.8949 99.9863293 (rank: 5) 0.0032013 (rank: 4) 13013.0251767 (rank: 1) 113.8952365 (rank: 1) 113.8720 99.9831703 (rank: 2) 0.0032375 (rank: 4) 13007.8084865 (rank: 1) 113.872291 (rank: 1) 113.8835 99.9833065 (rank: 2) 0.0031621 (rank: 1) 13010.4185766 (rank: 1) 113.8837664 (rank: 1)

Above table summarized the daily mape, smape, mse and rmse values and then summarized again the models (which is nested summarize due to daily settlement for P&L).

5.3.2 Filtered 7200 mins unique(x, fromLast = FALSE) Dataset

5.3.2.1 Overview

ftl2 <- unique(ftl1, fromLast = FALSE, by = c('index', 'Period'))#[Period == 'mo.7200']#[11440:12900]#[order(index)]
#setkey(ftl2)
setkeyv(ftl2, c('index', 'Model', 'Period'))

m.op <- ftl2[, {
    open = open
    open.Point.Forecast = open.Point.Forecast
    .SD[, .(.N, 
            open.mae = MAE(open, open.Point.Forecast), 
            open.mape = MAPE(open, open.Point.Forecast), 
            open.smape = SMAPE(open, open.Point.Forecast), 
            open.mse = MSE(open, open.Point.Forecast), 
            open.rmse = RMSE(open, open.Point.Forecast)), 
        by=.(Model, Period)]}][order(Model, Period), ]

m.hi <- ftl2[, {
    high = high
    high.Point.Forecast = high.Point.Forecast
    .SD[, .(.N, 
            high.mae = MAE(high, high.Point.Forecast), 
            high.mape = MAPE(high, high.Point.Forecast), 
            high.smape = SMAPE(high, high.Point.Forecast), 
            high.mse = MSE(high, high.Point.Forecast), 
            high.rmse = RMSE(high, high.Point.Forecast)), 
        by=.(Model, Period)]}][order(Model, Period), ]

m.lo <- ftl2[, {
    low = low
    low.Point.Forecast = low.Point.Forecast
    .SD[, .(.N, 
            low.mae = MAE(low, low.Point.Forecast), 
            low.mape = MAPE(low, low.Point.Forecast), 
            low.smape = SMAPE(low, low.Point.Forecast), 
            low.mse = MSE(low, low.Point.Forecast), 
            low.rmse = RMSE(low, low.Point.Forecast)), 
        by=.(Model, Period)]}][order(Model, Period), ]

m.cl <- ftl2[, {
    close = close
    close.Point.Forecast = close.Point.Forecast
    .SD[, .(.N, 
            close.mae = MAE(close, close.Point.Forecast), 
            close.mape = MAPE(close, close.Point.Forecast), 
            close.smape = SMAPE(close, close.Point.Forecast), 
            close.mse = MSE(close, close.Point.Forecast), 
            close.rmse = RMSE(close, close.Point.Forecast)), 
        by=.(Model, Period)]}][order(Model, Period), ]

ftl_dat2a <- join_all(list(m.op, m.hi, m.lo, m.cl)) %>% 
  as_tibble

The models mo.7200, qt.7200, yr.7200, wk.7200 predict 7200 mins data in advanced per day. But models mo.1440, qt.1440, wk.1440, yr.1440 only predict 1440 mins data in advanced per day. Therefore there will be different data size and duplicate forecasted price.

Here I filtered to be unique forecasted price but 7200 mins in advanced per week. That means when I forecast data on 2015-01-17 for 2015-01-20 to 2015-01-25 which is 7200 mins in advanced. (All dataset will be forecast 7200 in advanced since I only filter and take first row of every single min)

5.3.2.2 Overall Dataset

tb18 <- ftl_dat2a %>% 
  dplyr::mutate(
    open.mae = ifelse(
      rank(open.mae) <= 3, 
      cell_spec(
        paste0(round(open.mae, 7), ' (rank: ', sprintf('%1.f', rank(open.mae)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mae, 7), ' (rank: ', sprintf('%1.f', rank(open.mae)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.mape = ifelse(
      rank(open.mape) <= 3, 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.smape = ifelse(
      rank(open.smape) <= 3, 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.mse = ifelse(
      rank(open.mse) <= 3, 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.rmse = ifelse(
      rank(open.rmse) <= 3, 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    high.mape = ifelse(
      rank(high.mape) <= 3, 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.smape = ifelse(
      rank(high.smape) <= 3, 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.mse = ifelse(
      rank(high.mse) <= 3, 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.rmse = ifelse(
      rank(high.rmse) <= 3, 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    low.mape = ifelse(
      rank(low.mape) <= 3, 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.smape = ifelse(
      rank(low.smape) <= 3, 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.mse = ifelse(
      rank(low.mse) <= 3, 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.rmse = ifelse(
      rank(low.rmse) <= 3, 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    close.mape = ifelse(
      rank(close.mape) <= 3, 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.smape = ifelse(
      rank(close.smape) <= 3, 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.mse = ifelse(
      rank(close.mse) <= 3, 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.rmse = ifelse(
      rank(close.rmse) <= 3, 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE))) %>% 
  kbl('html', caption = 'Comparison of Models (1 min summarised to 1 day per unit)', escape = FALSE) %>% 
  ## https://www.w3schools.com/cssref/css_colors.asp
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = 'CornflowerBlue') %>% 
  column_spec(2, background = 'DarkGrey') %>% 
  column_spec(3, background = 'LightSlateGrey') %>% 
  column_spec(4, background = 'LightGray') %>% 
  column_spec(5, background = 'Gainsboro') %>% 
  column_spec(6, background = 'LightGray') %>%   
  column_spec(7, background = 'Gainsboro') %>% 
  column_spec(8, background = 'LightGray') %>% 
  column_spec(9, background = 'Gainsboro') %>% 
  column_spec(10, background = 'LightGray') %>%   
  column_spec(11, background = 'Gainsboro') %>% 
  column_spec(12, background = 'LightGray') %>% 
  column_spec(13, background = 'Gainsboro') %>% 
  column_spec(14, background = 'LightGray') %>%   
  column_spec(15, background = 'Gainsboro') %>% 
  column_spec(16, background = 'LightGray') %>% 
  column_spec(17, background = 'Gainsboro') %>% 
  column_spec(18, background = 'LightGray') %>% 
  column_spec(19, background = 'Gainsboro') %>% 
  column_spec(20, background = 'LightGray') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kable_material(full_width = FALSE) %>% ##`full_width = FALSE` will auto adjust every single columns width to fit the table full width.
  scroll_box(width = '100%', fixed_thead = TRUE)#, height = '400px')

tb18
Comparison of Models (1 min summarised to 1 day per unit)
Model Period N open.mae open.mape open.smape open.mse open.rmse high.mae high.mape high.smape high.mse high.rmse low.mae low.mape low.smape low.mse low.rmse close.mae close.mape close.smape close.mse close.rmse
tbats dy.qt 1107360 113.9211118 (rank: 5) 99.9874339 (rank: 4) 0.0028715 (rank: 2) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9878461 (rank: 6) 0.0028743 (rank: 2) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.9890648 (rank: 6) 0.0028794 (rank: 2) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.9868906 (rank: 5) 0.0028659 (rank: 3) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
tbats dy.wk 1107360 113.9211118 (rank: 5) 99.9875357 (rank: 5) 0.0028974 (rank: 3) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9854879 (rank: 4) 0.0028844 (rank: 3) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.9866407 (rank: 4) 0.0028896 (rank: 3) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.9876367 (rank: 7) 0.0029325 (rank: 4) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
tbats dy.wk.mo 1095840 113.880531 (rank: 1) 99.988005 (rank: 6) 0.0029033 (rank: 4) 13009.6732246 (rank: 1) 114.0599545 (rank: 1) 113.8910 99.9891807 (rank: 7) 0.0028948 (rank: 4) 13012.048105 (rank: 1) 114.0703647 (rank: 1) 113.8700 99.9883727 (rank: 5) 0.0029122 (rank: 4) 13007.2785705 (rank: 1) 114.0494567 (rank: 1) 113.8805 99.9863519 (rank: 4) 0.002865 (rank: 2) 13009.670848 (rank: 1) 114.0599441 (rank: 1)
tbats dy.yr 1107360 113.9211118 (rank: 5) 99.9886429 (rank: 7) 0.0028657 (rank: 1) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9861341 (rank: 5) 0.002866 (rank: 1) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.99081 (rank: 7) 0.0028686 (rank: 1) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.9872289 (rank: 6) 0.0028559 (rank: 1) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
ts mo.1440 1107360 113.9211118 (rank: 5) 99.997698 (rank: 11) 0.0029726 (rank: 7) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9955946 (rank: 10) 0.0029629 (rank: 7) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.9961108 (rank: 8) 0.0029588 (rank: 6) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.9977861 (rank: 11) 0.0029733 (rank: 7) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
ts mo.7200 1121760 113.963099 (rank: 11) 99.9666545 (rank: 1) 0.0084935 (rank: 12) 13027.908531 (rank: 11) 114.1398639 (rank: 11) 113.9737 99.9723839 (rank: 1) 0.0083268 (rank: 12) 13030.3134205 (rank: 11) 114.1503982 (rank: 11) 113.9525 99.9821409 (rank: 1) 0.0083461 (rank: 11) 13025.4911689 (rank: 11) 114.1292739 (rank: 11) 113.9631 99.9742402 (rank: 1) 0.0084237 (rank: 11) 13027.9088161 (rank: 11) 114.1398651 (rank: 11)
ts qt.1440 1107360 113.9211118 (rank: 5) 99.9959563 (rank: 10) 0.0029554 (rank: 5) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9960047 (rank: 12) 0.002956 (rank: 5) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.9961693 (rank: 9) 0.0029585 (rank: 5) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.9960002 (rank: 10) 0.0029556 (rank: 5) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
ts qt.7200 1121760 113.963099 (rank: 11) 99.9846832 (rank: 3) 0.008182 (rank: 10) 13027.908531 (rank: 11) 114.1398639 (rank: 11) 113.9737 99.984587 (rank: 2) 0.0081725 (rank: 11) 13030.3134205 (rank: 11) 114.1503982 (rank: 11) 113.9525 99.9850149 (rank: 3) 0.008208 (rank: 10) 13025.4911689 (rank: 11) 114.1292739 (rank: 11) 113.9631 99.9847091 (rank: 3) 0.0081662 (rank: 10) 13027.9088161 (rank: 11) 114.1398651 (rank: 11)
ts wk.1440 1107360 113.9211118 (rank: 5) 99.9959377 (rank: 9) 0.0030953 (rank: 8) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9942862 (rank: 9) 0.0030773 (rank: 8) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.9968647 (rank: 11) 0.0030863 (rank: 8) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.995752 (rank: 8) 0.0030839 (rank: 8) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
ts wk.7200 1116000 113.9359099 (rank: 9) 99.9994373 (rank: 12) 0.0082716 (rank: 11) 13021.7754579 (rank: 9) 114.1129943 (rank: 9) 113.9465 99.992588 (rank: 8) 0.0080806 (rank: 9) 13024.1750398 (rank: 9) 114.1235078 (rank: 9) 113.9253 100.009432 (rank: 12) 0.0084502 (rank: 12) 13019.3639797 (rank: 9) 114.1024276 (rank: 9) 113.9359 100.0310396 (rank: 12) 0.0085153 (rank: 12) 13021.7759743 (rank: 9) 114.1129965 (rank: 9)
ts yr.1440 1107360 113.9211118 (rank: 5) 99.9959377 (rank: 8) 0.0029555 (rank: 6) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9959517 (rank: 11) 0.0029561 (rank: 6) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.996185 (rank: 10) 0.0029592 (rank: 7) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.9959783 (rank: 9) 0.0029557 (rank: 6) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
ts yr.7200 1121760 113.963099 (rank: 11) 99.9846711 (rank: 2) 0.0081819 (rank: 9) 13027.908531 (rank: 11) 114.1398639 (rank: 11) 113.9737 99.984812 (rank: 3) 0.0081702 (rank: 10) 13030.3134205 (rank: 11) 114.1503982 (rank: 11) 113.9525 99.9849314 (rank: 2) 0.0081821 (rank: 9) 13025.4911689 (rank: 11) 114.1292739 (rank: 11) 113.9631 99.9846938 (rank: 2) 0.0081661 (rank: 9) 13027.9088161 (rank: 11) 114.1398651 (rank: 11)

Above table summarized the total observations with mape, smape, mse and rmse values (which is not nested summarize not daily settlement for P&L).

5.3.2.3 Daily Dataset

open.accr <- ftl2[, {
  open = open
  open.Point.Forecast = open.Point.Forecast
  .SD[, .(.N, 
          open.mae = MAE(open, open.Point.Forecast), 
          open.mape = MAPE(open, open.Point.Forecast), 
          open.smape = SMAPE(open, open.Point.Forecast), 
          open.mse = MSE(open, open.Point.Forecast), 
          open.rmse = RMSE(open, open.Point.Forecast)), 
      by={index=as_date(index)}]}, 
  by=.(Model, Period)]

high.accr <- ftl2[, {
  high = high
  high.Point.Forecast = high.Point.Forecast
  .SD[, .(.N, 
          high.mae = MAE(high, high.Point.Forecast), 
          high.mape = MAPE(high, high.Point.Forecast), 
          high.smape = SMAPE(high, high.Point.Forecast), 
          high.mse = MSE(high, high.Point.Forecast), 
          high.rmse = RMSE(high, high.Point.Forecast)), 
      by={index=as_date(index)}]}, 
  by=.(Model, Period)]

low.accr <- ftl2[, {
  low = low
  low.Point.Forecast = low.Point.Forecast
  .SD[, .(.N, 
          low.mae = MAE(low, low.Point.Forecast), 
          low.mape = MAPE(low, low.Point.Forecast), 
          low.smape = SMAPE(low, low.Point.Forecast), 
          low.mse = MSE(low, low.Point.Forecast), 
          low.rmse = RMSE(low, low.Point.Forecast)), 
      by={index=as_date(index)}]}, 
  by=.(Model, Period)]

close.accr <- ftl2[, {
  close = close
  close.Point.Forecast = close.Point.Forecast
  .SD[, .(.N, 
          close.mae = MAE(close, close.Point.Forecast), 
          close.mape = MAPE(close, close.Point.Forecast), 
          close.smape = SMAPE(close, close.Point.Forecast), 
          close.mse = MSE(close, close.Point.Forecast), 
          close.rmse = RMSE(close, close.Point.Forecast)), 
      by={index=as_date(index)}]}, 
  by=.(Model, Period)]

open.sm <- open.accr[, list(
  N = mean(N), 
  open.mae = mean(open.mae), 
  open.mape = mean(open.mape), 
  open.smape = mean(open.smape), 
  open.mse = mean(open.mse), 
  open.rmse = mean(open.rmse)), 
  by=.(Model, Period)]

high.sm <- high.accr[, list(
  N = mean(N), 
  high.mae = mean(high.mae), 
  high.mape = mean(high.mape), 
  high.smape = mean(high.smape), 
  high.mse = mean(high.mse), 
  high.rmse = mean(high.rmse)), 
  by=.(Model, Period)]

low.sm <- low.accr[, list(
  N = mean(N), 
  low.mae = mean(low.mae), 
  low.mape = mean(low.mape), 
  low.smape = mean(low.smape), 
  low.mse = mean(low.mse), 
  low.rmse = mean(low.rmse)), 
  by=.(Model, Period)]

close.sm <- close.accr[, list(
  N = mean(N), 
  close.mae = mean(close.mae), 
  close.mape = mean(close.mape), 
  close.smape = mean(close.smape), 
  close.mse = mean(close.mse), 
  close.rmse = mean(close.rmse)), 
  by=.(Model, Period)]

ftl_dat2b <- join_all(list(open.sm, high.sm, low.sm, close.sm)) %>% 
  as_tibble
tb19 <- ftl_dat2b %>% 
  dplyr::mutate(
    open.mae = ifelse(
      rank(open.mae) <= 3, 
      cell_spec(
        paste0(round(open.mae, 7), ' (rank: ', sprintf('%1.f', rank(open.mae)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mae, 7), ' (rank: ', sprintf('%1.f', rank(open.mae)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.mape = ifelse(
      rank(open.mape) <= 3, 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.smape = ifelse(
      rank(open.smape) <= 3, 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.mse = ifelse(
      rank(open.mse) <= 3, 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.rmse = ifelse(
      rank(open.rmse) <= 3, 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    high.mape = ifelse(
      rank(high.mape) <= 3, 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.smape = ifelse(
      rank(high.smape) <= 3, 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.mse = ifelse(
      rank(high.mse) <= 3, 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.rmse = ifelse(
      rank(high.rmse) <= 3, 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    low.mape = ifelse(
      rank(low.mape) <= 3, 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.smape = ifelse(
      rank(low.smape) <= 3, 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.mse = ifelse(
      rank(low.mse) <= 3, 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.rmse = ifelse(
      rank(low.rmse) <= 3, 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    close.mape = ifelse(
      rank(close.mape) <= 3, 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.smape = ifelse(
      rank(close.smape) <= 3, 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.mse = ifelse(
      rank(close.mse) <= 3, 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.rmse = ifelse(
      rank(close.rmse) <= 3, 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE))) %>% 
  kbl('html', caption = 'Comparison of Models (1 min summarised to 1 day per unit)', escape = FALSE) %>% 
  ## https://www.w3schools.com/cssref/css_colors.asp
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = 'CornflowerBlue') %>% 
  column_spec(2, background = 'DarkGrey') %>% 
  #column_spec(3, background = 'LightSlateGrey') %>% 
  column_spec(3, background = 'LightSlateGrey') %>% 
  column_spec(4, background = 'LightGray') %>% 
  column_spec(5, background = 'Gainsboro') %>% 
  column_spec(6, background = 'LightGray') %>%   
  column_spec(7, background = 'Gainsboro') %>% 
  column_spec(8, background = 'LightGray') %>% 
  column_spec(9, background = 'Gainsboro') %>% 
  column_spec(10, background = 'LightGray') %>%   
  column_spec(11, background = 'Gainsboro') %>% 
  column_spec(12, background = 'LightGray') %>% 
  column_spec(13, background = 'Gainsboro') %>% 
  column_spec(14, background = 'LightGray') %>%   
  column_spec(15, background = 'Gainsboro') %>% 
  column_spec(16, background = 'LightGray') %>% 
  column_spec(17, background = 'Gainsboro') %>% 
  column_spec(18, background = 'LightGray') %>%  
  column_spec(19, background = 'Gainsboro') %>% 
  column_spec(20, background = 'LightGray') %>%  
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kable_material(full_width = FALSE) %>% ##`full_width = FALSE` will auto adjust every single columns width to fit the table full width.
  scroll_box(width = '100%', fixed_thead = TRUE)#, height = '400px')

tb19
Comparison of Models (1 min summarised to 1 day per unit)
Model Period N open.mae open.mape open.smape open.mse open.rmse high.mae high.mape high.smape high.mse high.rmse low.mae low.mape low.smape low.mse low.rmse close.mae close.mape close.smape close.mse close.rmse
ts mo.7200 1199.743 113.9568368 (rank: 11) 99.9595549 (rank: 1) 0.0089263 (rank: 12) 13026.629859 (rank: 11) 113.9571533 (rank: 11) 113.9686 99.9679242 (rank: 1) 0.0087206 (rank: 12) 13029.3024649 (rank: 11) 113.9688827 (rank: 11) 113.9453 99.9790867 (rank: 1) 0.0087544 (rank: 11) 13024.0175187 (rank: 11) 113.9456627 (rank: 11) 113.9570 99.9689383 (rank: 1) 0.0088472 (rank: 11) 13026.680885 (rank: 11) 113.957357 (rank: 11)
ts qt.7200 1199.743 113.9568368 (rank: 11) 99.9814998 (rank: 3) 0.0086197 (rank: 10) 13026.629859 (rank: 11) 113.9571533 (rank: 11) 113.9686 99.9814404 (rank: 2) 0.0086026 (rank: 11) 13029.3024649 (rank: 11) 113.9688827 (rank: 11) 113.9453 99.981785 (rank: 4) 0.0086364 (rank: 10) 13024.0175187 (rank: 11) 113.9456627 (rank: 11) 113.9570 99.9815012 (rank: 3) 0.0085917 (rank: 10) 13026.680885 (rank: 11) 113.957357 (rank: 11)
ts yr.7200 1199.743 113.9568368 (rank: 11) 99.98149 (rank: 2) 0.0086196 (rank: 9) 13026.629859 (rank: 11) 113.9571533 (rank: 11) 113.9686 99.9816167 (rank: 3) 0.0086005 (rank: 10) 13029.3024649 (rank: 11) 113.9688827 (rank: 11) 113.9453 99.9817071 (rank: 3) 0.0086142 (rank: 9) 13024.0175187 (rank: 11) 113.9456627 (rank: 11) 113.9570 99.9814885 (rank: 2) 0.0085916 (rank: 9) 13026.680885 (rank: 11) 113.957357 (rank: 11)
tbats dy.qt 1198.442 113.9168659 (rank: 5) 99.9827217 (rank: 4) 0.0031822 (rank: 2) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.9847327 (rank: 6) 0.0031922 (rank: 2) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9837386 (rank: 6) 0.0031997 (rank: 3) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9832649 (rank: 4) 0.0031787 (rank: 3) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
tbats dy.wk 1198.442 113.9168659 (rank: 5) 99.9830175 (rank: 5) 0.0032321 (rank: 4) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.9837571 (rank: 5) 0.0031979 (rank: 3) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9814492 (rank: 2) 0.0031972 (rank: 2) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9872821 (rank: 7) 0.003283 (rank: 7) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
tbats dy.yr 1198.442 113.9168659 (rank: 5) 99.9850262 (rank: 7) 0.0031819 (rank: 1) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.983682 (rank: 4) 0.0031809 (rank: 1) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9860155 (rank: 7) 0.0031824 (rank: 1) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9834722 (rank: 6) 0.0031677 (rank: 2) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
ts mo.1440 1198.442 113.9168659 (rank: 5) 99.9919173 (rank: 12) 0.00327 (rank: 7) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.9913289 (rank: 10) 0.003271 (rank: 7) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9898799 (rank: 8) 0.0032548 (rank: 6) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9921135 (rank: 11) 0.0032685 (rank: 6) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
ts qt.1440 1198.442 113.9168659 (rank: 5) 99.9904949 (rank: 10) 0.0032559 (rank: 5) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.9913755 (rank: 12) 0.003256 (rank: 6) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9899631 (rank: 9) 0.0032544 (rank: 5) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9906295 (rank: 10) 0.0032536 (rank: 4) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
ts wk.1440 1198.442 113.9168659 (rank: 5) 99.989367 (rank: 8) 0.0033961 (rank: 8) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.9899969 (rank: 9) 0.0033679 (rank: 8) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9907161 (rank: 11) 0.003378 (rank: 8) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9890199 (rank: 8) 0.0033779 (rank: 8) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
ts wk.7200 1200.000 113.9292249 (rank: 9) 99.9917924 (rank: 11) 0.0087278 (rank: 11) 13020.4113841 (rank: 9) 113.9295413 (rank: 9) 113.9409 99.9893302 (rank: 8) 0.0085238 (rank: 9) 13023.077857 (rank: 9) 113.9412477 (rank: 9) 113.9177 100.0103725 (rank: 12) 0.0089514 (rank: 12) 13017.8037415 (rank: 9) 113.9180677 (rank: 9) 113.9294 100.0302948 (rank: 12) 0.0090315 (rank: 12) 13020.4605834 (rank: 9) 113.9297373 (rank: 9)
ts yr.1440 1198.442 113.9168659 (rank: 5) 99.990482 (rank: 9) 0.003256 (rank: 6) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.9913327 (rank: 11) 0.003256 (rank: 5) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9899977 (rank: 10) 0.003255 (rank: 7) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9906131 (rank: 9) 0.0032538 (rank: 5) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
tbats dy.wk.mo 1196.332 113.8834162 (rank: 1) 99.9849071 (rank: 6) 0.0032018 (rank: 3) 13010.4070779 (rank: 1) 113.8837311 (rank: 1) 113.8949 99.9863293 (rank: 7) 0.0032013 (rank: 4) 13013.0251767 (rank: 1) 113.8952365 (rank: 1) 113.8720 99.9831703 (rank: 5) 0.0032375 (rank: 4) 13007.8084865 (rank: 1) 113.872291 (rank: 1) 113.8835 99.9833065 (rank: 5) 0.0031621 (rank: 1) 13010.4185766 (rank: 1) 113.8837664 (rank: 1)

Above table summarized the daily mape, smape, mse and rmse values and then summarized again the models (which is nested summarize due to daily settlement for P&L).

5.3.3 Filtered 7200 mins unique(x, fromLast = TRUE) Dataset

5.3.3.1 Overview

ftl3 <- unique(ftl1, fromLast = TRUE, by = c('index', 'Period'))#[Period == 'mo.7200']#[11440:12900]#[order(index)]
#setkey(ftl3)
setkeyv(ftl3, c('index', 'Model', 'Period'))

m.op <- ftl3[, {
    open = open
    open.Point.Forecast = open.Point.Forecast
    .SD[, .(.N, 
            open.mae = MAE(open, open.Point.Forecast), 
            open.mape = MAPE(open, open.Point.Forecast), 
            open.smape = SMAPE(open, open.Point.Forecast), 
            open.mse = MSE(open, open.Point.Forecast), 
            open.rmse = RMSE(open, open.Point.Forecast)), 
        by=.(Model, Period)]}][order(Model, Period), ]

m.hi <- ftl3[, {
    high = high
    high.Point.Forecast = high.Point.Forecast
    .SD[, .(.N, 
            high.mae = MAE(high, high.Point.Forecast), 
            high.mape = MAPE(high, high.Point.Forecast), 
            high.smape = SMAPE(high, high.Point.Forecast), 
            high.mse = MSE(high, high.Point.Forecast), 
            high.rmse = RMSE(high, high.Point.Forecast)), 
        by=.(Model, Period)]}][order(Model, Period), ]

m.lo <- ftl3[, {
    low = low
    low.Point.Forecast = low.Point.Forecast
    .SD[, .(.N, 
            low.mae = MAE(low, low.Point.Forecast), 
            low.mape = MAPE(low, low.Point.Forecast), 
            low.smape = SMAPE(low, low.Point.Forecast), 
            low.mse = MSE(low, low.Point.Forecast), 
            low.rmse = RMSE(low, low.Point.Forecast)), 
        by=.(Model, Period)]}][order(Model, Period), ]

m.cl <- ftl3[, {
    close = close
    close.Point.Forecast = close.Point.Forecast
    .SD[, .(.N, 
            close.mae = MAE(close, close.Point.Forecast), 
            close.mape = MAPE(close, close.Point.Forecast), 
            close.smape = SMAPE(close, close.Point.Forecast), 
            close.mse = MSE(close, close.Point.Forecast), 
            close.rmse = RMSE(close, close.Point.Forecast)), 
        by=.(Model, Period)]}][order(Model, Period), ]

ftl_dat3a <- join_all(list(m.op, m.hi, m.lo, m.cl)) %>% 
  as_tibble

The models mo.7200, qt.7200, yr.7200, wk.7200 predict 7200 mins data in advanced per day. But models mo.1440, qt.1440, wk.1440, yr.1440 only predict 1440 mins data in advanced per day. Therefore there will be different data size and duplicate forecasted price.

Here I filtered to be unique forecasted price but 7200 mins in advanced per week. That means when I forecast data on 2015-01-17 for 2015-01-20 to 2015-01-25 which is the last 1440 mins among 7200 mins in advanced. (All dataset will be forecast 7200 in advanced since I only filter and take last row of every single min)

5.3.3.2 Overall Dataset

tb20 <- ftl_dat3a %>% 
  dplyr::mutate(
    open.mae = ifelse(
      rank(open.mae) <= 3, 
      cell_spec(
        paste0(round(open.mae, 7), ' (rank: ', sprintf('%1.f', rank(open.mae)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mae, 7), ' (rank: ', sprintf('%1.f', rank(open.mae)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.mape = ifelse(
      rank(open.mape) <= 3, 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.smape = ifelse(
      rank(open.smape) <= 3, 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.mse = ifelse(
      rank(open.mse) <= 3, 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.rmse = ifelse(
      rank(open.rmse) <= 3, 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    high.mape = ifelse(
      rank(high.mape) <= 3, 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.smape = ifelse(
      rank(high.smape) <= 3, 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.mse = ifelse(
      rank(high.mse) <= 3, 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.rmse = ifelse(
      rank(high.rmse) <= 3, 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    low.mape = ifelse(
      rank(low.mape) <= 3, 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.smape = ifelse(
      rank(low.smape) <= 3, 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.mse = ifelse(
      rank(low.mse) <= 3, 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.rmse = ifelse(
      rank(low.rmse) <= 3, 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    close.mape = ifelse(
      rank(close.mape) <= 3, 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.smape = ifelse(
      rank(close.smape) <= 3, 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.mse = ifelse(
      rank(close.mse) <= 3, 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.rmse = ifelse(
      rank(close.rmse) <= 3, 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE))) %>% 
  kbl('html', caption = 'Comparison of Models (1 min summarised to 1 day per unit)', escape = FALSE) %>% 
  ## https://www.w3schools.com/cssref/css_colors.asp
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = 'CornflowerBlue') %>% 
  column_spec(2, background = 'DarkGrey') %>% 
  column_spec(3, background = 'LightSlateGrey') %>% 
  column_spec(4, background = 'LightGray') %>% 
  column_spec(5, background = 'Gainsboro') %>% 
  column_spec(6, background = 'LightGray') %>%   
  column_spec(7, background = 'Gainsboro') %>% 
  column_spec(8, background = 'LightGray') %>% 
  column_spec(9, background = 'Gainsboro') %>% 
  column_spec(10, background = 'LightGray') %>%   
  column_spec(11, background = 'Gainsboro') %>% 
  column_spec(12, background = 'LightGray') %>% 
  column_spec(13, background = 'Gainsboro') %>% 
  column_spec(14, background = 'LightGray') %>%   
  column_spec(15, background = 'Gainsboro') %>% 
  column_spec(16, background = 'LightGray') %>% 
  column_spec(17, background = 'Gainsboro') %>% 
  column_spec(18, background = 'LightGray') %>% 
  column_spec(19, background = 'Gainsboro') %>% 
  column_spec(20, background = 'LightGray') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kable_material(full_width = FALSE) %>% ##`full_width = FALSE` will auto adjust every single columns width to fit the table full width.
  scroll_box(width = '100%', fixed_thead = TRUE)#, height = '400px')

tb20
Comparison of Models (1 min summarised to 1 day per unit)
Model Period N open.mae open.mape open.smape open.mse open.rmse high.mae high.mape high.smape high.mse high.rmse low.mae low.mape low.smape low.mse low.rmse close.mae close.mape close.smape close.mse close.rmse
tbats dy.qt 1107360 113.9211118 (rank: 5) 99.9874339 (rank: 1) 0.0028715 (rank: 2) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9878461 (rank: 3) 0.0028743 (rank: 2) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.9890648 (rank: 3) 0.0028794 (rank: 2) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.9868906 (rank: 2) 0.0028659 (rank: 3) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
tbats dy.wk 1107360 113.9211118 (rank: 5) 99.9875357 (rank: 2) 0.0028974 (rank: 4) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9854879 (rank: 1) 0.0028844 (rank: 3) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.9866407 (rank: 1) 0.0028896 (rank: 3) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.9876367 (rank: 4) 0.0029325 (rank: 5) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
tbats dy.wk.mo 1095840 113.880531 (rank: 1) 99.988005 (rank: 3) 0.0029033 (rank: 5) 13009.6732246 (rank: 1) 114.0599545 (rank: 1) 113.8910 99.9891807 (rank: 5) 0.0028948 (rank: 5) 13012.048105 (rank: 1) 114.0703647 (rank: 1) 113.8700 99.9883727 (rank: 2) 0.0029122 (rank: 5) 13007.2785705 (rank: 1) 114.0494567 (rank: 1) 113.8805 99.9863519 (rank: 1) 0.002865 (rank: 2) 13009.670848 (rank: 1) 114.0599441 (rank: 1)
tbats dy.yr 1107360 113.9211118 (rank: 5) 99.9886429 (rank: 4) 0.0028657 (rank: 1) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9861341 (rank: 2) 0.002866 (rank: 1) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.99081 (rank: 4) 0.0028686 (rank: 1) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.9872289 (rank: 3) 0.0028559 (rank: 1) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
ts mo.1440 1107360 113.9211118 (rank: 5) 99.997698 (rank: 9) 0.0029726 (rank: 8) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9955946 (rank: 7) 0.0029629 (rank: 8) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.9961108 (rank: 6) 0.0029588 (rank: 7) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.9977861 (rank: 9) 0.0029733 (rank: 8) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
ts mo.7200 1121760 113.963099 (rank: 11) 99.9982575 (rank: 10) 0.0035016 (rank: 12) 13027.908531 (rank: 11) 114.1398639 (rank: 11) 113.9737 99.9983686 (rank: 10) 0.0034984 (rank: 12) 13030.3134205 (rank: 11) 114.1503982 (rank: 11) 113.9525 99.998993 (rank: 12) 0.0034914 (rank: 12) 13025.4911689 (rank: 11) 114.1292739 (rank: 11) 113.9631 99.9987561 (rank: 11) 0.0034996 (rank: 12) 13027.9088161 (rank: 11) 114.1398651 (rank: 11)
ts qt.1440 1107360 113.9211118 (rank: 5) 99.9959563 (rank: 8) 0.0029554 (rank: 6) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9960047 (rank: 9) 0.002956 (rank: 6) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.9961693 (rank: 7) 0.0029585 (rank: 6) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.9960002 (rank: 8) 0.0029556 (rank: 6) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
ts qt.7200 1121760 113.963099 (rank: 11) 99.9987558 (rank: 12) 0.0031508 (rank: 11) 13027.908531 (rank: 11) 114.1398639 (rank: 11) 113.9737 99.9987808 (rank: 12) 0.0031501 (rank: 11) 13030.3134205 (rank: 11) 114.1503982 (rank: 11) 113.9525 99.9989623 (rank: 11) 0.0031547 (rank: 11) 13025.4911689 (rank: 11) 114.1292739 (rank: 11) 113.9631 99.9988458 (rank: 12) 0.0031473 (rank: 11) 13027.9088161 (rank: 11) 114.1398651 (rank: 11)
ts wk.1440 1107360 113.9211118 (rank: 5) 99.9959377 (rank: 7) 0.0030953 (rank: 9) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9942862 (rank: 6) 0.0030773 (rank: 9) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.9968647 (rank: 9) 0.0030863 (rank: 9) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.995752 (rank: 6) 0.0030839 (rank: 9) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
ts wk.7200 1116000 113.9359099 (rank: 9) 99.9912623 (rank: 5) 0.0028916 (rank: 3) 13021.7754579 (rank: 9) 114.1129943 (rank: 9) 113.9465 99.9879751 (rank: 4) 0.002885 (rank: 4) 13024.1750398 (rank: 9) 114.1235078 (rank: 9) 113.9253 99.9921786 (rank: 5) 0.002901 (rank: 4) 13019.3639797 (rank: 9) 114.1024276 (rank: 9) 113.9359 99.9923293 (rank: 5) 0.0029059 (rank: 4) 13021.7759743 (rank: 9) 114.1129965 (rank: 9)
ts yr.1440 1107360 113.9211118 (rank: 5) 99.9959377 (rank: 6) 0.0029555 (rank: 7) 13018.6576187 (rank: 5) 114.0993322 (rank: 5) 113.9316 99.9959517 (rank: 8) 0.0029561 (rank: 7) 13021.0465939 (rank: 5) 114.1098006 (rank: 5) 113.9105 99.996185 (rank: 8) 0.0029592 (rank: 8) 13016.2484827 (rank: 5) 114.0887746 (rank: 5) 113.9211 99.9959783 (rank: 7) 0.0029557 (rank: 7) 13018.6550848 (rank: 5) 114.0993211 (rank: 5)
ts yr.7200 1121760 113.963099 (rank: 11) 99.998422 (rank: 11) 0.0031494 (rank: 10) 13027.908531 (rank: 11) 114.1398639 (rank: 11) 113.9737 99.9984653 (rank: 11) 0.0031489 (rank: 10) 13030.3134205 (rank: 11) 114.1503982 (rank: 11) 113.9525 99.9985694 (rank: 10) 0.0031507 (rank: 10) 13025.4911689 (rank: 11) 114.1292739 (rank: 11) 113.9631 99.9985045 (rank: 10) 0.003146 (rank: 10) 13027.9088161 (rank: 11) 114.1398651 (rank: 11)

Above table summarized the total observations with mape, smape, mse and rmse values (which is not nested summarize not daily settlement for P&L).

5.3.3.3 Daily Dataset

open.accr <- ftl3[, {
  open = open
  open.Point.Forecast = open.Point.Forecast
  .SD[, .(.N, 
          open.mae = MAE(open, open.Point.Forecast), 
          open.mape = MAPE(open, open.Point.Forecast), 
          open.smape = SMAPE(open, open.Point.Forecast), 
          open.mse = MSE(open, open.Point.Forecast), 
          open.rmse = RMSE(open, open.Point.Forecast)), 
      by={index=as_date(index)}]}, 
  by=.(Model, Period)]

high.accr <- ftl3[, {
  high = high
  high.Point.Forecast = high.Point.Forecast
  .SD[, .(.N, 
          high.mae = MAE(high, high.Point.Forecast), 
          high.mape = MAPE(high, high.Point.Forecast), 
          high.smape = SMAPE(high, high.Point.Forecast), 
          high.mse = MSE(high, high.Point.Forecast), 
          high.rmse = RMSE(high, high.Point.Forecast)), 
      by={index=as_date(index)}]}, 
  by=.(Model, Period)]

low.accr <- ftl3[, {
  low = low
  low.Point.Forecast = low.Point.Forecast
  .SD[, .(.N, 
          low.mae = MAE(low, low.Point.Forecast), 
          low.mape = MAPE(low, low.Point.Forecast), 
          low.smape = SMAPE(low, low.Point.Forecast), 
          low.mse = MSE(low, low.Point.Forecast), 
          low.rmse = RMSE(low, low.Point.Forecast)), 
      by={index=as_date(index)}]}, 
  by=.(Model, Period)]

close.accr <- ftl3[, {
  close = close
  close.Point.Forecast = close.Point.Forecast
  .SD[, .(.N, 
          close.mae = MAE(close, close.Point.Forecast), 
          close.mape = MAPE(close, close.Point.Forecast), 
          close.smape = SMAPE(close, close.Point.Forecast), 
          close.mse = MSE(close, close.Point.Forecast), 
          close.rmse = RMSE(close, close.Point.Forecast)), 
      by={index=as_date(index)}]}, 
  by=.(Model, Period)]

open.sm <- open.accr[, list(
  N = mean(N), 
  open.mae = mean(open.mae), 
  open.mape = mean(open.mape), 
  open.smape = mean(open.smape), 
  open.mse = mean(open.mse), 
  open.rmse = mean(open.rmse)), 
  by=.(Model, Period)]

high.sm <- high.accr[, list(
  N = mean(N), 
  high.mae = mean(high.mae), 
  high.mape = mean(high.mape), 
  high.smape = mean(high.smape), 
  high.mse = mean(high.mse), 
  high.rmse = mean(high.rmse)), 
  by=.(Model, Period)]

low.sm <- low.accr[, list(
  N = mean(N), 
  low.mae = mean(low.mae), 
  low.mape = mean(low.mape), 
  low.smape = mean(low.smape), 
  low.mse = mean(low.mse), 
  low.rmse = mean(low.rmse)), 
  by=.(Model, Period)]

close.sm <- close.accr[, list(
  N = mean(N), 
  close.mae = mean(close.mae), 
  close.mape = mean(close.mape), 
  close.smape = mean(close.smape), 
  close.mse = mean(close.mse), 
  close.rmse = mean(close.rmse)), 
  by=.(Model, Period)]

ftl_dat3b <- join_all(list(open.sm, high.sm, low.sm, close.sm)) %>% 
  as_tibble
tb21 <- ftl_dat3b %>% 
  dplyr::mutate(
    open.mae = ifelse(
      rank(open.mae) <= 3, 
      cell_spec(
        paste0(round(open.mae, 7), ' (rank: ', sprintf('%1.f', rank(open.mae)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mae, 7), ' (rank: ', sprintf('%1.f', rank(open.mae)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.mape = ifelse(
      rank(open.mape) <= 3, 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.smape = ifelse(
      rank(open.smape) <= 3, 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.mse = ifelse(
      rank(open.mse) <= 3, 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.rmse = ifelse(
      rank(open.rmse) <= 3, 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    high.mape = ifelse(
      rank(high.mape) <= 3, 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.smape = ifelse(
      rank(high.smape) <= 3, 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.mse = ifelse(
      rank(high.mse) <= 3, 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.rmse = ifelse(
      rank(high.rmse) <= 3, 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    low.mape = ifelse(
      rank(low.mape) <= 3, 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.smape = ifelse(
      rank(low.smape) <= 3, 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.mse = ifelse(
      rank(low.mse) <= 3, 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.rmse = ifelse(
      rank(low.rmse) <= 3, 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    close.mape = ifelse(
      rank(close.mape) <= 3, 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.smape = ifelse(
      rank(close.smape) <= 3, 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.mse = ifelse(
      rank(close.mse) <= 3, 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.rmse = ifelse(
      rank(close.rmse) <= 3, 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE))) %>% 
  kbl('html', caption = 'Comparison of Models (1 min summarised to 1 day per unit)', escape = FALSE) %>% 
  ## https://www.w3schools.com/cssref/css_colors.asp
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = 'CornflowerBlue') %>% 
  column_spec(2, background = 'DarkGrey') %>% 
  #column_spec(3, background = 'LightSlateGrey') %>% 
  column_spec(3, background = 'LightSlateGrey') %>% 
  column_spec(4, background = 'LightGray') %>% 
  column_spec(5, background = 'Gainsboro') %>% 
  column_spec(6, background = 'LightGray') %>%   
  column_spec(7, background = 'Gainsboro') %>% 
  column_spec(8, background = 'LightGray') %>% 
  column_spec(9, background = 'Gainsboro') %>% 
  column_spec(10, background = 'LightGray') %>%   
  column_spec(11, background = 'Gainsboro') %>% 
  column_spec(12, background = 'LightGray') %>% 
  column_spec(13, background = 'Gainsboro') %>% 
  column_spec(14, background = 'LightGray') %>%   
  column_spec(15, background = 'Gainsboro') %>% 
  column_spec(16, background = 'LightGray') %>% 
  column_spec(17, background = 'Gainsboro') %>% 
  column_spec(18, background = 'LightGray') %>% 
  column_spec(19, background = 'Gainsboro') %>% 
  column_spec(20, background = 'LightGray') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kable_material(full_width = FALSE) %>% ##`full_width = FALSE` will auto adjust every single columns width to fit the table full width.
  scroll_box(width = '100%', fixed_thead = TRUE)#, height = '400px')

tb21
Comparison of Models (1 min summarised to 1 day per unit)
Model Period N open.mae open.mape open.smape open.mse open.rmse high.mae high.mape high.smape high.mse high.rmse low.mae low.mape low.smape low.mse low.rmse close.mae close.mape close.smape close.mse close.rmse
ts mo.7200 1199.743 113.9568368 (rank: 11) 99.9988397 (rank: 11) 0.0038131 (rank: 12) 13026.629859 (rank: 11) 113.9571533 (rank: 11) 113.9686 99.9983353 (rank: 10) 0.0038167 (rank: 12) 13029.3024649 (rank: 11) 113.9688827 (rank: 11) 113.9453 99.9994053 (rank: 12) 0.003796 (rank: 12) 13024.0175187 (rank: 11) 113.9456627 (rank: 11) 113.9570 99.9992266 (rank: 12) 0.0038109 (rank: 12) 13026.680885 (rank: 11) 113.957357 (rank: 11)
ts qt.7200 1199.743 113.9568368 (rank: 11) 99.9991336 (rank: 12) 0.0034895 (rank: 11) 13026.629859 (rank: 11) 113.9571533 (rank: 11) 113.9686 99.9991175 (rank: 12) 0.0034921 (rank: 11) 13029.3024649 (rank: 11) 113.9688827 (rank: 11) 113.9453 99.9993155 (rank: 11) 0.0034847 (rank: 11) 13024.0175187 (rank: 11) 113.9456627 (rank: 11) 113.9570 99.9991324 (rank: 11) 0.0034838 (rank: 11) 13026.680885 (rank: 11) 113.957357 (rank: 11)
ts yr.7200 1199.743 113.9568368 (rank: 11) 99.9985722 (rank: 10) 0.0034894 (rank: 10) 13026.629859 (rank: 11) 113.9571533 (rank: 11) 113.9686 99.9985696 (rank: 11) 0.0034921 (rank: 10) 13029.3024649 (rank: 11) 113.9688827 (rank: 11) 113.9453 99.9986931 (rank: 10) 0.0034823 (rank: 10) 13024.0175187 (rank: 11) 113.9456627 (rank: 11) 113.9570 99.9985581 (rank: 10) 0.0034837 (rank: 10) 13026.680885 (rank: 11) 113.957357 (rank: 11)
tbats dy.qt 1198.442 113.9168659 (rank: 5) 99.9827217 (rank: 1) 0.0031822 (rank: 2) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.9847327 (rank: 3) 0.0031922 (rank: 2) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9837386 (rank: 3) 0.0031997 (rank: 3) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9832649 (rank: 1) 0.0031787 (rank: 3) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
tbats dy.wk 1198.442 113.9168659 (rank: 5) 99.9830175 (rank: 2) 0.0032321 (rank: 5) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.9837571 (rank: 2) 0.0031979 (rank: 3) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9814492 (rank: 1) 0.0031972 (rank: 2) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9872821 (rank: 4) 0.003283 (rank: 8) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
tbats dy.yr 1198.442 113.9168659 (rank: 5) 99.9850262 (rank: 4) 0.0031819 (rank: 1) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.983682 (rank: 1) 0.0031809 (rank: 1) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9860155 (rank: 4) 0.0031824 (rank: 1) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9834722 (rank: 3) 0.0031677 (rank: 2) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
ts mo.1440 1198.442 113.9168659 (rank: 5) 99.9919173 (rank: 9) 0.00327 (rank: 8) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.9913289 (rank: 7) 0.003271 (rank: 8) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9898799 (rank: 6) 0.0032548 (rank: 7) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9921135 (rank: 9) 0.0032685 (rank: 7) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
ts qt.1440 1198.442 113.9168659 (rank: 5) 99.9904949 (rank: 8) 0.0032559 (rank: 6) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.9913755 (rank: 9) 0.003256 (rank: 7) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9899631 (rank: 7) 0.0032544 (rank: 6) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9906295 (rank: 8) 0.0032536 (rank: 5) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
ts wk.1440 1198.442 113.9168659 (rank: 5) 99.989367 (rank: 6) 0.0033961 (rank: 9) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.9899969 (rank: 6) 0.0033679 (rank: 9) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9907161 (rank: 9) 0.003378 (rank: 9) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9890199 (rank: 6) 0.0033779 (rank: 9) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
ts wk.7200 1200.000 113.9292249 (rank: 9) 99.9870194 (rank: 5) 0.003212 (rank: 4) 13020.4113841 (rank: 9) 113.9295413 (rank: 9) 113.9409 99.9855629 (rank: 4) 0.0032014 (rank: 5) 13023.077857 (rank: 9) 113.9412477 (rank: 9) 113.9177 99.9861308 (rank: 5) 0.0032244 (rank: 4) 13017.8037415 (rank: 9) 113.9180677 (rank: 9) 113.9294 99.9884871 (rank: 5) 0.0032165 (rank: 4) 13020.4605834 (rank: 9) 113.9297373 (rank: 9)
ts yr.1440 1198.442 113.9168659 (rank: 5) 99.990482 (rank: 7) 0.003256 (rank: 7) 13017.8077239 (rank: 5) 113.9171835 (rank: 5) 113.9285 99.9913327 (rank: 8) 0.003256 (rank: 6) 13020.4670959 (rank: 5) 113.9288612 (rank: 5) 113.9054 99.9899977 (rank: 8) 0.003255 (rank: 8) 13015.200758 (rank: 5) 113.9057112 (rank: 5) 113.9171 99.9906131 (rank: 7) 0.0032538 (rank: 6) 13017.8546962 (rank: 5) 113.9173698 (rank: 5)
tbats dy.wk.mo 1196.332 113.8834162 (rank: 1) 99.9849071 (rank: 3) 0.0032018 (rank: 3) 13010.4070779 (rank: 1) 113.8837311 (rank: 1) 113.8949 99.9863293 (rank: 5) 0.0032013 (rank: 4) 13013.0251767 (rank: 1) 113.8952365 (rank: 1) 113.8720 99.9831703 (rank: 2) 0.0032375 (rank: 5) 13007.8084865 (rank: 1) 113.872291 (rank: 1) 113.8835 99.9833065 (rank: 2) 0.0031621 (rank: 1) 13010.4185766 (rank: 1) 113.8837664 (rank: 1)

Above table summarized the daily mape, smape, mse and rmse values and then summarized again the models (which is nested summarize due to daily settlement for P&L).

5.3.3.4 Comparison All Filtered Data Models

compf <- list(
  'Unfilter Overall' = ftl_dat1a, 
  'Unfilter Daily' = ftl_dat1b, 
  'from First Overall' = ftl_dat2a, 
  'from First Daily' = ftl_dat2b, 
  'from Last Oervall' = ftl_dat3a, 
  'from Last Daily' = ftl_dat3b) %>% 
    ldply %>% 
    as_tibble %>% 
    dplyr::mutate(.id = factor(.id))

rm(ftl_dat1a, ftl_dat1b, ftl_dat2a, ftl_dat3a, ftl_dat3b)
gc()
         used    (Mb) gc trigger    (Mb)   max used    (Mb)

Ncells 5965206 318.6 10942808 584.5 10942808 584.5 Vcells 2537014208 19355.9 4296816194 32782.2 3580049391 27313.7

tb22 <- compf %>% 
  dplyr::mutate(
    open.mae = ifelse(
      rank(open.mae) <= 3, 
      cell_spec(
        paste0(round(open.mae, 7), ' (rank: ', sprintf('%1.f', rank(open.mae)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mae, 7), ' (rank: ', sprintf('%1.f', rank(open.mae)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.mape = ifelse(
      rank(open.mape) <= 3, 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mape, 7), ' (rank: ', sprintf('%1.f', rank(open.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.smape = ifelse(
      rank(open.smape) <= 3, 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.smape, 7), ' (rank: ', sprintf('%1.f', rank(open.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.mse = ifelse(
      rank(open.mse) <= 3, 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.mse, 7), ' (rank: ', sprintf('%1.f', rank(open.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    open.rmse = ifelse(
      rank(open.rmse) <= 3, 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(open.rmse, 7), ' (rank: ', sprintf('%1.f', rank(open.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    high.mape = ifelse(
      rank(high.mape) <= 3, 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mape, 7), ' (rank: ', sprintf('%1.f', rank(high.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.smape = ifelse(
      rank(high.smape) <= 3, 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.smape, 7), ' (rank: ', sprintf('%1.f', rank(high.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.mse = ifelse(
      rank(high.mse) <= 3, 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.mse, 7), ' (rank: ', sprintf('%1.f', rank(high.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    high.rmse = ifelse(
      rank(high.rmse) <= 3, 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(high.rmse, 7), ' (rank: ', sprintf('%1.f', rank(high.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    low.mape = ifelse(
      rank(low.mape) <= 3, 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mape, 7), ' (rank: ', sprintf('%1.f', rank(low.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.smape = ifelse(
      rank(low.smape) <= 3, 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.smape, 7), ' (rank: ', sprintf('%1.f', rank(low.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.mse = ifelse(
      rank(low.mse) <= 3, 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.mse, 7), ' (rank: ', sprintf('%1.f', rank(low.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    low.rmse = ifelse(
      rank(low.rmse) <= 3, 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(low.rmse, 7), ' (rank: ', sprintf('%1.f', rank(low.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    
    close.mape = ifelse(
      rank(close.mape) <= 3, 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mape, 7), ' (rank: ', sprintf('%1.f', rank(close.mape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.smape = ifelse(
      rank(close.smape) <= 3, 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.smape, 7), ' (rank: ', sprintf('%1.f', rank(close.smape)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.mse = ifelse(
      rank(close.mse) <= 3, 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.mse, 7), ' (rank: ', sprintf('%1.f', rank(close.mse)), ')'), 
        'html', color = 'grey', italic = TRUE)), 
    close.rmse = ifelse(
      rank(close.rmse) <= 3, 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'darkgoldenrod', bold = TRUE), 
      cell_spec(
        paste0(round(close.rmse, 7), ' (rank: ', sprintf('%1.f', rank(close.rmse)), ')'), 
        'html', color = 'grey', italic = TRUE))) %>% 
  kbl('html', caption = 'Comparison of Models (1 min per unit)', escape = FALSE) %>% 
  ## https://www.w3schools.com/cssref/css_colors.asp
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = '#4E79A7') %>% 
  column_spec(2, background = 'CornflowerBlue') %>% 
  column_spec(3, background = 'CornflowerBlue') %>% 
  column_spec(4, background = '#5b65a7') %>% 
  #column_spec(5, background = '#A0CBE8') %>% 
  column_spec(5, background = 'LightGray') %>% 
  column_spec(6, background = 'Gainsboro') %>% 
  column_spec(7, background = 'LightGray') %>% 
  column_spec(8, background = 'Gainsboro') %>% 
  column_spec(9, background = 'LightGray') %>%   
  column_spec(10, background = 'Gainsboro') %>% 
  column_spec(11, background = 'LightGray') %>% 
  column_spec(12, background = 'Gainsboro') %>% 
  column_spec(13, background = 'LightGray') %>%   
  column_spec(14, background = 'Gainsboro') %>% 
  column_spec(15, background = 'LightGray') %>% 
  column_spec(16, background = 'Gainsboro') %>% 
  column_spec(17, background = 'LightGray') %>%   
  column_spec(18, background = 'Gainsboro') %>% 
  column_spec(19, background = 'LightGray') %>% 
  column_spec(20, background = 'Gainsboro') %>% 
  column_spec(21, background = 'LightGray') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kable_material(full_width = FALSE) %>% ##`full_width = FALSE` will auto adjust every single columns width to fit the table full width.
  scroll_box(width = '100%', fixed_thead = TRUE)#, height = '400px')

tb22
Comparison of Models (1 min per unit)
.id Model Period N open.mae open.mape open.smape open.mse open.rmse high.mae high.mape high.smape high.mse high.rmse low.mae low.mape low.smape low.mse low.rmse close.mae close.mape close.smape close.mse close.rmse
Unfilter Overall tbats dy.qt 1107360.000 113.9211118 (rank: 38) 99.9874339 (rank: 24) 0.0028715 (rank: 5) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9878461 (rank: 31) 0.0028743 (rank: 5) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.9890648 (rank: 28) 0.0028794 (rank: 5) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.9868906 (rank: 20) 0.0028659 (rank: 8) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
Unfilter Overall tbats dy.wk 1107360.000 113.9211118 (rank: 38) 99.9875357 (rank: 27) 0.0028974 (rank: 9) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9854879 (rank: 19) 0.0028844 (rank: 8) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.9866407 (rank: 21) 0.0028896 (rank: 8) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.9876367 (rank: 29) 0.0029325 (rank: 12) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
Unfilter Overall tbats dy.wk.mo 1095840.000 113.880531 (rank: 2) 99.988005 (rank: 30) 0.0029033 (rank: 12) 13009.6732246 (rank: 2) 114.0599545 (rank: 38) 113.8910 99.9891807 (rank: 35) 0.0028948 (rank: 12) 13012.048105 (rank: 2) 114.0703647 (rank: 38) 113.8700 99.9883727 (rank: 25) 0.0029122 (rank: 12) 13007.2785705 (rank: 2) 114.0494567 (rank: 38) 113.8805 99.9863519 (rank: 17) 0.002865 (rank: 5) 13009.670848 (rank: 2) 114.0599441 (rank: 38)
Unfilter Overall tbats dy.yr 1107360.000 113.9211118 (rank: 38) 99.9886429 (rank: 34) 0.0028657 (rank: 2) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9861341 (rank: 23) 0.002866 (rank: 2) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.99081 (rank: 44) 0.0028686 (rank: 2) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.9872289 (rank: 23) 0.0028559 (rank: 2) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
Unfilter Overall ts mo.1440 1107360.000 113.9211118 (rank: 38) 99.997698 (rank: 64) 0.0029726 (rank: 21) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9955946 (rank: 59) 0.0029629 (rank: 21) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.9961108 (rank: 54) 0.0029588 (rank: 18) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.9977861 (rank: 63) 0.0029733 (rank: 21) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
Unfilter Overall ts mo.7200 4024800.000 113.9506154 (rank: 55) 99.9862221 (rank: 21) 0.0065243 (rank: 63) 13025.152525 (rank: 55) 114.1277903 (rank: 64) 113.9613 99.9877541 (rank: 29) 0.0064656 (rank: 63) 13027.5778602 (rank: 55) 114.1384154 (rank: 64) 113.9399 99.9912018 (rank: 48) 0.0064556 (rank: 63) 13022.7140985 (rank: 55) 114.1171069 (rank: 64) 113.9506 99.988863 (rank: 33) 0.0065013 (rank: 63) 13025.1522625 (rank: 55) 114.1277892 (rank: 64)
Unfilter Overall ts qt.1440 1107360.000 113.9211118 (rank: 38) 99.9959563 (rank: 61) 0.0029554 (rank: 15) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9960047 (rank: 65) 0.002956 (rank: 15) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.9961693 (rank: 57) 0.0029585 (rank: 15) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.9960002 (rank: 59) 0.0029556 (rank: 15) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
Unfilter Overall ts qt.7200 4034880.000 113.9688821 (rank: 72) 99.9934976 (rank: 53) 0.0061786 (rank: 59) 13029.3483473 (rank: 72) 114.146171 (rank: 72) 113.9796 99.9933861 (rank: 54) 0.0061737 (rank: 60) 13031.7740075 (rank: 72) 114.1567957 (rank: 72) 113.9581 99.9938441 (rank: 52) 0.0061902 (rank: 59) 13026.9096587 (rank: 72) 114.1354882 (rank: 72) 113.9689 99.9935873 (rank: 50) 0.006172 (rank: 59) 13029.3481487 (rank: 72) 114.1461701 (rank: 72)
Unfilter Overall ts wk.1440 1107360.000 113.9211118 (rank: 38) 99.9959377 (rank: 58) 0.0030953 (rank: 24) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9942862 (rank: 56) 0.0030773 (rank: 24) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.9968647 (rank: 63) 0.0030863 (rank: 24) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.995752 (rank: 53) 0.0030839 (rank: 24) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
Unfilter Overall ts wk.7200 4006080.000 113.9265833 (rank: 49) 99.9886039 (rank: 32) 0.0060006 (rank: 57) 13019.7394475 (rank: 49) 114.1040729 (rank: 61) 113.9372 99.9825282 (rank: 6) 0.0059472 (rank: 57) 13022.16088 (rank: 49) 114.114683 (rank: 61) 113.9159 99.9908147 (rank: 46) 0.0060663 (rank: 57) 13017.3055576 (rank: 49) 114.0934072 (rank: 61) 113.9266 99.9971454 (rank: 61) 0.0060972 (rank: 57) 13019.7393598 (rank: 49) 114.1040725 (rank: 61)
Unfilter Overall ts yr.1440 1107360.000 113.9211118 (rank: 38) 99.9959377 (rank: 55) 0.0029555 (rank: 18) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9959517 (rank: 62) 0.0029561 (rank: 18) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.996185 (rank: 60) 0.0029592 (rank: 21) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.9959783 (rank: 56) 0.0029557 (rank: 18) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
Unfilter Overall ts yr.7200 4034880.000 113.9688821 (rank: 72) 99.9933323 (rank: 52) 0.0061776 (rank: 58) 13029.3483473 (rank: 72) 114.146171 (rank: 72) 113.9796 99.9933013 (rank: 53) 0.0061719 (rank: 59) 13031.7740075 (rank: 72) 114.1567957 (rank: 72) 113.9581 99.9936176 (rank: 51) 0.0061793 (rank: 58) 13026.9096587 (rank: 72) 114.1354882 (rank: 72) 113.9689 99.9934146 (rank: 49) 0.006171 (rank: 58) 13029.3481487 (rank: 72) 114.1461701 (rank: 72)
Unfilter Daily ts mo.7200 4304.599 113.9568357 (rank: 56) 99.9855805 (rank: 19) 0.0067014 (rank: 64) 13026.629641 (rank: 56) 113.9571521 (rank: 28) 113.9686 99.9870942 (rank: 28) 0.0066468 (rank: 64) 13029.302226 (rank: 56) 113.9688815 (rank: 28) 113.9453 99.9906476 (rank: 39) 0.0066298 (rank: 64) 13024.0173177 (rank: 56) 113.9456617 (rank: 28) 113.9570 99.988296 (rank: 31) 0.0066766 (rank: 64) 13026.6806631 (rank: 56) 113.9573559 (rank: 28)
Unfilter Daily ts qt.7200 4315.380 113.9568357 (rank: 58) 99.9910107 (rank: 46) 0.0063751 (rank: 62) 13026.6296428 (rank: 58) 113.9571522 (rank: 30) 113.9686 99.9908152 (rank: 42) 0.0063706 (rank: 62) 13029.3022289 (rank: 58) 113.9688815 (rank: 30) 113.9453 99.9914321 (rank: 49) 0.0063822 (rank: 62) 13024.0173194 (rank: 58) 113.9456617 (rank: 30) 113.9570 99.9910805 (rank: 44) 0.0063651 (rank: 62) 13026.6806654 (rank: 58) 113.9573559 (rank: 30)
Unfilter Daily ts yr.7200 4315.380 113.9568357 (rank: 58) 99.9908218 (rank: 45) 0.0063743 (rank: 61) 13026.6296428 (rank: 58) 113.9571522 (rank: 30) 113.9686 99.990712 (rank: 41) 0.006369 (rank: 61) 13029.3022289 (rank: 58) 113.9688815 (rank: 30) 113.9453 99.9911817 (rank: 47) 0.0063707 (rank: 61) 13024.0173194 (rank: 58) 113.9456617 (rank: 30) 113.9570 99.9908831 (rank: 43) 0.0063644 (rank: 61) 13026.6806654 (rank: 58) 113.9573559 (rank: 30)
Unfilter Daily tbats dy.qt 1198.442 113.9168659 (rank: 17) 99.9827217 (rank: 6) 0.0031822 (rank: 32) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.9847327 (rank: 15) 0.0031922 (rank: 32) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9837386 (rank: 12) 0.0031997 (rank: 35) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9832649 (rank: 6) 0.0031787 (rank: 35) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
Unfilter Daily tbats dy.wk 1198.442 113.9168659 (rank: 17) 99.9830175 (rank: 9) 0.0032321 (rank: 39) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.9837571 (rank: 11) 0.0031979 (rank: 35) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9814492 (rank: 3) 0.0031972 (rank: 32) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9872821 (rank: 26) 0.003283 (rank: 48) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
Unfilter Daily tbats dy.yr 1198.442 113.9168659 (rank: 17) 99.9850262 (rank: 17) 0.0031819 (rank: 29) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.983682 (rank: 8) 0.0031809 (rank: 29) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9860155 (rank: 17) 0.0031824 (rank: 29) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9834722 (rank: 12) 0.0031677 (rank: 32) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
Unfilter Daily ts mo.1440 1198.442 113.9168659 (rank: 17) 99.9919173 (rank: 50) 0.00327 (rank: 48) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.9913289 (rank: 44) 0.003271 (rank: 48) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9898799 (rank: 31) 0.0032548 (rank: 45) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9921135 (rank: 46) 0.0032685 (rank: 45) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
Unfilter Daily ts qt.1440 1198.442 113.9168659 (rank: 17) 99.9904949 (rank: 43) 0.0032559 (rank: 42) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.9913755 (rank: 50) 0.003256 (rank: 45) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9899631 (rank: 34) 0.0032544 (rank: 42) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9906295 (rank: 41) 0.0032536 (rank: 39) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
Unfilter Daily ts wk.1440 1198.442 113.9168659 (rank: 17) 99.989367 (rank: 37) 0.0033961 (rank: 51) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.9899969 (rank: 39) 0.0033679 (rank: 51) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9907161 (rank: 41) 0.003378 (rank: 51) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9890199 (rank: 35) 0.0033779 (rank: 51) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
Unfilter Daily ts wk.7200 4307.613 113.9292233 (rank: 50) 99.9858873 (rank: 20) 0.0062015 (rank: 60) 13020.4110471 (rank: 50) 113.9295397 (rank: 25) 113.9409 99.9803412 (rank: 3) 0.0061414 (rank: 58) 13023.0775024 (rank: 50) 113.941246 (rank: 25) 113.9177 99.9871864 (rank: 23) 0.0062622 (rank: 60) 13017.8034233 (rank: 50) 113.9180662 (rank: 25) 113.9294 99.9948054 (rank: 51) 0.0062949 (rank: 60) 13020.4602425 (rank: 50) 113.9297357 (rank: 25)
Unfilter Daily ts yr.1440 1198.442 113.9168659 (rank: 17) 99.990482 (rank: 40) 0.003256 (rank: 45) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.9913327 (rank: 47) 0.003256 (rank: 42) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9899977 (rank: 37) 0.003255 (rank: 48) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9906131 (rank: 38) 0.0032538 (rank: 42) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
Unfilter Daily tbats dy.wk.mo 1196.332 113.8834162 (rank: 5) 99.9849071 (rank: 14) 0.0032018 (rank: 35) 13010.4070779 (rank: 5) 113.8837311 (rank: 2) 113.8949 99.9863293 (rank: 26) 0.0032013 (rank: 38) 13013.0251767 (rank: 5) 113.8952365 (rank: 2) 113.8720 99.9831703 (rank: 9) 0.0032375 (rank: 39) 13007.8084865 (rank: 5) 113.872291 (rank: 2) 113.8835 99.9833065 (rank: 9) 0.0031621 (rank: 29) 13010.4185766 (rank: 5) 113.8837664 (rank: 2)
from First Overall tbats dy.qt 1107360.000 113.9211118 (rank: 38) 99.9874339 (rank: 24) 0.0028715 (rank: 5) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9878461 (rank: 31) 0.0028743 (rank: 5) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.9890648 (rank: 28) 0.0028794 (rank: 5) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.9868906 (rank: 20) 0.0028659 (rank: 8) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
from First Overall tbats dy.wk 1107360.000 113.9211118 (rank: 38) 99.9875357 (rank: 27) 0.0028974 (rank: 9) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9854879 (rank: 19) 0.0028844 (rank: 8) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.9866407 (rank: 21) 0.0028896 (rank: 8) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.9876367 (rank: 29) 0.0029325 (rank: 12) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
from First Overall tbats dy.wk.mo 1095840.000 113.880531 (rank: 2) 99.988005 (rank: 30) 0.0029033 (rank: 12) 13009.6732246 (rank: 2) 114.0599545 (rank: 38) 113.8910 99.9891807 (rank: 35) 0.0028948 (rank: 12) 13012.048105 (rank: 2) 114.0703647 (rank: 38) 113.8700 99.9883727 (rank: 25) 0.0029122 (rank: 12) 13007.2785705 (rank: 2) 114.0494567 (rank: 38) 113.8805 99.9863519 (rank: 17) 0.002865 (rank: 5) 13009.670848 (rank: 2) 114.0599441 (rank: 38)
from First Overall tbats dy.yr 1107360.000 113.9211118 (rank: 38) 99.9886429 (rank: 34) 0.0028657 (rank: 2) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9861341 (rank: 23) 0.002866 (rank: 2) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.99081 (rank: 44) 0.0028686 (rank: 2) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.9872289 (rank: 23) 0.0028559 (rank: 2) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
from First Overall ts mo.1440 1107360.000 113.9211118 (rank: 38) 99.997698 (rank: 64) 0.0029726 (rank: 21) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9955946 (rank: 59) 0.0029629 (rank: 21) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.9961108 (rank: 54) 0.0029588 (rank: 18) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.9977861 (rank: 63) 0.0029733 (rank: 21) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
from First Overall ts mo.7200 1121760.000 113.963099 (rank: 68) 99.9666545 (rank: 2) 0.0084935 (rank: 68) 13027.908531 (rank: 68) 114.1398639 (rank: 68) 113.9737 99.9723839 (rank: 2) 0.0083268 (rank: 68) 13030.3134205 (rank: 68) 114.1503982 (rank: 68) 113.9525 99.9821409 (rank: 7) 0.0083461 (rank: 67) 13025.4911689 (rank: 68) 114.1292739 (rank: 68) 113.9631 99.9742402 (rank: 2) 0.0084237 (rank: 67) 13027.9088161 (rank: 68) 114.1398651 (rank: 68)
from First Overall ts qt.1440 1107360.000 113.9211118 (rank: 38) 99.9959563 (rank: 61) 0.0029554 (rank: 15) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9960047 (rank: 65) 0.002956 (rank: 15) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.9961693 (rank: 57) 0.0029585 (rank: 15) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.9960002 (rank: 59) 0.0029556 (rank: 15) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
from First Overall ts qt.7200 1121760.000 113.963099 (rank: 68) 99.9846832 (rank: 12) 0.008182 (rank: 66) 13027.908531 (rank: 68) 114.1398639 (rank: 68) 113.9737 99.984587 (rank: 13) 0.0081725 (rank: 67) 13030.3134205 (rank: 68) 114.1503982 (rank: 68) 113.9525 99.9850149 (rank: 15) 0.008208 (rank: 66) 13025.4911689 (rank: 68) 114.1292739 (rank: 68) 113.9631 99.9847091 (rank: 15) 0.0081662 (rank: 66) 13027.9088161 (rank: 68) 114.1398651 (rank: 68)
from First Overall ts wk.1440 1107360.000 113.9211118 (rank: 38) 99.9959377 (rank: 58) 0.0030953 (rank: 24) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9942862 (rank: 56) 0.0030773 (rank: 24) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.9968647 (rank: 63) 0.0030863 (rank: 24) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.995752 (rank: 53) 0.0030839 (rank: 24) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
from First Overall ts wk.7200 1116000.000 113.9359099 (rank: 54) 99.9994373 (rank: 72) 0.0082716 (rank: 67) 13021.7754579 (rank: 54) 114.1129943 (rank: 62) 113.9465 99.992588 (rank: 52) 0.0080806 (rank: 65) 13024.1750398 (rank: 54) 114.1235078 (rank: 62) 113.9253 100.009432 (rank: 71) 0.0084502 (rank: 68) 13019.3639797 (rank: 54) 114.1024276 (rank: 62) 113.9359 100.0310396 (rank: 72) 0.0085153 (rank: 68) 13021.7759743 (rank: 54) 114.1129965 (rank: 62)
from First Overall ts yr.1440 1107360.000 113.9211118 (rank: 38) 99.9959377 (rank: 55) 0.0029555 (rank: 18) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9959517 (rank: 62) 0.0029561 (rank: 18) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.996185 (rank: 60) 0.0029592 (rank: 21) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.9959783 (rank: 56) 0.0029557 (rank: 18) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
from First Overall ts yr.7200 1121760.000 113.963099 (rank: 68) 99.9846711 (rank: 11) 0.0081819 (rank: 65) 13027.908531 (rank: 68) 114.1398639 (rank: 68) 113.9737 99.984812 (rank: 17) 0.0081702 (rank: 66) 13030.3134205 (rank: 68) 114.1503982 (rank: 68) 113.9525 99.9849314 (rank: 14) 0.0081821 (rank: 65) 13025.4911689 (rank: 68) 114.1292739 (rank: 68) 113.9631 99.9846938 (rank: 14) 0.0081661 (rank: 65) 13027.9088161 (rank: 68) 114.1398651 (rank: 68)
from First Daily ts mo.7200 1199.743 113.9568368 (rank: 62) 99.9595549 (rank: 1) 0.0089263 (rank: 72) 13026.629859 (rank: 62) 113.9571533 (rank: 34) 113.9686 99.9679242 (rank: 1) 0.0087206 (rank: 72) 13029.3024649 (rank: 62) 113.9688827 (rank: 34) 113.9453 99.9790867 (rank: 1) 0.0087544 (rank: 71) 13024.0175187 (rank: 62) 113.9456627 (rank: 34) 113.9570 99.9689383 (rank: 1) 0.0088472 (rank: 71) 13026.680885 (rank: 62) 113.957357 (rank: 34)
from First Daily ts qt.7200 1199.743 113.9568368 (rank: 62) 99.9814998 (rank: 4) 0.0086197 (rank: 70) 13026.629859 (rank: 62) 113.9571533 (rank: 34) 113.9686 99.9814404 (rank: 4) 0.0086026 (rank: 71) 13029.3024649 (rank: 62) 113.9688827 (rank: 34) 113.9453 99.981785 (rank: 6) 0.0086364 (rank: 70) 13024.0175187 (rank: 62) 113.9456627 (rank: 34) 113.9570 99.9815012 (rank: 4) 0.0085917 (rank: 70) 13026.680885 (rank: 62) 113.957357 (rank: 34)
from First Daily ts yr.7200 1199.743 113.9568368 (rank: 62) 99.98149 (rank: 3) 0.0086196 (rank: 69) 13026.629859 (rank: 62) 113.9571533 (rank: 34) 113.9686 99.9816167 (rank: 5) 0.0086005 (rank: 70) 13029.3024649 (rank: 62) 113.9688827 (rank: 34) 113.9453 99.9817071 (rank: 5) 0.0086142 (rank: 69) 13024.0175187 (rank: 62) 113.9456627 (rank: 34) 113.9570 99.9814885 (rank: 3) 0.0085916 (rank: 69) 13026.680885 (rank: 62) 113.957357 (rank: 34)
from First Daily tbats dy.qt 1198.442 113.9168659 (rank: 17) 99.9827217 (rank: 6) 0.0031822 (rank: 32) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.9847327 (rank: 15) 0.0031922 (rank: 32) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9837386 (rank: 12) 0.0031997 (rank: 35) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9832649 (rank: 6) 0.0031787 (rank: 35) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
from First Daily tbats dy.wk 1198.442 113.9168659 (rank: 17) 99.9830175 (rank: 9) 0.0032321 (rank: 39) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.9837571 (rank: 11) 0.0031979 (rank: 35) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9814492 (rank: 3) 0.0031972 (rank: 32) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9872821 (rank: 26) 0.003283 (rank: 48) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
from First Daily tbats dy.yr 1198.442 113.9168659 (rank: 17) 99.9850262 (rank: 17) 0.0031819 (rank: 29) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.983682 (rank: 8) 0.0031809 (rank: 29) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9860155 (rank: 17) 0.0031824 (rank: 29) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9834722 (rank: 12) 0.0031677 (rank: 32) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
from First Daily ts mo.1440 1198.442 113.9168659 (rank: 17) 99.9919173 (rank: 50) 0.00327 (rank: 48) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.9913289 (rank: 44) 0.003271 (rank: 48) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9898799 (rank: 31) 0.0032548 (rank: 45) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9921135 (rank: 46) 0.0032685 (rank: 45) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
from First Daily ts qt.1440 1198.442 113.9168659 (rank: 17) 99.9904949 (rank: 43) 0.0032559 (rank: 42) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.9913755 (rank: 50) 0.003256 (rank: 45) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9899631 (rank: 34) 0.0032544 (rank: 42) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9906295 (rank: 41) 0.0032536 (rank: 39) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
from First Daily ts wk.1440 1198.442 113.9168659 (rank: 17) 99.989367 (rank: 37) 0.0033961 (rank: 51) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.9899969 (rank: 39) 0.0033679 (rank: 51) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9907161 (rank: 41) 0.003378 (rank: 51) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9890199 (rank: 35) 0.0033779 (rank: 51) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
from First Daily ts wk.7200 1200.000 113.9292249 (rank: 52) 99.9917924 (rank: 48) 0.0087278 (rank: 71) 13020.4113841 (rank: 52) 113.9295413 (rank: 26) 113.9409 99.9893302 (rank: 37) 0.0085238 (rank: 69) 13023.077857 (rank: 52) 113.9412477 (rank: 26) 113.9177 100.0103725 (rank: 72) 0.0089514 (rank: 72) 13017.8037415 (rank: 52) 113.9180677 (rank: 26) 113.9294 100.0302948 (rank: 71) 0.0090315 (rank: 72) 13020.4605834 (rank: 52) 113.9297373 (rank: 26)
from First Daily ts yr.1440 1198.442 113.9168659 (rank: 17) 99.990482 (rank: 40) 0.003256 (rank: 45) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.9913327 (rank: 47) 0.003256 (rank: 42) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9899977 (rank: 37) 0.003255 (rank: 48) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9906131 (rank: 38) 0.0032538 (rank: 42) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
from First Daily tbats dy.wk.mo 1196.332 113.8834162 (rank: 5) 99.9849071 (rank: 14) 0.0032018 (rank: 35) 13010.4070779 (rank: 5) 113.8837311 (rank: 2) 113.8949 99.9863293 (rank: 26) 0.0032013 (rank: 38) 13013.0251767 (rank: 5) 113.8952365 (rank: 2) 113.8720 99.9831703 (rank: 9) 0.0032375 (rank: 39) 13007.8084865 (rank: 5) 113.872291 (rank: 2) 113.8835 99.9833065 (rank: 9) 0.0031621 (rank: 29) 13010.4185766 (rank: 5) 113.8837664 (rank: 2)
from Last Oervall tbats dy.qt 1107360.000 113.9211118 (rank: 38) 99.9874339 (rank: 24) 0.0028715 (rank: 5) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9878461 (rank: 31) 0.0028743 (rank: 5) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.9890648 (rank: 28) 0.0028794 (rank: 5) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.9868906 (rank: 20) 0.0028659 (rank: 8) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
from Last Oervall tbats dy.wk 1107360.000 113.9211118 (rank: 38) 99.9875357 (rank: 27) 0.0028974 (rank: 9) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9854879 (rank: 19) 0.0028844 (rank: 8) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.9866407 (rank: 21) 0.0028896 (rank: 8) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.9876367 (rank: 29) 0.0029325 (rank: 12) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
from Last Oervall tbats dy.wk.mo 1095840.000 113.880531 (rank: 2) 99.988005 (rank: 30) 0.0029033 (rank: 12) 13009.6732246 (rank: 2) 114.0599545 (rank: 38) 113.8910 99.9891807 (rank: 35) 0.0028948 (rank: 12) 13012.048105 (rank: 2) 114.0703647 (rank: 38) 113.8700 99.9883727 (rank: 25) 0.0029122 (rank: 12) 13007.2785705 (rank: 2) 114.0494567 (rank: 38) 113.8805 99.9863519 (rank: 17) 0.002865 (rank: 5) 13009.670848 (rank: 2) 114.0599441 (rank: 38)
from Last Oervall tbats dy.yr 1107360.000 113.9211118 (rank: 38) 99.9886429 (rank: 34) 0.0028657 (rank: 2) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9861341 (rank: 23) 0.002866 (rank: 2) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.99081 (rank: 44) 0.0028686 (rank: 2) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.9872289 (rank: 23) 0.0028559 (rank: 2) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
from Last Oervall ts mo.1440 1107360.000 113.9211118 (rank: 38) 99.997698 (rank: 64) 0.0029726 (rank: 21) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9955946 (rank: 59) 0.0029629 (rank: 21) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.9961108 (rank: 54) 0.0029588 (rank: 18) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.9977861 (rank: 63) 0.0029733 (rank: 21) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
from Last Oervall ts mo.7200 1121760.000 113.963099 (rank: 68) 99.9982575 (rank: 66) 0.0035016 (rank: 55) 13027.908531 (rank: 68) 114.1398639 (rank: 68) 113.9737 99.9983686 (rank: 68) 0.0034984 (rank: 55) 13030.3134205 (rank: 68) 114.1503982 (rank: 68) 113.9525 99.998993 (rank: 68) 0.0034914 (rank: 55) 13025.4911689 (rank: 68) 114.1292739 (rank: 68) 113.9631 99.9987561 (rank: 67) 0.0034996 (rank: 55) 13027.9088161 (rank: 68) 114.1398651 (rank: 68)
from Last Oervall ts qt.1440 1107360.000 113.9211118 (rank: 38) 99.9959563 (rank: 61) 0.0029554 (rank: 15) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9960047 (rank: 65) 0.002956 (rank: 15) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.9961693 (rank: 57) 0.0029585 (rank: 15) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.9960002 (rank: 59) 0.0029556 (rank: 15) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
from Last Oervall ts qt.7200 1121760.000 113.963099 (rank: 68) 99.9987558 (rank: 69) 0.0031508 (rank: 27) 13027.908531 (rank: 68) 114.1398639 (rank: 68) 113.9737 99.9987808 (rank: 71) 0.0031501 (rank: 27) 13030.3134205 (rank: 68) 114.1503982 (rank: 68) 113.9525 99.9989623 (rank: 67) 0.0031547 (rank: 27) 13025.4911689 (rank: 68) 114.1292739 (rank: 68) 113.9631 99.9988458 (rank: 68) 0.0031473 (rank: 27) 13027.9088161 (rank: 68) 114.1398651 (rank: 68)
from Last Oervall ts wk.1440 1107360.000 113.9211118 (rank: 38) 99.9959377 (rank: 58) 0.0030953 (rank: 24) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9942862 (rank: 56) 0.0030773 (rank: 24) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.9968647 (rank: 63) 0.0030863 (rank: 24) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.995752 (rank: 53) 0.0030839 (rank: 24) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
from Last Oervall ts wk.7200 1116000.000 113.9359099 (rank: 54) 99.9912623 (rank: 47) 0.0028916 (rank: 7) 13021.7754579 (rank: 54) 114.1129943 (rank: 62) 113.9465 99.9879751 (rank: 33) 0.002885 (rank: 10) 13024.1750398 (rank: 54) 114.1235078 (rank: 62) 113.9253 99.9921786 (rank: 50) 0.002901 (rank: 10) 13019.3639797 (rank: 54) 114.1024276 (rank: 62) 113.9359 99.9923293 (rank: 48) 0.0029059 (rank: 10) 13021.7759743 (rank: 54) 114.1129965 (rank: 62)
from Last Oervall ts yr.1440 1107360.000 113.9211118 (rank: 38) 99.9959377 (rank: 55) 0.0029555 (rank: 18) 13018.6576187 (rank: 38) 114.0993322 (rank: 50) 113.9316 99.9959517 (rank: 62) 0.0029561 (rank: 18) 13021.0465939 (rank: 38) 114.1098006 (rank: 50) 113.9105 99.996185 (rank: 60) 0.0029592 (rank: 21) 13016.2484827 (rank: 38) 114.0887746 (rank: 50) 113.9211 99.9959783 (rank: 56) 0.0029557 (rank: 18) 13018.6550848 (rank: 38) 114.0993211 (rank: 50)
from Last Oervall ts yr.7200 1121760.000 113.963099 (rank: 68) 99.998422 (rank: 67) 0.0031494 (rank: 26) 13027.908531 (rank: 68) 114.1398639 (rank: 68) 113.9737 99.9984653 (rank: 69) 0.0031489 (rank: 26) 13030.3134205 (rank: 68) 114.1503982 (rank: 68) 113.9525 99.9985694 (rank: 65) 0.0031507 (rank: 26) 13025.4911689 (rank: 68) 114.1292739 (rank: 68) 113.9631 99.9985045 (rank: 65) 0.003146 (rank: 26) 13027.9088161 (rank: 68) 114.1398651 (rank: 68)
from Last Daily ts mo.7200 1199.743 113.9568368 (rank: 62) 99.9988397 (rank: 70) 0.0038131 (rank: 56) 13026.629859 (rank: 62) 113.9571533 (rank: 34) 113.9686 99.9983353 (rank: 67) 0.0038167 (rank: 56) 13029.3024649 (rank: 62) 113.9688827 (rank: 34) 113.9453 99.9994053 (rank: 70) 0.003796 (rank: 56) 13024.0175187 (rank: 62) 113.9456627 (rank: 34) 113.9570 99.9992266 (rank: 70) 0.0038109 (rank: 56) 13026.680885 (rank: 62) 113.957357 (rank: 34)
from Last Daily ts qt.7200 1199.743 113.9568368 (rank: 62) 99.9991336 (rank: 71) 0.0034895 (rank: 54) 13026.629859 (rank: 62) 113.9571533 (rank: 34) 113.9686 99.9991175 (rank: 72) 0.0034921 (rank: 54) 13029.3024649 (rank: 62) 113.9688827 (rank: 34) 113.9453 99.9993155 (rank: 69) 0.0034847 (rank: 54) 13024.0175187 (rank: 62) 113.9456627 (rank: 34) 113.9570 99.9991324 (rank: 69) 0.0034838 (rank: 54) 13026.680885 (rank: 62) 113.957357 (rank: 34)
from Last Daily ts yr.7200 1199.743 113.9568368 (rank: 62) 99.9985722 (rank: 68) 0.0034894 (rank: 53) 13026.629859 (rank: 62) 113.9571533 (rank: 34) 113.9686 99.9985696 (rank: 70) 0.0034921 (rank: 53) 13029.3024649 (rank: 62) 113.9688827 (rank: 34) 113.9453 99.9986931 (rank: 66) 0.0034823 (rank: 53) 13024.0175187 (rank: 62) 113.9456627 (rank: 34) 113.9570 99.9985581 (rank: 66) 0.0034837 (rank: 53) 13026.680885 (rank: 62) 113.957357 (rank: 34)
from Last Daily tbats dy.qt 1198.442 113.9168659 (rank: 17) 99.9827217 (rank: 6) 0.0031822 (rank: 32) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.9847327 (rank: 15) 0.0031922 (rank: 32) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9837386 (rank: 12) 0.0031997 (rank: 35) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9832649 (rank: 6) 0.0031787 (rank: 35) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
from Last Daily tbats dy.wk 1198.442 113.9168659 (rank: 17) 99.9830175 (rank: 9) 0.0032321 (rank: 39) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.9837571 (rank: 11) 0.0031979 (rank: 35) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9814492 (rank: 3) 0.0031972 (rank: 32) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9872821 (rank: 26) 0.003283 (rank: 48) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
from Last Daily tbats dy.yr 1198.442 113.9168659 (rank: 17) 99.9850262 (rank: 17) 0.0031819 (rank: 29) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.983682 (rank: 8) 0.0031809 (rank: 29) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9860155 (rank: 17) 0.0031824 (rank: 29) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9834722 (rank: 12) 0.0031677 (rank: 32) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
from Last Daily ts mo.1440 1198.442 113.9168659 (rank: 17) 99.9919173 (rank: 50) 0.00327 (rank: 48) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.9913289 (rank: 44) 0.003271 (rank: 48) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9898799 (rank: 31) 0.0032548 (rank: 45) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9921135 (rank: 46) 0.0032685 (rank: 45) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
from Last Daily ts qt.1440 1198.442 113.9168659 (rank: 17) 99.9904949 (rank: 43) 0.0032559 (rank: 42) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.9913755 (rank: 50) 0.003256 (rank: 45) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9899631 (rank: 34) 0.0032544 (rank: 42) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9906295 (rank: 41) 0.0032536 (rank: 39) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
from Last Daily ts wk.1440 1198.442 113.9168659 (rank: 17) 99.989367 (rank: 37) 0.0033961 (rank: 51) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.9899969 (rank: 39) 0.0033679 (rank: 51) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9907161 (rank: 41) 0.003378 (rank: 51) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9890199 (rank: 35) 0.0033779 (rank: 51) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
from Last Daily ts wk.7200 1200.000 113.9292249 (rank: 52) 99.9870194 (rank: 22) 0.003212 (rank: 37) 13020.4113841 (rank: 52) 113.9295413 (rank: 26) 113.9409 99.9855629 (rank: 21) 0.0032014 (rank: 40) 13023.077857 (rank: 52) 113.9412477 (rank: 26) 113.9177 99.9861308 (rank: 19) 0.0032244 (rank: 37) 13017.8037415 (rank: 52) 113.9180677 (rank: 26) 113.9294 99.9884871 (rank: 32) 0.0032165 (rank: 37) 13020.4605834 (rank: 52) 113.9297373 (rank: 26)
from Last Daily ts yr.1440 1198.442 113.9168659 (rank: 17) 99.990482 (rank: 40) 0.003256 (rank: 45) 13017.8077239 (rank: 17) 113.9171835 (rank: 14) 113.9285 99.9913327 (rank: 47) 0.003256 (rank: 42) 13020.4670959 (rank: 17) 113.9288612 (rank: 14) 113.9054 99.9899977 (rank: 37) 0.003255 (rank: 48) 13015.200758 (rank: 17) 113.9057112 (rank: 14) 113.9171 99.9906131 (rank: 38) 0.0032538 (rank: 42) 13017.8546962 (rank: 17) 113.9173698 (rank: 14)
from Last Daily tbats dy.wk.mo 1196.332 113.8834162 (rank: 5) 99.9849071 (rank: 14) 0.0032018 (rank: 35) 13010.4070779 (rank: 5) 113.8837311 (rank: 2) 113.8949 99.9863293 (rank: 26) 0.0032013 (rank: 38) 13013.0251767 (rank: 5) 113.8952365 (rank: 2) 113.8720 99.9831703 (rank: 9) 0.0032375 (rank: 39) 13007.8084865 (rank: 5) 113.872291 (rank: 2) 113.8835 99.9833065 (rank: 9) 0.0031621 (rank: 29) 13010.4185766 (rank: 5) 113.8837664 (rank: 2)

6 Conclusion

6.1 Summary

From the backtest, we concludes that high-frequency-trading 1 min per unit (ETS:0.46 and auto.arima:0.69) more accurate than interday-trading 1 day per unit.

Kindl refer to section Small Mistake

To take a non-seasonal example, consider the Google stock price. The following graph shows the 200 observations ending on 6 Dec 2013, along with forecasts of the next 40 days obtained from three different methods.

source : Scaled errors & Examples

There has an function in accuracy() in tidyverts/fabletools while I saved the dataset in actual price and predicted price, here I omit but will use in future.

6.2 Future Studies

High- and Low-Frequency Correlations in European Government Bond Spreads and Their Macroeconomic Drivers introduce… suggest… DCC-MIDAS etc. Due to heavily calculation, I will put it as referenc in another studies.

Below models :

  • sarimax
  • tbats with xreg
  • fracdiff()
  • arfimax
  • High-Frequency-Trading GARCH
  • midas

7 Appendix

7.1 Blooper

7.1.1 Efficiency

Efficiency

There cost alot of time for couple models comparison.

# Test the efficiency
> dim(data_m1)
[1] 1324800       5
> microbenchmark(data_m1$index[1], tidyquant::FIRST(data_m1$index), tail(data_m1$index, 1), data_m1$index %>% .[1], data_m1$index %>% (tidyquant::FIRST), data_m1$index %>% tail(1))
Unit: microseconds
                                 expr  min    lq    mean median    uq    max neval
                     data_m1$index[1]  8.8 10.40  16.352  11.50 14.20  106.9   100
      tidyquant::FIRST(data_m1$index) 34.4 41.25 140.854  46.30 65.15 7256.6   100
               tail(data_m1$index, 1) 20.3 24.25  39.063  27.80 36.45  180.4   100
               data_m1$index %>% .[1] 12.2 14.60  23.498  15.85 18.70  229.3   100
 data_m1$index %>% (tidyquant::FIRST) 39.7 44.05  67.244  50.25 62.60  694.6   100
            data_m1$index %>% tail(1) 25.0 30.60  64.955  36.40 57.65  613.7   100

# Test the efficiency
> system.time({
+     smp <- data_m1 %>% 
+         tk_xts(silent = TRUE);
+     dt %<>% as_date;
+     smp <- smp[paste0(dt %m-% months(3) + seconds(59), '/', dt + seconds(59))];
+     
+     mts <- smp %>% 
+         msts(seasonal.periods = c(1440, nrow(smp)))
+ })
   user  system elapsed 
   0.63    0.09    1.16 
> system.time({
+     smp <- tk_xts(data_m1, silent = TRUE);
+     dt %<>% as_date;
+     smp <- smp[paste0(dt %m-% months(3) + seconds(59), '/', dt + seconds(59))];
+     
+     mts <- msts(smp, seasonal.periods = c(1440, nrow(smp)))
+ })
   user  system elapsed 
   0.16    0.06    0.42

# Test the efficiency
> microbenchmark(
+     as_tibble(matrix(weekdays(unique(na.omit(data.table(data_m1))[weekdays(index) %in% c('Saturday', 'Sunday')]$index)), byrow = TRUE, ncol = 6)), 
+     as_tibble(matrix(weekdays(as_date(data_m1$index))[weekdays(as_date(data_m1$index)) %in% c('Saturday', 'Sunday')], byrow = TRUE, ncol = 6))
+ )
Unit: seconds
                                                                                                                                               expr
 as_tibble(matrix(weekdays(unique(na.omit(data.table(data_m1))[weekdays(index) %in%      c("Saturday", "Sunday")]$index)), byrow = TRUE, ncol = 6))
    as_tibble(matrix(weekdays(as_date(data_m1$index))[weekdays(as_date(data_m1$index)) %in%      c("Saturday", "Sunday")], byrow = TRUE, ncol = 6))
       min        lq      mean    median        uq       max neval
  4.923539  5.102061  5.388813  5.368958  5.552245  6.816211   100
 10.182849 10.652719 11.118986 11.026882 11.546361 13.484108   100
## https://stackoverflow.com/questions/7014387/whats-the-difference-between-1l-and-1
microbenchmark(seq(1L, 100000000L), seq(1, 100000000), seq(1L, 1e+08), seq(1, 1e+08L), seq(1L, 10L^8L), seq(1, 10^8))
## Unit: microseconds
##                 expr min  lq  mean median  uq  max neval
##  seq(1L, 100000000L) 5.1 5.2 5.429    5.3 5.5  8.3   100
##        seq(1, 1e+08) 5.1 5.2 6.068    5.3 5.6 71.2   100
##       seq(1L, 1e+08) 5.1 5.2 5.537    5.3 5.5 15.2   100
##   seq(1, 100000000L) 5.1 5.3 5.479    5.4 5.5 10.3   100
##      seq(1L, 10L^8L) 5.4 5.6 5.769    5.7 5.8  9.1   100
##         seq(1, 10^8) 5.5 5.6 5.891    5.7 5.8 19.0   100
if(!exists('seasonal_m1')) {
  seasonal_m1 <- read_rds('data/fx/USDJPY/seasonal_m1.rds')}

## https://dtplyr.tidyverse.org for future use, otherwise need to recode and rerun.
test1 <- seasonal_m1 %>% lazy_dt()
test1 %<>% filter(index <= as_date('2017-12-31'))
test2 <- test1 %>% as.data.table()
#setkey(test2)
setkeyv(test2, c('index', 'Model', 'Period'))

## ---------------------------------------------
## data.table
microbenchmark(
  test_data.table <- test2[, {
    open = open
    open.Point.Forecast = open.Point.Forecast
    .SD[, .(.N, 
            open.mae = MAE(open, open.Point.Forecast, na.rm = TRUE), 
            open.mape = MAPE(open, open.Point.Forecast, na.rm = TRUE), 
            open.smape = SMAPE(open, open.Point.Forecast, na.rm = TRUE), 
            open.mse = MSE(open, open.Point.Forecast, na.rm = TRUE), 
            open.rmse = RMSE(open, open.Point.Forecast, na.rm = TRUE)), 
        by=.(Model, Period)]}][order(Model, Period), ], 
  ## dtplyr & dplyr
  test_dtplyr <- test1 %>% 
    #filter(index <= as_date('2017-12-31')) %>% 
    dplyr::mutate(
      open.mae = MAE(open, open.Point.Forecast, na.rm = TRUE), 
      open.mape = MAPE(open, open.Point.Forecast, na.rm = TRUE), 
      open.smape = SMAPE(open, open.Point.Forecast, na.rm = TRUE), 
      open.mse = MSE(open, open.Point.Forecast, na.rm = TRUE), 
      open.rmse = RMSE(open, open.Point.Forecast, na.rm = TRUE)) %>% 
    group_by(Model, Period) %>% 
    summarise(
      open.mae = MAE(open, open.Point.Forecast, na.rm = TRUE), 
      open.mape = MAPE(open, open.Point.Forecast, na.rm = TRUE), 
      open.smape = SMAPE(open, open.Point.Forecast, na.rm = TRUE), 
      open.mse = MSE(open, open.Point.Forecast, na.rm = TRUE), 
      open.rmse = RMSE(open, open.Point.Forecast, na.rm = TRUE)) %>% 
    as_tibble())
## output data.table
test_data.table

## output dtplyr
test_dtplyr

7.1.2 Small Mistake

Small Mistake

Here I noticed that there have transactions in Saturday and Sunday as show below when I continue R&D after 2 years from 2018 How Do Orders Execute Over The Weekend?. It is not a big problem since this paper only compare the models and choose the best fit model for high-frequency-trading.

dt_data_m1 <- na.omit(data.table(data_m1))
rm(data_m1)

## date breakdown
dtb <- as_tibble(matrix(unique(as.character(as_date(dt_data_m1$index))), byrow = TRUE, ncol = 6)) %>% dplyr::mutate_if(is.character, as_date)
dtb %>% 
  dplyr::mutate(dif = as.numeric(V1 - lag(V1))) %>% 
  dplyr::filter(dif != 7)
## # A tibble: 4 x 7
##   V1         V2         V3         V4         V5         V6           dif
##   <date>     <date>     <date>     <date>     <date>     <date>     <dbl>
## 1 2016-12-27 2016-12-28 2016-12-29 2016-12-30 2016-12-31 2017-01-01     8
## 2 2017-01-09 2017-01-10 2017-01-11 2017-01-12 2017-01-13 2017-01-14     6
## 3 2017-12-26 2017-12-27 2017-12-28 2017-12-29 2017-12-30 2017-12-31     8
## 4 2018-01-08 2018-01-09 2018-01-10 2018-01-11 2018-01-12 2018-01-13     6
## weekdays breakdown
wkb <- dtb %>% 
    dplyr::mutate_if(is.Date, weekdays) %>% dplyr::mutate_if(is.character, as.factor)
wkb %>% kbl('html', caption = 'Comparison of Models (1 min summarised to 1 day per unit)', escape = FALSE) %>% 
  ## https://www.w3schools.com/cssref/css_colors.asp
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = 'LightGray') %>% 
  column_spec(2, background = 'Gainsboro') %>% 
  column_spec(3, background = 'LightGray') %>%   
  column_spec(4, background = 'Gainsboro') %>% 
  column_spec(5, background = 'LightGray') %>% 
  column_spec(6, background = 'Gainsboro') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  kable_material(full_width = FALSE) %>% ##`full_width = FALSE` will auto adjust every single columns width to fit the table full width.
  scroll_box(width = '100%', fixed_thead = TRUE, height = '400px')
Comparison of Models (1 min summarised to 1 day per unit)
V1 V2 V3 V4 V5 V6
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Tuesday Wednesday Thursday Friday Saturday Sunday
Tuesday Wednesday Thursday Friday Saturday Sunday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Tuesday Wednesday Thursday Friday Saturday Sunday
Tuesday Wednesday Thursday Friday Saturday Sunday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
Monday Tuesday Wednesday Thursday Friday Saturday
## built weekly weekdays matrix
##matrix(weekdays(unique(as_date(data_m1$index))), ncol = 6, byrow = TRUE)

7.1.3 Unexpected Error

7.1.3.0.1 Open Price
## Due to the low precision and low accuracy, here I plot the graph and rerun the code to check the models.
if(!exists('seasonal_m1')) seasonal_m1 <- read_rds('data/fx/USDJPY/seasonal_m1.rds')
yr_2018 <- seasonal_m1[index > as_date('2017-12-31')]
saveRDS(yr_2018, 'data/fx/USDJPY/yr_2018.rds')
yr_2018 <- read_rds('data/fx/USDJPY/yr_2018.rds')
dy.qt_dy.yr_2018 <- yr_2018[Model == 'tbats' & Period %in% c('dy.qt', 'dy.yr')]

plt_s1 <- yr_2018[, {
  open = open
  open.Point.Forecast = open.Point.Forecast
  .SD[, .(.N, open.mape = MAPE(open, open.Point.Forecast), 
          open.smape = SMAPE(open, open.Point.Forecast), 
          open.mse = MSE(open, open.Point.Forecast), 
          open.rmse = RMSE(open, open.Point.Forecast)), 
      by={index=as_date(index)}]}, 
  by=.(Model, Period)]

plt_s2 <- dy.qt_dy.yr_2018[, {
  open = open
  open.Point.Forecast = open.Point.Forecast
  .SD[, .(.N, open.mape = MAPE(open, open.Point.Forecast), 
          open.smape = SMAPE(open, open.Point.Forecast), 
          open.mse = MSE(open, open.Point.Forecast), 
          open.rmse = RMSE(open, open.Point.Forecast)), 
      by={index=as_date(index)}]}, 
  by=.(Model, Period)]

## ------------------------------------------
##modify dataset
yr_2018 %<>% 
  tidyr::unite(Model, Model:Period) %>% 
  data.table
prc <- unique(yr_2018[, .(index, open, high, low, close)])
prc <- prc[, Model := 'Market.Price'][]
yr_2018 <- yr_2018[, (c('open', 'high', 'low', 'close')) := NULL]
names(yr_2018) <- c('index', 'Model', 'open', 'high', 'low', 'close')
yr_2018 <- rbind(yr_2018, prc)
yr_2018 <- data.table(yr_2018)[order(index)]
rm(prc)

mDT <- yr_2018 %>% pivot_longer(!c(index, Model), names_to = 'Variable', values_to = 'Price')

mDT %<>% 
  tidyr::unite(Model, Model:Variable) %>% 
  data.table

## ------------------------------------------
plt_s1 %>% 
  kbl('html', caption = 'Data Sample', escape = FALSE) %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>%
  scroll_box(width = '100%', fixed_thead = TRUE, height = '400px')
Data Sample
Model Period index N open.mape open.smape open.mse open.rmse
ts mo.7200 2018-01-02 4317 99.69218 0.0033509 12644.15 112.4462
ts mo.7200 2018-01-03 4320 99.85303 0.0025749 12617.14 112.3260
ts mo.7200 2018-01-04 5759 100.18557 0.0021921 12696.53 112.6789
ts mo.7200 2018-01-05 5760 100.44883 0.0044799 12781.03 113.0532
ts mo.7200 2018-01-06 4321 100.49907 0.0049769 12783.02 113.0620
ts mo.7200 2018-01-07 3 100.53915 0.0053752 12783.02 113.0620
ts mo.7200 2018-01-08 5756 100.24866 0.0028816 12797.02 113.1239
ts mo.7200 2018-01-09 5760 99.68027 0.0034349 12709.18 112.7350
ts mo.7200 2018-01-10 5760 98.95405 0.0105255 12512.95 111.8613
ts mo.7200 2018-01-11 7199 98.95124 0.0107446 12434.67 111.5109
ts mo.7200 2018-01-12 7200 98.97947 0.0103263 12368.72 111.2147
ts mo.7200 2018-01-13 5 98.80762 0.0120156 12326.11 111.0230
ts mo.7200 2018-01-15 4317 99.40652 0.0059739 12249.50 110.6774
ts mo.7200 2018-01-16 4320 99.78076 0.0033878 12255.80 110.7059
ts mo.7200 2018-01-17 4320 100.15183 0.0033194 12260.34 110.7264
ts mo.7200 2018-01-18 5759 100.42939 0.0045866 12361.74 111.1834
ts mo.7200 2018-01-19 7199 99.92377 0.0032336 12269.66 110.7685
ts mo.7200 2018-01-20 5 99.99704 0.0029962 12284.40 110.8350
ts mo.7200 2018-01-22 4317 99.80679 0.0023135 12282.58 110.8268
ts mo.7200 2018-01-23 4320 99.70035 0.0033063 12243.49 110.6503
ts mo.7200 2018-01-24 4320 99.10448 0.0090032 12023.34 109.6510
ts mo.7200 2018-01-25 5759 98.77341 0.0123797 11890.55 109.0438
ts mo.7200 2018-01-26 7199 99.01172 0.0102060 11901.33 109.0932
ts mo.7200 2018-01-27 5 98.58608 0.0142576 11800.26 108.6290
ts mo.7200 2018-01-29 4317 99.79815 0.0027820 11848.14 108.8492
ts mo.7200 2018-01-30 4320 99.81441 0.0023704 11832.26 108.7762
ts mo.7200 2018-01-31 4320 100.31606 0.0032944 11863.86 108.9214
ts mo.7200 2018-02-01 5759 100.62551 0.0062326 11975.00 109.4303
ts mo.7200 2018-02-02 7199 100.87986 0.0087599 12072.04 109.8729
ts mo.7200 2018-02-03 5 101.20941 0.0120185 12138.31 110.1740
ts mo.7200 2018-02-05 4317 100.37998 0.0053669 12076.74 109.8942
ts mo.7200 2018-02-06 4320 99.59028 0.0047887 11906.76 109.1181
ts mo.7200 2018-02-07 4320 99.87434 0.0034967 11951.00 109.3206
ts mo.7200 2018-02-08 5759 99.80500 0.0035983 11957.42 109.3500
ts mo.7200 2018-02-09 7199 99.38069 0.0064725 11846.29 108.8407
ts mo.7200 2018-02-10 5 99.34095 0.0066197 11836.57 108.7960
ts mo.7200 2018-02-12 4317 99.78140 0.0024477 11810.06 108.6741
ts mo.7200 2018-02-13 4320 99.36878 0.0064256 11665.00 108.0046
ts mo.7200 2018-02-14 4320 99.05182 0.0095377 11510.96 107.2892
ts mo.7200 2018-02-15 5759 98.45359 0.0156043 11342.69 106.5021
ts mo.7200 2018-02-16 7199 98.38137 0.0163760 11254.57 106.0876
ts mo.7200 2018-02-17 5 98.56006 0.0145400 11300.97 106.3060
ts mo.7200 2018-02-19 4317 100.02394 0.0031356 11336.73 106.4741
ts mo.7200 2018-02-20 4320 100.76306 0.0075991 11451.01 107.0094
ts mo.7200 2018-02-21 4320 101.15246 0.0114499 11577.32 107.5980
ts mo.7200 2018-02-22 5759 100.48533 0.0067573 11491.06 107.1964
ts mo.7200 2018-02-23 7199 100.00842 0.0043787 11409.03 106.8131
ts mo.7200 2018-02-24 5 99.96754 0.0040946 11425.69 106.8910
ts mo.7200 2018-02-26 4317 99.51860 0.0048605 11402.75 106.7837
ts mo.7200 2018-02-27 4320 100.15748 0.0021215 11469.21 107.0944
ts mo.7200 2018-02-28 4320 99.92896 0.0020946 11458.55 107.0446
ts mo.7200 2018-03-01 5759 99.84145 0.0028183 11389.51 106.7217
ts mo.7200 2018-03-02 7199 99.11064 0.0089460 11185.22 105.7602
ts mo.7200 2018-03-03 5 98.93004 0.0107589 11177.99 105.7260
ts mo.7200 2018-03-05 4317 99.19608 0.0081343 11175.08 105.7123
ts mo.7200 2018-03-06 4320 99.85820 0.0025748 11275.41 106.1858
ts mo.7200 2018-03-07 4320 99.57246 0.0043863 11191.63 105.7905
ts mo.7200 2018-03-08 5759 100.12962 0.0022901 11257.18 106.0999
ts mo.7200 2018-03-09 7199 101.03205 0.0102634 11391.09 106.7290
ts mo.7200 2018-03-10 5 100.99799 0.0099281 11412.33 106.8285
ts mo.7200 2018-03-12 4317 100.09784 0.0031654 11363.59 106.6001
ts mo.7200 2018-03-13 4320 99.87766 0.0035918 11385.84 106.7044
ts mo.7200 2018-03-14 4320 99.60010 0.0040105 11331.94 106.4516
ts mo.7200 2018-03-15 5759 99.54085 0.0047789 11251.41 106.0727
ts mo.7200 2018-03-16 7199 99.70889 0.0032376 11234.03 105.9907
ts mo.7200 2018-03-17 5 99.61637 0.0038460 11232.29 105.9825
ts mo.7200 2018-03-19 4317 99.69937 0.0037906 11226.19 105.9537
ts mo.7200 2018-03-20 4320 100.02451 0.0012733 11303.43 106.3176
ts mo.7200 2018-03-21 4320 100.10981 0.0015701 11310.68 106.3517
ts mo.7200 2018-03-22 5759 99.62017 0.0038069 11169.27 105.6848
ts mo.7200 2018-03-23 7199 99.15184 0.0085221 11013.36 104.9445
ts mo.7200 2018-03-24 5 98.89678 0.0110961 10969.63 104.7360
ts mo.7200 2018-03-26 4317 99.53244 0.0061022 11032.31 105.0348
ts mo.7200 2018-03-27 4320 100.21688 0.0023832 11153.99 105.6124
ts mo.7200 2018-03-28 4320 100.60573 0.0061807 11218.95 105.9196
ts mo.7200 2018-03-29 5759 101.08918 0.0108902 11356.52 106.5670
ts mo.7200 2018-03-30 7199 100.80182 0.0080503 11291.22 106.2602
ts mo.7200 2018-03-31 5 100.83534 0.0082997 11296.82 106.2865
ts mo.7200 2018-04-02 4317 99.70625 0.0031776 11282.62 106.2197
ts mo.7200 2018-04-03 4320 99.70408 0.0036456 11270.83 106.1641
ts mo.7200 2018-04-04 4320 100.02158 0.0019733 11335.18 106.4668
ts mo.7200 2018-04-05 5759 100.61976 0.0061834 11466.16 107.0802
ts mo.7200 2018-04-06 7199 100.74732 0.0076132 11492.45 107.2028
ts mo.7200 2018-04-07 5 100.54359 0.0058328 11435.74 106.9380
ts mo.7200 2018-04-09 4317 100.05202 0.0026610 11445.22 106.9823
ts mo.7200 2018-04-10 4320 99.84188 0.0019175 11457.75 107.0409
ts mo.7200 2018-04-11 4320 99.76367 0.0024416 11444.89 106.9808
ts mo.7200 2018-04-12 5759 99.87929 0.0027418 11456.53 107.0352
ts mo.7200 2018-04-13 7199 100.53398 0.0053278 11550.19 107.4718
ts mo.7200 2018-04-14 5 100.54561 0.0054394 11525.20 107.3555
ts mo.7200 2018-04-16 4317 100.20812 0.0027718 11506.89 107.2702
ts mo.7200 2018-04-17 4320 99.71752 0.0028660 11459.97 107.0513
ts mo.7200 2018-04-18 4320 99.89020 0.0022472 11496.97 107.2239
ts mo.7200 2018-04-19 5759 99.94789 0.0018547 11527.98 107.3684
ts mo.7200 2018-04-20 7199 100.30527 0.0031867 11575.10 107.5876
ts mo.7200 2018-04-21 5 100.50299 0.0050160 11586.80 107.6420
ts mo.7200 2018-04-23 4317 100.79449 0.0079066 11692.38 108.1313
ts mo.7200 2018-04-24 4320 100.95849 0.0095350 11842.73 108.8243
ts mo.7200 2018-04-25 4320 100.74645 0.0074230 11904.94 109.1097
ts mo.7200 2018-04-26 5759 100.51876 0.0057781 11949.99 109.3160
ts mo.7200 2018-04-27 7199 100.33568 0.0044024 11931.93 109.2334
ts mo.7200 2018-04-28 5 100.30945 0.0042753 11893.65 109.0580
ts mo.7200 2018-04-30 4317 100.00545 0.0010687 11929.23 109.2210
ts mo.7200 2018-05-01 4320 100.22518 0.0023154 11996.63 109.5292
ts mo.7200 2018-05-02 4320 100.33234 0.0034722 12060.18 109.8189
ts mo.7200 2018-05-03 5759 99.88038 0.0030659 11987.06 109.4854
ts mo.7200 2018-05-04 7199 99.57009 0.0043669 11899.13 109.0831
ts mo.7200 2018-05-05 5 99.74483 0.0026258 11897.68 109.0765
ts mo.7200 2018-05-07 4317 99.74551 0.0028983 11911.40 109.1394
ts mo.7200 2018-05-08 4320 99.83446 0.0016949 11891.41 109.0477
ts mo.7200 2018-05-09 4320 100.28022 0.0032412 12003.25 109.5593
ts mo.7200 2018-05-10 5759 100.36183 0.0036616 12023.21 109.6504
ts mo.7200 2018-05-11 7199 100.13643 0.0018585 11958.04 109.3528
ts mo.7200 2018-05-12 5 100.27414 0.0027364 11965.30 109.3860
ts mo.7200 2018-05-14 4317 99.87098 0.0013687 11982.15 109.4630
ts mo.7200 2018-05-15 4320 100.37901 0.0037801 12099.12 109.9960
ts mo.7200 2018-05-16 4320 100.20323 0.0031699 12151.15 110.2323
ts mo.7200 2018-05-17 5759 100.49927 0.0053436 12218.47 110.5372
ts mo.7200 2018-05-18 7199 100.87699 0.0087244 12287.93 110.8509
ts mo.7200 2018-05-19 5 100.86692 0.0086252 12266.23 110.7530
ts mo.7200 2018-05-21 4317 100.43488 0.0043609 12351.42 111.1370
ts mo.7200 2018-05-22 4320 99.97201 0.0012618 12312.95 110.9638
ts mo.7200 2018-05-23 4320 99.15937 0.0084498 12158.59 110.2660
ts mo.7200 2018-05-24 5759 98.77683 0.0123163 11998.39 109.5372
ts mo.7200 2018-05-25 7199 99.11712 0.0093094 11973.30 109.4226
ts mo.7200 2018-05-26 5 99.18127 0.0087474 11965.73 109.3880
ts mo.7200 2018-05-28 4317 99.79250 0.0027135 11978.37 109.4457
ts mo.7200 2018-05-29 4320 99.48738 0.0052185 11861.43 108.9102
ts mo.7200 2018-05-30 4320 99.51039 0.0055673 11827.26 108.7532
ts mo.7200 2018-05-31 5759 99.75318 0.0037544 11824.87 108.7422
ts mo.7200 2018-06-01 7199 100.31268 0.0044103 11932.58 109.2364
ts mo.7200 2018-06-02 5 100.57830 0.0057609 11994.41 109.5190
ts mo.7200 2018-06-04 4317 100.47061 0.0048293 12014.08 109.6088
ts mo.7200 2018-06-05 4320 100.43066 0.0043273 12054.61 109.7935
ts mo.7200 2018-06-06 4320 100.42600 0.0042493 12102.82 110.0128
ts mo.7200 2018-06-07 5759 100.34618 0.0037696 12089.86 109.9539
ts mo.7200 2018-06-08 7199 99.81694 0.0026894 11999.72 109.5432
ts mo.7200 2018-06-09 5 99.76346 0.0024197 11997.37 109.5325
ts mo.7200 2018-06-11 4317 99.87214 0.0021372 12060.77 109.8215
ts mo.7200 2018-06-12 4320 100.41000 0.0040932 12161.63 110.2798
ts mo.7200 2018-06-13 4320 100.58952 0.0058746 12214.51 110.5193
ts mo.7200 2018-06-14 5759 100.39028 0.0042818 12155.51 110.2520
ts mo.7200 2018-06-15 7199 100.53078 0.0055734 12236.36 110.6181
ts mo.7200 2018-06-16 5 100.54414 0.0055343 12246.85 110.6655
ts mo.7200 2018-06-18 4317 99.85749 0.0024989 12212.85 110.5118
ts mo.7200 2018-06-19 4320 99.34687 0.0065565 12092.22 109.9646
ts mo.7200 2018-06-20 4320 99.69947 0.0034275 12131.88 110.1448
ts mo.7200 2018-06-21 5759 100.12756 0.0029357 12174.11 110.3364
ts mo.7200 2018-06-22 7199 99.79826 0.0024075 12102.67 110.0121
ts mo.7200 2018-06-23 5 99.71554 0.0028506 12097.14 109.9870
ts mo.7200 2018-06-25 4317 99.47461 0.0052694 12011.46 109.5968
ts mo.7200 2018-06-26 4320 99.90309 0.0028360 12042.42 109.7380
ts mo.7200 2018-06-27 4320 100.15215 0.0023632 12115.29 110.0695
ts mo.7200 2018-06-28 5759 100.35844 0.0035906 12163.27 110.2872
ts mo.7200 2018-06-29 7199 100.60293 0.0060079 12244.61 110.6554
ts mo.7200 2018-06-30 5 100.59191 0.0058990 12251.83 110.6880
ts mo.7200 2018-07-02 4317 100.37831 0.0037744 12277.07 110.8019
ts mo.7200 2018-07-03 4320 100.19085 0.0023622 12275.38 110.7943
ts mo.7200 2018-07-04 4320 99.69363 0.0030695 12203.16 110.4679
ts mo.7200 2018-07-05 5759 99.85600 0.0018955 12224.79 110.5658
ts mo.7200 2018-07-06 7199 99.90416 0.0013360 12229.69 110.5879
ts mo.7200 2018-07-07 5 99.79926 0.0020101 12202.18 110.4635
ts qt.7200 2018-01-02 4317 99.69709 0.0031399 12644.15 112.4462
ts qt.7200 2018-01-03 4320 99.85243 0.0027199 12617.14 112.3260
ts qt.7200 2018-01-04 5759 100.17970 0.0021923 12696.53 112.6789
ts qt.7200 2018-01-05 5760 100.46967 0.0046826 12781.03 113.0532
ts qt.7200 2018-01-06 4321 100.52065 0.0051913 12783.02 113.0620
ts qt.7200 2018-01-07 3 100.55244 0.0055072 12783.02 113.0620
ts qt.7200 2018-01-08 5756 100.23375 0.0027781 12797.02 113.1239
ts qt.7200 2018-01-09 5760 99.69890 0.0032322 12709.18 112.7350
ts qt.7200 2018-01-10 5760 99.00012 0.0100682 12512.95 111.8613
ts qt.7200 2018-01-11 7199 98.95244 0.0107469 12434.67 111.5109
ts qt.7200 2018-01-12 7200 98.96322 0.0104913 12368.72 111.2147
ts qt.7200 2018-01-13 5 98.81137 0.0119784 12326.11 111.0230
ts qt.7200 2018-01-15 4317 99.42308 0.0057921 12249.50 110.6774
ts qt.7200 2018-01-16 4320 99.77803 0.0032260 12255.80 110.7059
ts qt.7200 2018-01-17 4320 100.14918 0.0033945 12260.34 110.7264
ts qt.7200 2018-01-18 5759 100.44566 0.0048459 12361.74 111.1834
ts qt.7200 2018-01-19 7199 99.92555 0.0033892 12269.66 110.7685
ts qt.7200 2018-01-20 5 99.98182 0.0032064 12284.40 110.8350
ts qt.7200 2018-01-22 4317 99.76442 0.0027126 12282.58 110.8268
ts qt.7200 2018-01-23 4320 99.70784 0.0032485 12243.49 110.6503
ts qt.7200 2018-01-24 4320 99.10258 0.0090232 12023.34 109.6510
ts qt.7200 2018-01-25 5759 98.82707 0.0118544 11890.55 109.0438
ts qt.7200 2018-01-26 7199 99.02405 0.0101163 11901.33 109.0932
ts qt.7200 2018-01-27 5 98.58654 0.0142531 11800.26 108.6290
ts qt.7200 2018-01-29 4317 99.76769 0.0031829 11848.14 108.8492
ts qt.7200 2018-01-30 4320 99.80881 0.0025683 11832.26 108.7762
ts qt.7200 2018-01-31 4320 100.25583 0.0028097 11863.86 108.9214
ts qt.7200 2018-02-01 5759 100.61467 0.0061250 11975.00 109.4303
ts qt.7200 2018-02-02 7199 100.86393 0.0085996 12072.04 109.8729
ts qt.7200 2018-02-03 5 101.15387 0.0114691 12138.31 110.1740
ts qt.7200 2018-02-05 4317 100.31990 0.0051111 12076.74 109.8942
ts qt.7200 2018-02-06 4320 99.58341 0.0047308 11906.76 109.1181
ts qt.7200 2018-02-07 4320 99.81378 0.0035040 11951.00 109.3206
ts qt.7200 2018-02-08 5759 99.83131 0.0035548 11957.42 109.3500
ts qt.7200 2018-02-09 7199 99.42406 0.0060681 11846.29 108.8407
ts qt.7200 2018-02-10 5 99.37883 0.0062386 11836.57 108.7960
ts qt.7200 2018-02-12 4317 99.72464 0.0028502 11810.06 108.6741
ts qt.7200 2018-02-13 4320 99.32599 0.0068226 11665.00 108.0046
ts qt.7200 2018-02-14 4320 99.02703 0.0097886 11510.96 107.2892
ts qt.7200 2018-02-15 5759 98.52365 0.0148942 11342.69 106.5021
ts qt.7200 2018-02-16 7199 98.44881 0.0156988 11254.57 106.0876
ts qt.7200 2018-02-17 5 98.63058 0.0138344 11300.97 106.3060
ts qt.7200 2018-02-19 4317 100.00326 0.0032906 11336.73 106.4741
ts qt.7200 2018-02-20 4320 100.69874 0.0069613 11451.01 107.0094
ts qt.7200 2018-02-21 4320 101.02766 0.0102152 11577.32 107.5980
ts qt.7200 2018-02-22 5759 100.33667 0.0061279 11491.06 107.1964
ts qt.7200 2018-02-23 7199 99.94063 0.0043051 11409.03 106.8131
ts qt.7200 2018-02-24 5 99.94433 0.0041025 11425.69 106.8910
ts qt.7200 2018-02-26 4317 99.58791 0.0043586 11402.75 106.7837
ts qt.7200 2018-02-27 4320 100.15614 0.0019222 11469.21 107.0944
ts qt.7200 2018-02-28 4320 100.02216 0.0019654 11458.55 107.0446
ts qt.7200 2018-03-01 5759 99.83049 0.0025290 11389.51 106.7217
ts qt.7200 2018-03-02 7199 99.06608 0.0093900 11185.22 105.7602
ts qt.7200 2018-03-03 5 98.97109 0.0103450 11177.99 105.7260
ts qt.7200 2018-03-05 4317 99.42045 0.0061172 11175.08 105.7123
ts qt.7200 2018-03-06 4320 100.03445 0.0021264 11275.41 106.1858
ts qt.7200 2018-03-07 4320 99.78508 0.0026872 11191.63 105.7905
ts qt.7200 2018-03-08 5759 100.12630 0.0018092 11257.18 106.0999
ts qt.7200 2018-03-09 7199 100.79468 0.0079127 11391.09 106.7290
ts qt.7200 2018-03-10 5 100.81372 0.0081026 11412.33 106.8285
ts qt.7200 2018-03-12 4317 100.18267 0.0034890 11363.59 106.6001
ts qt.7200 2018-03-13 4320 100.10283 0.0030209 11385.84 106.7044
ts qt.7200 2018-03-14 4320 99.85316 0.0020340 11331.94 106.4516
ts qt.7200 2018-03-15 5759 99.58752 0.0042345 11251.41 106.0727
ts qt.7200 2018-03-16 7199 99.59681 0.0041366 11234.03 105.9907
ts qt.7200 2018-03-17 5 99.51419 0.0048713 11232.29 105.9825
ts qt.7200 2018-03-19 4317 99.68920 0.0033754 11226.19 105.9537
ts qt.7200 2018-03-20 4320 100.07390 0.0019604 11303.43 106.3176
ts qt.7200 2018-03-21 4320 100.17271 0.0021275 11310.68 106.3517
ts qt.7200 2018-03-22 5759 99.64281 0.0035848 11169.27 105.6848
ts qt.7200 2018-03-23 7199 99.13825 0.0086589 11013.36 104.9445
ts qt.7200 2018-03-24 5 98.86471 0.0114206 10969.63 104.7360
ts qt.7200 2018-03-26 4317 99.55671 0.0058143 11032.31 105.0348
ts qt.7200 2018-03-27 4320 100.28985 0.0030444 11153.99 105.6124
ts qt.7200 2018-03-28 4320 100.66835 0.0067838 11218.95 105.9196
ts qt.7200 2018-03-29 5759 101.07874 0.0108697 11356.52 106.5670
ts qt.7200 2018-03-30 7199 100.73952 0.0082007 11291.22 106.2602
ts qt.7200 2018-03-31 5 100.71226 0.0079985 11296.82 106.2865
ts qt.7200 2018-04-02 4317 99.64731 0.0036608 11282.62 106.2197
ts qt.7200 2018-04-03 4320 99.73960 0.0034310 11270.83 106.1641
ts qt.7200 2018-04-04 4320 100.03043 0.0019659 11335.18 106.4668
ts qt.7200 2018-04-05 5759 100.64503 0.0064236 11466.16 107.0802
ts qt.7200 2018-04-06 7199 100.78120 0.0081172 11492.45 107.2028
ts qt.7200 2018-04-07 5 100.50100 0.0061705 11435.74 106.9380
ts qt.7200 2018-04-09 4317 99.94762 0.0030721 11445.22 106.9823
ts qt.7200 2018-04-10 4320 99.82469 0.0022822 11457.75 107.0409
ts qt.7200 2018-04-11 4320 99.84968 0.0017980 11444.89 106.9808
ts qt.7200 2018-04-12 5759 100.01985 0.0023943 11456.53 107.0352
ts qt.7200 2018-04-13 7199 100.56967 0.0056776 11550.19 107.4718
ts qt.7200 2018-04-14 5 100.48234 0.0048098 11525.20 107.3555
ts qt.7200 2018-04-16 4317 100.12923 0.0025859 11506.89 107.2702
ts qt.7200 2018-04-17 4320 99.66144 0.0033948 11459.97 107.0513
ts qt.7200 2018-04-18 4320 99.93273 0.0022202 11496.97 107.2239
ts qt.7200 2018-04-19 5759 100.10544 0.0020279 11527.98 107.3684
ts qt.7200 2018-04-20 7199 100.42088 0.0042329 11575.10 107.5876
ts qt.7200 2018-04-21 5 100.52146 0.0051994 11586.80 107.6420
ts qt.7200 2018-04-23 4317 100.71324 0.0071008 11692.38 108.1313
ts qt.7200 2018-04-24 4320 100.80531 0.0081329 11842.73 108.8243
ts qt.7200 2018-04-25 4320 100.62398 0.0062107 11904.94 109.1097
ts qt.7200 2018-04-26 5759 100.59479 0.0061126 11949.99 109.3160
ts qt.7200 2018-04-27 7199 100.49809 0.0051897 11931.93 109.2334
ts qt.7200 2018-04-28 5 100.40447 0.0046125 11893.65 109.0580
ts qt.7200 2018-04-30 4317 99.95184 0.0012239 11929.23 109.2210
ts qt.7200 2018-05-01 4320 100.14001 0.0016989 11996.63 109.5292
ts qt.7200 2018-05-02 4320 100.24526 0.0027104 12060.18 109.8189
ts qt.7200 2018-05-03 5759 99.87409 0.0026097 11987.06 109.4854
ts qt.7200 2018-05-04 7199 99.69013 0.0032091 11899.13 109.0831
ts qt.7200 2018-05-05 5 99.79840 0.0023116 11897.68 109.0765
ts qt.7200 2018-05-07 4317 99.77499 0.0026822 11911.40 109.1394
ts qt.7200 2018-05-08 4320 99.81576 0.0018807 11891.41 109.0477
ts qt.7200 2018-05-09 4320 100.28318 0.0032714 12003.25 109.5593
ts qt.7200 2018-05-10 5759 100.29048 0.0030715 12023.21 109.6504
ts qt.7200 2018-05-11 7199 100.13076 0.0017270 11958.04 109.3528
ts qt.7200 2018-05-12 5 100.26896 0.0026850 11965.30 109.3860
ts qt.7200 2018-05-14 4317 99.95499 0.0010189 11982.15 109.4630
ts qt.7200 2018-05-15 4320 100.38613 0.0038515 12099.12 109.9960
ts qt.7200 2018-05-16 4320 100.25429 0.0033181 12151.15 110.2323
ts qt.7200 2018-05-17 5759 100.45613 0.0048530 12218.47 110.5372
ts qt.7200 2018-05-18 7199 100.76338 0.0075980 12287.93 110.8509
ts qt.7200 2018-05-19 5 100.77711 0.0077347 12266.23 110.7530
ts qt.7200 2018-05-21 4317 100.45353 0.0045217 12351.42 111.1370
ts qt.7200 2018-05-22 4320 100.00090 0.0013130 12312.95 110.9638
ts qt.7200 2018-05-23 4320 99.24936 0.0075417 12158.59 110.2660
ts qt.7200 2018-05-24 5759 98.81404 0.0119402 11998.39 109.5372
ts qt.7200 2018-05-25 7199 99.10279 0.0096347 11973.30 109.4226
ts qt.7200 2018-05-26 5 99.18536 0.0090480 11965.73 109.3880
ts qt.7200 2018-05-28 4317 99.82551 0.0024779 11978.37 109.4457
ts qt.7200 2018-05-29 4320 99.50852 0.0049951 11861.43 108.9102
ts qt.7200 2018-05-30 4320 99.52110 0.0053635 11827.26 108.7532
ts qt.7200 2018-05-31 5759 99.67012 0.0039198 11824.87 108.7422
ts qt.7200 2018-06-01 7199 100.25192 0.0042382 11932.58 109.2364
ts qt.7200 2018-06-02 5 100.59006 0.0058775 11994.41 109.5190
ts qt.7200 2018-06-04 4317 100.48637 0.0049631 12014.08 109.6088
ts qt.7200 2018-06-05 4320 100.37880 0.0039604 12054.61 109.7935
ts qt.7200 2018-06-06 4320 100.29344 0.0029291 12102.82 110.0128
ts qt.7200 2018-06-07 5759 100.20327 0.0024602 12089.86 109.9539
ts qt.7200 2018-06-08 7199 99.82277 0.0022453 11999.72 109.5432
ts qt.7200 2018-06-09 5 99.84633 0.0015882 11997.37 109.5325
ts qt.7200 2018-06-11 4317 99.92250 0.0021802 12060.77 109.8215
ts qt.7200 2018-06-12 4320 100.41388 0.0041297 12161.63 110.2798
ts qt.7200 2018-06-13 4320 100.46100 0.0046082 12214.51 110.5193
ts qt.7200 2018-06-14 5759 100.24281 0.0031705 12155.51 110.2520
ts qt.7200 2018-06-15 7199 100.51047 0.0052462 12236.36 110.6181
ts qt.7200 2018-06-16 5 100.58121 0.0057901 12246.85 110.6655
ts qt.7200 2018-06-18 4317 99.88359 0.0023974 12212.85 110.5118
ts qt.7200 2018-06-19 4320 99.34543 0.0065743 12092.22 109.9646
ts qt.7200 2018-06-20 4320 99.66995 0.0037448 12131.88 110.1448
ts qt.7200 2018-06-21 5759 100.02273 0.0028325 12174.11 110.3364
ts qt.7200 2018-06-22 7199 99.79454 0.0024985 12102.67 110.0121
ts qt.7200 2018-06-23 5 99.78144 0.0024194 12097.14 109.9870
ts qt.7200 2018-06-25 4317 99.46753 0.0053405 12011.46 109.5968
ts qt.7200 2018-06-26 4320 99.82303 0.0027089 12042.42 109.7380
ts qt.7200 2018-06-27 4320 100.10962 0.0021201 12115.29 110.0695
ts qt.7200 2018-06-28 5759 100.35146 0.0035300 12163.27 110.2872
ts qt.7200 2018-06-29 7199 100.60656 0.0060515 12244.61 110.6554
ts qt.7200 2018-06-30 5 100.62822 0.0062593 12251.83 110.6880
ts qt.7200 2018-07-02 4317 100.28749 0.0028838 12277.07 110.8019
ts qt.7200 2018-07-03 4320 100.11684 0.0018628 12275.38 110.7943
ts qt.7200 2018-07-04 4320 99.74075 0.0025968 12203.16 110.4679
ts qt.7200 2018-07-05 5759 99.95833 0.0014685 12224.79 110.5658
ts qt.7200 2018-07-06 7199 99.96261 0.0011957 12229.69 110.5879
ts qt.7200 2018-07-07 5 99.84297 0.0016745 12202.18 110.4635
ts wk.7200 2018-01-02 4317 99.73595 0.0029020 12644.15 112.4462
ts wk.7200 2018-01-03 4320 99.68579 0.0031473 12617.14 112.3260
ts wk.7200 2018-01-04 5759 99.99898 0.0007262 12696.53 112.6789
ts wk.7200 2018-01-05 5760 100.33109 0.0033042 12781.03 113.0532
ts wk.7200 2018-01-06 4321 100.33901 0.0033844 12783.02 113.0620
ts wk.7200 2018-01-07 3 100.33901 0.0033844 12783.02 113.0620
ts wk.7200 2018-01-08 5756 100.40661 0.0040576 12797.02 113.1239
ts wk.7200 2018-01-09 5760 99.96713 0.0018528 12709.18 112.7350
ts wk.7200 2018-01-10 5760 99.17211 0.0083686 12512.95 111.8613
ts wk.7200 2018-01-11 7199 99.12020 0.0093169 12434.67 111.5109
ts wk.7200 2018-01-12 7200 99.08680 0.0093285 12368.72 111.2147
ts wk.7200 2018-01-13 5 98.93106 0.0107685 12326.11 111.0230
ts wk.7200 2018-01-15 4317 99.49541 0.0051020 12249.50 110.6774
ts wk.7200 2018-01-16 4320 99.78970 0.0032257 12255.80 110.7059
ts wk.7200 2018-01-17 4320 100.04874 0.0025740 12260.34 110.7264
ts wk.7200 2018-01-18 5759 100.32194 0.0038357 12361.74 111.1834
ts wk.7200 2018-01-19 7199 99.89672 0.0030106 12269.66 110.7685
ts wk.7200 2018-01-20 5 99.95678 0.0028765 12284.40 110.8350
ts wk.7200 2018-01-22 4317 99.77330 0.0025667 12282.58 110.8268
ts wk.7200 2018-01-23 4320 99.72480 0.0030762 12243.49 110.6503
ts wk.7200 2018-01-24 4320 99.06256 0.0094291 12023.34 109.6510
ts wk.7200 2018-01-25 5759 98.84401 0.0117655 11890.55 109.0438
ts wk.7200 2018-01-26 7199 99.05162 0.0100564 11901.33 109.0932
ts wk.7200 2018-01-27 5 98.63088 0.0138059 11800.26 108.6290
ts wk.7200 2018-01-29 4317 99.77978 0.0035690 11848.14 108.8492
ts wk.7200 2018-01-30 4320 99.79572 0.0030590 11832.26 108.7762
ts wk.7200 2018-01-31 4320 100.12243 0.0019788 11863.86 108.9214
ts wk.7200 2018-02-01 5759 100.49552 0.0049472 11975.00 109.4303
ts wk.7200 2018-02-02 7199 100.80824 0.0080463 12072.04 109.8729
ts wk.7200 2018-02-03 5 101.08494 0.0107876 12138.31 110.1740
ts wk.7200 2018-02-05 4317 100.27853 0.0045695 12076.74 109.8942
ts wk.7200 2018-02-06 4320 99.60784 0.0048055 11906.76 109.1181
ts wk.7200 2018-02-07 4320 99.74294 0.0041547 11951.00 109.3206
ts wk.7200 2018-02-08 5759 99.83269 0.0039843 11957.42 109.3500
ts wk.7200 2018-02-09 7199 99.51192 0.0055244 11846.29 108.8407
ts wk.7200 2018-02-10 5 99.47139 0.0054995 11836.57 108.7960
ts wk.7200 2018-02-12 4317 99.74271 0.0026431 11810.06 108.6741
ts wk.7200 2018-02-13 4320 99.32926 0.0067965 11665.00 108.0046
ts wk.7200 2018-02-14 4320 98.95202 0.0105498 11510.96 107.2892
ts wk.7200 2018-02-15 5759 98.55090 0.0146205 11342.69 106.5021
ts wk.7200 2018-02-16 7199 98.52487 0.0150885 11254.57 106.0876
ts wk.7200 2018-02-17 5 98.72807 0.0134879 11300.97 106.3060
ts wk.7200 2018-02-19 4317 99.99205 0.0033642 11336.73 106.4741
ts wk.7200 2018-02-20 4320 100.62531 0.0062331 11451.01 107.0094
ts wk.7200 2018-02-21 4320 100.80366 0.0080029 11577.32 107.5980
ts wk.7200 2018-02-22 5759 100.18591 0.0054586 11491.06 107.1964
ts wk.7200 2018-02-23 7199 99.87337 0.0043349 11409.03 106.8131
ts wk.7200 2018-02-24 5 99.94632 0.0043771 11425.69 106.8910
ts wk.7200 2018-02-26 4317 99.66902 0.0042105 11402.75 106.7837
ts wk.7200 2018-02-27 4320 100.22200 0.0023124 11469.21 107.0944
ts wk.7200 2018-02-28 4320 99.99535 0.0024757 11458.55 107.0446
ts wk.7200 2018-03-01 5759 99.78055 0.0027681 11389.51 106.7217
ts wk.7200 2018-03-02 7199 99.01653 0.0098976 11185.22 105.7602
ts wk.7200 2018-03-03 5 98.98495 0.0102079 11177.99 105.7260
ts wk.7200 2018-03-05 4317 99.53133 0.0053556 11175.08 105.7123
ts wk.7200 2018-03-06 4320 100.12220 0.0021583 11275.41 106.1858
ts wk.7200 2018-03-07 4320 99.77854 0.0028919 11191.63 105.7905
ts wk.7200 2018-03-08 5759 100.05850 0.0014625 11257.18 106.0999
ts wk.7200 2018-03-09 7199 100.61732 0.0061549 11391.09 106.7290
ts wk.7200 2018-03-10 5 100.71119 0.0070852 11412.33 106.8285
ts wk.7200 2018-03-12 4317 100.21279 0.0036149 11363.59 106.6001
ts wk.7200 2018-03-13 4320 100.20215 0.0032979 11385.84 106.7044
ts wk.7200 2018-03-14 4320 99.85325 0.0019809 11331.94 106.4516
ts wk.7200 2018-03-15 5759 99.56437 0.0043751 11251.41 106.0727
ts wk.7200 2018-03-16 7199 99.52342 0.0047845 11234.03 105.9907
ts wk.7200 2018-03-17 5 99.51591 0.0048542 11232.29 105.9825
ts wk.7200 2018-03-19 4317 99.75276 0.0027815 11226.19 105.9537
ts wk.7200 2018-03-20 4320 100.16658 0.0022410 11303.43 106.3176
ts wk.7200 2018-03-21 4320 100.13934 0.0025950 11310.68 106.3517
ts wk.7200 2018-03-22 5759 99.54778 0.0045670 11169.27 105.6848
ts wk.7200 2018-03-23 7199 99.01627 0.0098977 11013.36 104.9445
ts wk.7200 2018-03-24 5 98.81970 0.0118803 10969.63 104.7360
ts wk.7200 2018-03-26 4317 99.69824 0.0050090 11032.31 105.0348
ts wk.7200 2018-03-27 4320 100.44844 0.0044786 11153.99 105.6124
ts wk.7200 2018-03-28 4320 100.72115 0.0071894 11218.95 105.9196
ts wk.7200 2018-03-29 5759 100.93683 0.0106383 11356.52 106.5670
ts wk.7200 2018-03-30 7199 100.48493 0.0077002 11291.22 106.2602
ts wk.7200 2018-03-31 5 100.50979 0.0077226 11296.82 106.2865
ts wk.7200 2018-04-02 4317 99.71560 0.0030186 11282.62 106.2197
ts wk.7200 2018-04-03 4320 99.96283 0.0028106 11270.83 106.1641
ts wk.7200 2018-04-04 4320 100.19212 0.0031160 11335.18 106.4668
ts wk.7200 2018-04-05 5759 100.64725 0.0064563 11466.16 107.0802
ts wk.7200 2018-04-06 7199 100.57657 0.0064269 11492.45 107.2028
ts wk.7200 2018-04-07 5 100.32814 0.0049267 11435.74 106.9380
ts wk.7200 2018-04-09 4317 99.95258 0.0022032 11445.22 106.9823
ts wk.7200 2018-04-10 4320 100.00928 0.0025113 11457.75 107.0409
ts wk.7200 2018-04-11 4320 100.00911 0.0017514 11444.89 106.9808
ts wk.7200 2018-04-12 5759 100.10178 0.0021031 11456.53 107.0352
ts wk.7200 2018-04-13 7199 100.43632 0.0043735 11550.19 107.4718
ts wk.7200 2018-04-14 5 100.32767 0.0032692 11525.20 107.3555
ts wk.7200 2018-04-16 4317 100.10687 0.0022862 11506.89 107.2702
ts wk.7200 2018-04-17 4320 99.80105 0.0020176 11459.97 107.0513
ts wk.7200 2018-04-18 4320 100.06004 0.0014952 11496.97 107.2239
ts wk.7200 2018-04-19 5759 100.17682 0.0018722 11527.98 107.3684
ts wk.7200 2018-04-20 7199 100.34597 0.0034526 11575.10 107.5876
ts wk.7200 2018-04-21 5 100.39670 0.0039583 11586.80 107.6420
ts wk.7200 2018-04-23 4317 100.66588 0.0066302 11692.38 108.1313
ts wk.7200 2018-04-24 4320 100.85507 0.0085284 11842.73 108.8243
ts wk.7200 2018-04-25 4320 100.61202 0.0061074 11904.94 109.1097
ts wk.7200 2018-04-26 5759 100.43550 0.0063998 11949.99 109.3160
ts wk.7200 2018-04-27 7199 100.11891 0.0067061 11931.93 109.2334
ts wk.7200 2018-04-28 5 99.88049 0.0077598 11893.65 109.0580
ts wk.7200 2018-04-30 4317 99.30357 0.0081280 11929.23 109.2210
ts wk.7200 2018-05-01 4320 100.26979 0.0027886 11996.63 109.5292
ts wk.7200 2018-05-02 4320 100.36386 0.0039844 12060.18 109.8189
ts wk.7200 2018-05-03 5759 99.96389 0.0032506 11987.06 109.4854
ts wk.7200 2018-05-04 7199 99.65722 0.0036272 11899.13 109.0831
ts wk.7200 2018-05-05 5 99.65123 0.0035662 11897.68 109.0765
ts wk.7200 2018-05-07 4317 99.79081 0.0028476 11911.40 109.1394
ts wk.7200 2018-05-08 4320 99.93221 0.0010101 11891.41 109.0477
ts wk.7200 2018-05-09 4320 100.42109 0.0042900 12003.25 109.5593
ts wk.7200 2018-05-10 5759 100.35688 0.0041143 12023.21 109.6504
ts wk.7200 2018-05-11 7199 100.05940 0.0022488 11958.04 109.3528
ts wk.7200 2018-05-12 5 100.08976 0.0022508 11965.30 109.3860
ts wk.7200 2018-05-14 4317 99.95743 0.0015834 11982.15 109.4630
ts wk.7200 2018-05-15 4320 100.46879 0.0046740 12099.12 109.9960
ts wk.7200 2018-05-16 4320 100.39556 0.0046503 12151.15 110.2323
ts wk.7200 2018-05-17 5759 100.53666 0.0056422 12218.47 110.5372
ts wk.7200 2018-05-18 7199 100.67312 0.0067645 12287.93 110.8509
ts wk.7200 2018-05-19 5 100.58416 0.0058596 12266.23 110.7530
ts wk.7200 2018-05-21 4317 100.45091 0.0044968 12351.42 111.1370
ts wk.7200 2018-05-22 4320 100.09629 0.0015218 12312.95 110.9638
ts wk.7200 2018-05-23 4320 99.42662 0.0058516 12158.59 110.2660
ts wk.7200 2018-05-24 5759 98.95326 0.0105305 11998.39 109.5372
ts wk.7200 2018-05-25 7199 99.11066 0.0095841 11973.30 109.4226
ts wk.7200 2018-05-26 5 99.07953 0.0097539 11965.73 109.3880
ts wk.7200 2018-05-28 4317 99.88305 0.0027899 11978.37 109.4457
ts wk.7200 2018-05-29 4320 99.59418 0.0042310 11861.43 108.9102
ts wk.7200 2018-05-30 4320 99.59961 0.0044173 11827.26 108.7532
ts wk.7200 2018-05-31 5759 99.65420 0.0036322 11824.87 108.7422
ts wk.7200 2018-06-01 7199 100.16201 0.0032672 11932.58 109.2364
ts wk.7200 2018-06-02 5 100.42150 0.0042028 11994.41 109.5190
ts wk.7200 2018-06-04 4317 100.48363 0.0048676 12014.08 109.6088
ts wk.7200 2018-06-05 4320 100.37574 0.0040345 12054.61 109.7935
ts wk.7200 2018-06-06 4320 100.27792 0.0027755 12102.82 110.0128
ts wk.7200 2018-06-07 5759 100.11607 0.0023768 12089.86 109.9539
ts wk.7200 2018-06-08 7199 99.76469 0.0026922 11999.72 109.5432
ts wk.7200 2018-06-09 5 99.75503 0.0025040 11997.37 109.5325
ts wk.7200 2018-06-11 4317 100.01475 0.0028953 12060.77 109.8215
ts wk.7200 2018-06-12 4320 100.47751 0.0047646 12161.63 110.2798
ts wk.7200 2018-06-13 4320 100.49143 0.0049077 12214.51 110.5193
ts wk.7200 2018-06-14 5759 100.16559 0.0030640 12155.51 110.2520
ts wk.7200 2018-06-15 7199 100.39596 0.0041175 12236.36 110.6181
ts wk.7200 2018-06-16 5 100.43899 0.0043744 12246.85 110.6655
ts wk.7200 2018-06-18 4317 99.96830 0.0013707 12212.85 110.5118
ts wk.7200 2018-06-19 4320 99.41113 0.0059115 12092.22 109.9646
ts wk.7200 2018-06-20 4320 99.74724 0.0031010 12131.88 110.1448
ts wk.7200 2018-06-21 5759 99.93526 0.0025716 12174.11 110.3364
ts wk.7200 2018-06-22 7199 99.71823 0.0030877 12102.67 110.0121
ts wk.7200 2018-06-23 5 99.69553 0.0030570 12097.14 109.9870
ts wk.7200 2018-06-25 4317 99.53362 0.0046779 12011.46 109.5968
ts wk.7200 2018-06-26 4320 99.84137 0.0023098 12042.42 109.7380
ts wk.7200 2018-06-27 4320 100.12836 0.0020401 12115.29 110.0695
ts wk.7200 2018-06-28 5759 100.25040 0.0026625 12163.27 110.2872
ts wk.7200 2018-06-29 7199 100.49676 0.0049710 12244.61 110.6554
ts wk.7200 2018-06-30 5 100.52639 0.0052475 12251.83 110.6880
ts wk.7200 2018-07-02 4317 100.28921 0.0028934 12277.07 110.8019
ts wk.7200 2018-07-03 4320 100.09108 0.0018262 12275.38 110.7943
ts wk.7200 2018-07-04 4320 99.77085 0.0022963 12203.16 110.4679
ts wk.7200 2018-07-05 5759 99.90743 0.0014631 12224.79 110.5658
ts wk.7200 2018-07-06 7199 99.93165 0.0012721 12229.69 110.5879
ts wk.7200 2018-07-07 5 99.81924 0.0018099 12202.18 110.4635
ts yr.7200 2018-01-02 4317 99.69680 0.0031437 12644.15 112.4462
ts yr.7200 2018-01-03 4320 99.85377 0.0027337 12617.14 112.3260
ts yr.7200 2018-01-04 5759 100.18309 0.0022268 12696.53 112.6789
ts yr.7200 2018-01-05 5760 100.48270 0.0048122 12781.03 113.0532
ts yr.7200 2018-01-06 4321 100.53865 0.0053704 12783.02 113.0620
ts yr.7200 2018-01-07 3 100.56573 0.0056395 12783.02 113.0620
ts yr.7200 2018-01-08 5756 100.25852 0.0028995 12797.02 113.1239
ts yr.7200 2018-01-09 5760 99.72462 0.0030360 12709.18 112.7350
ts yr.7200 2018-01-10 5760 99.01792 0.0098884 12512.95 111.8613
ts yr.7200 2018-01-11 7199 98.96889 0.0105861 12434.67 111.5109
ts yr.7200 2018-01-12 7200 98.97159 0.0104081 12368.72 111.2147
ts yr.7200 2018-01-13 5 98.81626 0.0119286 12326.11 111.0230
ts yr.7200 2018-01-15 4317 99.42438 0.0057783 12249.50 110.6774
ts yr.7200 2018-01-16 4320 99.77956 0.0032411 12255.80 110.7059
ts yr.7200 2018-01-17 4320 100.14701 0.0034014 12260.34 110.7264
ts yr.7200 2018-01-18 5759 100.44481 0.0048263 12361.74 111.1834
ts yr.7200 2018-01-19 7199 99.92902 0.0033579 12269.66 110.7685
ts yr.7200 2018-01-20 5 99.97709 0.0031831 12284.40 110.8350
ts yr.7200 2018-01-22 4317 99.77353 0.0026426 12282.58 110.8268
ts yr.7200 2018-01-23 4320 99.71448 0.0031962 12243.49 110.6503
ts yr.7200 2018-01-24 4320 99.10233 0.0090256 12023.34 109.6510
ts yr.7200 2018-01-25 5759 98.82623 0.0118608 11890.55 109.0438
ts yr.7200 2018-01-26 7199 99.02328 0.0101163 11901.33 109.0932
ts yr.7200 2018-01-27 5 98.58234 0.0142956 11800.26 108.6290
ts yr.7200 2018-01-29 4317 99.76643 0.0032286 11848.14 108.8492
ts yr.7200 2018-01-30 4320 99.80814 0.0025927 11832.26 108.7762
ts yr.7200 2018-01-31 4320 100.25278 0.0027937 11863.86 108.9214
ts yr.7200 2018-02-01 5759 100.61241 0.0061025 11975.00 109.4303
ts yr.7200 2018-02-02 7199 100.86409 0.0086004 12072.04 109.8729
ts yr.7200 2018-02-03 5 101.15167 0.0114473 12138.31 110.1740
ts yr.7200 2018-02-05 4317 100.32326 0.0050937 12076.74 109.8942
ts yr.7200 2018-02-06 4320 99.59008 0.0046888 11906.76 109.1181
ts yr.7200 2018-02-07 4320 99.81353 0.0035208 11951.00 109.3206
ts yr.7200 2018-02-08 5759 99.83674 0.0035565 11957.42 109.3500
ts yr.7200 2018-02-09 7199 99.43153 0.0060149 11846.29 108.8407
ts yr.7200 2018-02-10 5 99.37686 0.0062585 11836.57 108.7960
ts yr.7200 2018-02-12 4317 99.73580 0.0027566 11810.06 108.6741
ts yr.7200 2018-02-13 4320 99.33333 0.0067550 11665.00 108.0046
ts yr.7200 2018-02-14 4320 99.02865 0.0097723 11510.96 107.2892
ts yr.7200 2018-02-15 5759 98.52698 0.0148604 11342.69 106.5021
ts yr.7200 2018-02-16 7199 98.45242 0.0156663 11254.57 106.0876
ts yr.7200 2018-02-17 5 98.62658 0.0138676 11300.97 106.3060
ts yr.7200 2018-02-19 4317 100.00929 0.0033302 11336.73 106.4741
ts yr.7200 2018-02-20 4320 100.70421 0.0070156 11451.01 107.0094
ts yr.7200 2018-02-21 4320 101.03132 0.0102515 11577.32 107.5980
ts yr.7200 2018-02-22 5759 100.34106 0.0061409 11491.06 107.1964
ts yr.7200 2018-02-23 7199 99.94481 0.0042978 11409.03 106.8131
ts yr.7200 2018-02-24 5 99.94315 0.0040975 11425.69 106.8910
ts yr.7200 2018-02-26 4317 99.59062 0.0043331 11402.75 106.7837
ts yr.7200 2018-02-27 4320 100.15751 0.0019271 11469.21 107.0944
ts yr.7200 2018-02-28 4320 100.02064 0.0019716 11458.55 107.0446
ts yr.7200 2018-03-01 5759 99.82960 0.0025339 11389.51 106.7217
ts yr.7200 2018-03-02 7199 99.06537 0.0093972 11185.22 105.7602
ts yr.7200 2018-03-03 5 98.96758 0.0103805 11177.99 105.7260
ts yr.7200 2018-03-05 4317 99.42143 0.0061119 11175.08 105.7123
ts yr.7200 2018-03-06 4320 100.03517 0.0021269 11275.41 106.1858
ts yr.7200 2018-03-07 4320 99.78525 0.0026901 11191.63 105.7905
ts yr.7200 2018-03-08 5759 100.12672 0.0018165 11257.18 106.0999
ts yr.7200 2018-03-09 7199 100.79526 0.0079184 11391.09 106.7290
ts yr.7200 2018-03-10 5 100.81191 0.0080847 11412.33 106.8285
ts yr.7200 2018-03-12 4317 100.18391 0.0034869 11363.59 106.6001
ts yr.7200 2018-03-13 4320 100.10434 0.0030294 11385.84 106.7044
ts yr.7200 2018-03-14 4320 99.85488 0.0020233 11331.94 106.4516
ts yr.7200 2018-03-15 5759 99.58964 0.0042153 11251.41 106.0727
ts yr.7200 2018-03-16 7199 99.59867 0.0041205 11234.03 105.9907
ts yr.7200 2018-03-17 5 99.51539 0.0048593 11232.29 105.9825
ts yr.7200 2018-03-19 4317 99.68864 0.0033745 11226.19 105.9537
ts yr.7200 2018-03-20 4320 100.07439 0.0019609 11303.43 106.3176
ts yr.7200 2018-03-21 4320 100.17361 0.0021338 11310.68 106.3517
ts yr.7200 2018-03-22 5759 99.64400 0.0035728 11169.27 105.6848
ts yr.7200 2018-03-23 7199 99.13925 0.0086488 11013.36 104.9445
ts yr.7200 2018-03-24 5 98.86545 0.0114131 10969.63 104.7360
ts yr.7200 2018-03-26 4317 99.55775 0.0058115 11032.31 105.0348
ts yr.7200 2018-03-27 4320 100.29070 0.0030512 11153.99 105.6124
ts yr.7200 2018-03-28 4320 100.66913 0.0067901 11218.95 105.9196
ts yr.7200 2018-03-29 5759 101.07957 0.0108774 11356.52 106.5670
ts yr.7200 2018-03-30 7199 100.73991 0.0082050 11291.22 106.2602
ts yr.7200 2018-03-31 5 100.71190 0.0080050 11296.82 106.2865
ts yr.7200 2018-04-02 4317 99.64691 0.0036631 11282.62 106.2197
ts yr.7200 2018-04-03 4320 99.73837 0.0034343 11270.83 106.1641
ts yr.7200 2018-04-04 4320 100.02931 0.0019578 11335.18 106.4668
ts yr.7200 2018-04-05 5759 100.64495 0.0064228 11466.16 107.0802
ts yr.7200 2018-04-06 7199 100.78109 0.0081148 11492.45 107.2028
ts yr.7200 2018-04-07 5 100.50070 0.0061674 11435.74 106.9380
ts yr.7200 2018-04-09 4317 99.94244 0.0030628 11445.22 106.9823
ts yr.7200 2018-04-10 4320 99.82811 0.0022975 11457.75 107.0409
ts yr.7200 2018-04-11 4320 99.85188 0.0017941 11444.89 106.9808
ts yr.7200 2018-04-12 5759 100.02270 0.0024062 11456.53 107.0352
ts yr.7200 2018-04-13 7199 100.56909 0.0056719 11550.19 107.4718
ts yr.7200 2018-04-14 5 100.48058 0.0047922 11525.20 107.3555
ts yr.7200 2018-04-16 4317 100.12017 0.0026395 11506.89 107.2702
ts yr.7200 2018-04-17 4320 99.65727 0.0034356 11459.97 107.0513
ts yr.7200 2018-04-18 4320 99.92785 0.0022113 11496.97 107.2239
ts yr.7200 2018-04-19 5759 100.10348 0.0020354 11527.98 107.3684
ts yr.7200 2018-04-20 7199 100.41984 0.0042257 11575.10 107.5876
ts yr.7200 2018-04-21 5 100.51775 0.0051625 11586.80 107.6420
ts yr.7200 2018-04-23 4317 100.70889 0.0070576 11692.38 108.1313
ts yr.7200 2018-04-24 4320 100.80015 0.0081018 11842.73 108.8243
ts yr.7200 2018-04-25 4320 100.61856 0.0061589 11904.94 109.1097
ts yr.7200 2018-04-26 5759 100.59423 0.0061018 11949.99 109.3160
ts yr.7200 2018-04-27 7199 100.50069 0.0051841 11931.93 109.2334
ts yr.7200 2018-04-28 5 100.40423 0.0045965 11893.65 109.0580
ts yr.7200 2018-04-30 4317 99.95580 0.0012377 11929.23 109.2210
ts yr.7200 2018-05-01 4320 100.14070 0.0017226 11996.63 109.5292
ts yr.7200 2018-05-02 4320 100.24174 0.0027016 12060.18 109.8189
ts yr.7200 2018-05-03 5759 99.88029 0.0025766 11987.06 109.4854
ts yr.7200 2018-05-04 7199 99.69794 0.0031433 11899.13 109.0831
ts yr.7200 2018-05-05 5 99.80087 0.0023144 11897.68 109.0765
ts yr.7200 2018-05-07 4317 99.77924 0.0026729 11911.40 109.1394
ts yr.7200 2018-05-08 4320 99.80962 0.0019384 11891.41 109.0477
ts yr.7200 2018-05-09 4320 100.28088 0.0032574 12003.25 109.5593
ts yr.7200 2018-05-10 5759 100.29106 0.0030761 12023.21 109.6504
ts yr.7200 2018-05-11 7199 100.13377 0.0017245 11958.04 109.3528
ts yr.7200 2018-05-12 5 100.26795 0.0026749 11965.30 109.3860
ts yr.7200 2018-05-14 4317 99.95559 0.0010394 11982.15 109.4630
ts yr.7200 2018-05-15 4320 100.38180 0.0038084 12099.12 109.9960
ts yr.7200 2018-05-16 4320 100.25732 0.0032906 12151.15 110.2323
ts yr.7200 2018-05-17 5759 100.45790 0.0048397 12218.47 110.5372
ts yr.7200 2018-05-18 7199 100.76336 0.0075978 12287.93 110.8509
ts yr.7200 2018-05-19 5 100.77492 0.0077130 12266.23 110.7530
ts yr.7200 2018-05-21 4317 100.45430 0.0045296 12351.42 111.1370
ts yr.7200 2018-05-22 4320 100.00020 0.0013072 12312.95 110.9638
ts yr.7200 2018-05-23 4320 99.25661 0.0074686 12158.59 110.2660
ts yr.7200 2018-05-24 5759 98.82031 0.0118769 11998.39 109.5372
ts yr.7200 2018-05-25 7199 99.10914 0.0096166 11973.30 109.4226
ts yr.7200 2018-05-26 5 99.19135 0.0090447 11965.73 109.3880
ts yr.7200 2018-05-28 4317 99.84318 0.0024366 11978.37 109.4457
ts yr.7200 2018-05-29 4320 99.52572 0.0048462 11861.43 108.9102
ts yr.7200 2018-05-30 4320 99.52748 0.0052415 11827.26 108.7532
ts yr.7200 2018-05-31 5759 99.67415 0.0038197 11824.87 108.7422
ts yr.7200 2018-06-01 7199 100.25641 0.0042003 11932.58 109.2364
ts yr.7200 2018-06-02 5 100.59408 0.0059178 11994.41 109.5190
ts yr.7200 2018-06-04 4317 100.48758 0.0049866 12014.08 109.6088
ts yr.7200 2018-06-05 4320 100.37967 0.0039707 12054.61 109.7935
ts yr.7200 2018-06-06 4320 100.29193 0.0029140 12102.82 110.0128
ts yr.7200 2018-06-07 5759 100.20226 0.0024458 12089.86 109.9539
ts yr.7200 2018-06-08 7199 99.82109 0.0022528 11999.72 109.5432
ts yr.7200 2018-06-09 5 99.84471 0.0015814 11997.37 109.5325
ts yr.7200 2018-06-11 4317 99.92008 0.0021656 12060.77 109.8215
ts yr.7200 2018-06-12 4320 100.41073 0.0040983 12161.63 110.2798
ts yr.7200 2018-06-13 4320 100.45981 0.0045960 12214.51 110.5193
ts yr.7200 2018-06-14 5759 100.24237 0.0031593 12155.51 110.2520
ts yr.7200 2018-06-15 7199 100.51022 0.0052435 12236.36 110.6181
ts yr.7200 2018-06-16 5 100.58074 0.0057854 12246.85 110.6655
ts yr.7200 2018-06-18 4317 99.88357 0.0024119 12212.85 110.5118
ts yr.7200 2018-06-19 4320 99.34443 0.0065843 12092.22 109.9646
ts yr.7200 2018-06-20 4320 99.67117 0.0037716 12131.88 110.1448
ts yr.7200 2018-06-21 5759 100.02397 0.0028616 12174.11 110.3364
ts yr.7200 2018-06-22 7199 99.79606 0.0025130 12102.67 110.0121
ts yr.7200 2018-06-23 5 99.78308 0.0024338 12097.14 109.9870
ts yr.7200 2018-06-25 4317 99.46708 0.0053450 12011.46 109.5968
ts yr.7200 2018-06-26 4320 99.82156 0.0027171 12042.42 109.7380
ts yr.7200 2018-06-27 4320 100.11129 0.0021216 12115.29 110.0695
ts yr.7200 2018-06-28 5759 100.35278 0.0035444 12163.27 110.2872
ts yr.7200 2018-06-29 7199 100.60736 0.0060603 12244.61 110.6554
ts yr.7200 2018-06-30 5 100.62929 0.0062699 12251.83 110.6880
ts yr.7200 2018-07-02 4317 100.28649 0.0028755 12277.07 110.8019
ts yr.7200 2018-07-03 4320 100.11512 0.0018533 12275.38 110.7943
ts yr.7200 2018-07-04 4320 99.73989 0.0026054 12203.16 110.4679
ts yr.7200 2018-07-05 5759 99.95579 0.0014679 12224.79 110.5658
ts yr.7200 2018-07-06 7199 99.95976 0.0011949 12229.69 110.5879
ts yr.7200 2018-07-07 5 99.84035 0.0016730 12202.18 110.4635
tbats dy.qt 2018-01-03 1439 99.68586 0.0031467 12617.14 112.3261
tbats dy.qt 2018-01-04 1440 99.99895 0.0007263 12696.52 112.6789
tbats dy.qt 2018-01-05 1440 100.33109 0.0033042 12781.03 113.0532
tbats dy.qt 2018-01-06 1 100.33901 0.0033844 12783.02 113.0620
tbats dy.qt 2018-01-08 1439 100.39391 0.0039311 12797.02 113.1239
tbats dy.qt 2018-01-09 1440 100.04867 0.0012931 12709.18 112.7350
tbats dy.qt 2018-01-10 1440 99.27259 0.0073400 12512.95 111.8613
tbats dy.qt 2018-01-11 1440 98.96225 0.0104334 12434.67 111.5109
tbats dy.qt 2018-01-12 1440 98.69954 0.0130904 12368.72 111.2147
tbats dy.qt 2018-01-13 1 98.52946 0.0148143 12326.11 111.0230
tbats dy.qt 2018-01-15 1439 98.22265 0.0179342 12249.50 110.6774
tbats dy.qt 2018-01-16 1440 98.24796 0.0176763 12255.80 110.7059
tbats dy.qt 2018-01-17 1440 98.26609 0.0174925 12260.34 110.7264
tbats dy.qt 2018-01-18 1440 98.67172 0.0133725 12361.75 111.1834
tbats dy.qt 2018-01-19 1440 98.30353 0.0171110 12269.67 110.7685
tbats dy.qt 2018-01-20 1 98.36262 0.0165090 12284.40 110.8350
tbats dy.qt 2018-01-22 1439 98.35525 0.0165846 12282.58 110.8268
tbats dy.qt 2018-01-23 1440 98.19844 0.0181820 12243.49 110.6503
tbats dy.qt 2018-01-24 1440 97.31119 0.0272614 12023.34 109.6510
tbats dy.qt 2018-01-25 1440 96.77278 0.0328036 11890.55 109.0438
tbats dy.qt 2018-01-26 1440 96.81623 0.0323591 11901.34 109.0932
tbats dy.qt 2018-01-27 1 96.40486 0.0366094 11800.26 108.6290
tbats dy.qt 2018-01-29 1439 96.60017 0.0345871 11848.14 108.8492
tbats dy.qt 2018-01-30 1440 96.53542 0.0352574 11832.26 108.7762
tbats dy.qt 2018-01-31 1440 96.66416 0.0339260 11863.86 108.9214
tbats dy.qt 2018-02-01 1440 97.11590 0.0292640 11974.99 109.4303
tbats dy.qt 2018-02-02 1440 97.50825 0.0252362 12072.03 109.8728
tbats dy.qt 2018-02-03 1 97.77600 0.0224901 12138.31 110.1740
tbats dy.qt 2018-02-05 1439 97.52750 0.0250364 12076.74 109.8942
tbats dy.qt 2018-02-06 1440 96.83864 0.0321241 11906.76 109.1181
tbats dy.qt 2018-02-07 1440 97.01853 0.0302673 11951.00 109.3206
tbats dy.qt 2018-02-08 1440 97.04430 0.0300045 11957.42 109.3500
tbats dy.qt 2018-02-09 1440 96.59248 0.0346683 11846.29 108.8407
tbats dy.qt 2018-02-10 1 96.55307 0.0350738 11836.57 108.7960
tbats dy.qt 2018-02-12 1439 96.44488 0.0361948 11810.06 108.6741
tbats dy.qt 2018-02-13 1440 95.84988 0.0423895 11665.00 108.0046
tbats dy.qt 2018-02-14 1440 95.21545 0.0490216 11510.96 107.2892
tbats dy.qt 2018-02-15 1440 94.51717 0.0563755 11342.71 106.5021
tbats dy.qt 2018-02-16 1440 94.14929 0.0602717 11254.57 106.0876
tbats dy.qt 2018-02-17 1 94.34327 0.0582138 11300.97 106.3060
tbats dy.qt 2018-02-19 1439 100.15807 0.0018789 11336.73 106.4741
tbats dy.qt 2018-02-20 1440 100.39103 0.0039051 11451.01 107.0094
tbats dy.qt 2018-02-21 1440 100.25293 0.0025468 11577.32 107.5980
tbats dy.qt 2018-02-22 1440 99.46320 0.0053927 11491.09 107.1965
tbats dy.qt 2018-02-23 1440 100.05442 0.0010658 11409.03 106.8131
tbats dy.qt 2018-02-24 1 100.12813 0.0012805 11425.69 106.8910
tbats dy.qt 2018-02-26 1439 99.90008 0.0017224 11402.75 106.7837
tbats dy.qt 2018-02-27 1440 100.15712 0.0017597 11469.21 107.0944
tbats dy.qt 2018-02-28 1440 99.73121 0.0028609 11458.55 107.0446
tbats dy.qt 2018-03-01 1440 100.04078 0.0014257 11389.51 106.7217
tbats dy.qt 2018-03-02 1440 99.55689 0.0044691 11185.24 105.7603
tbats dy.qt 2018-03-03 1 99.52529 0.0047584 11177.99 105.7260
tbats dy.qt 2018-03-05 1439 99.98671 0.0020805 11175.08 105.7123
tbats dy.qt 2018-03-06 1440 99.97448 0.0010510 11275.41 106.1858
tbats dy.qt 2018-03-07 1440 99.67282 0.0032912 11191.63 105.7905
tbats dy.qt 2018-03-08 1440 100.02248 0.0006004 11257.18 106.0998
tbats dy.qt 2018-03-09 1440 100.47998 0.0047965 11391.07 106.7290
tbats dy.qt 2018-03-10 1 100.57372 0.0057207 11412.33 106.8285
tbats dy.qt 2018-03-12 1439 99.78623 0.0023423 11363.59 106.6001
tbats dy.qt 2018-03-13 1440 100.26633 0.0028931 11385.84 106.7044
tbats dy.qt 2018-03-14 1440 99.88333 0.0013305 11331.94 106.4516
tbats dy.qt 2018-03-15 1440 99.76423 0.0023882 11251.42 106.0727
tbats dy.qt 2018-03-16 1440 99.66757 0.0033348 11234.04 105.9908
tbats dy.qt 2018-03-17 1 99.65997 0.0034061 11232.29 105.9825
tbats dy.qt 2018-03-19 1439 99.97263 0.0011852 11226.19 105.9537
tbats dy.qt 2018-03-20 1440 100.20904 0.0022823 11303.43 106.3176
tbats dy.qt 2018-03-21 1440 99.82901 0.0017237 11310.68 106.3517
tbats dy.qt 2018-03-22 1440 99.65709 0.0034537 11169.29 105.6848
tbats dy.qt 2018-03-23 1440 99.67875 0.0032366 11013.37 104.9446
tbats dy.qt 2018-03-24 1 99.48123 0.0052012 10969.63 104.7360
tbats dy.qt 2018-03-26 1439 100.28518 0.0028807 11032.31 105.0348
tbats dy.qt 2018-03-27 1440 100.19555 0.0019708 11153.99 105.6124
tbats dy.qt 2018-03-28 1440 100.54877 0.0054627 11218.95 105.9196
tbats dy.qt 2018-03-29 1440 99.73412 0.0027027 11356.53 106.5670
tbats dy.qt 2018-03-30 1440 99.83920 0.0017394 11291.23 106.2602
tbats dy.qt 2018-03-31 1 99.86424 0.0013585 11296.82 106.2865
tbats dy.qt 2018-04-02 1439 99.93700 0.0011310 11282.62 106.2197
tbats dy.qt 2018-04-03 1440 100.25481 0.0027837 11270.83 106.1641
tbats dy.qt 2018-04-04 1440 99.86599 0.0017314 11335.18 106.4668
tbats dy.qt 2018-04-05 1440 100.28099 0.0028526 11466.15 107.0801
tbats dy.qt 2018-04-06 1440 99.83245 0.0017703 11492.45 107.2028
tbats dy.qt 2018-04-07 1 99.58556 0.0041530 11435.74 106.9380
tbats dy.qt 2018-04-09 1439 100.04115 0.0009017 11445.22 106.9823
tbats dy.qt 2018-04-10 1440 100.22867 0.0024343 11457.75 107.0409
tbats dy.qt 2018-04-11 1440 99.79334 0.0020920 11444.89 106.9808
tbats dy.qt 2018-04-12 1440 100.22729 0.0022879 11456.52 107.0351
tbats dy.qt 2018-04-13 1440 100.14150 0.0015252 11550.18 107.4718
tbats dy.qt 2018-04-14 1 100.03289 0.0003289 11525.20 107.3555
tbats dy.qt 2018-04-16 1439 99.92011 0.0012842 11506.89 107.2702
tbats dy.qt 2018-04-17 1440 99.93751 0.0006970 11459.97 107.0513
tbats dy.qt 2018-04-18 1440 100.20349 0.0020342 11496.97 107.2239
tbats dy.qt 2018-04-19 1440 100.12256 0.0012611 11527.97 107.3684
tbats dy.qt 2018-04-20 1440 100.20483 0.0020465 11575.09 107.5876
tbats dy.qt 2018-04-21 1 100.25545 0.0025513 11586.80 107.6420
tbats dy.qt 2018-04-23 1439 100.45611 0.0045455 11692.38 108.1313
tbats dy.qt 2018-04-24 1440 100.11055 0.0011908 11842.73 108.8243
tbats dy.qt 2018-04-25 1440 100.26987 0.0026968 11904.94 109.1097
tbats dy.qt 2018-04-26 1440 99.89900 0.0010289 11950.00 109.3160
tbats dy.qt 2018-04-27 1440 99.93781 0.0008727 11931.93 109.2334
tbats dy.qt 2018-04-28 1 99.77747 0.0022278 11893.65 109.0580
tbats dy.qt 2018-04-30 1439 100.14920 0.0014945 11929.23 109.2210
tbats dy.qt 2018-05-01 1440 100.17329 0.0019150 11996.63 109.5292
tbats dy.qt 2018-05-02 1440 99.95855 0.0006544 12060.18 109.8189
tbats dy.qt 2018-05-03 1440 99.67902 0.0032314 11987.07 109.4855
tbats dy.qt 2018-05-04 1440 99.89883 0.0010363 11899.13 109.0831
tbats dy.qt 2018-05-05 1 99.89319 0.0010687 11897.68 109.0765
tbats dy.qt 2018-05-07 1439 100.05815 0.0010943 11911.40 109.1394
tbats dy.qt 2018-05-08 1440 99.95677 0.0008266 11891.41 109.0477
tbats dy.qt 2018-05-09 1440 100.39503 0.0040954 12003.25 109.5593
tbats dy.qt 2018-05-10 1440 99.91385 0.0013584 12023.21 109.6504
tbats dy.qt 2018-05-11 1440 99.95859 0.0007073 11958.04 109.3528
tbats dy.qt 2018-05-12 1 99.98915 0.0001085 11965.30 109.3860
tbats dy.qt 2018-05-14 1439 100.07057 0.0011008 11982.15 109.4630
tbats dy.qt 2018-05-15 1440 100.30340 0.0030269 12099.12 109.9960
tbats dy.qt 2018-05-16 1440 99.89417 0.0010771 12151.15 110.2323
tbats dy.qt 2018-05-17 1440 100.12827 0.0020259 12218.46 110.5372
tbats dy.qt 2018-05-18 1440 100.07706 0.0011057 12287.92 110.8509
tbats dy.qt 2018-05-19 1 99.98849 0.0001151 12266.23 110.7530
tbats dy.qt 2018-05-21 1439 100.34661 0.0034591 12351.42 111.1370
tbats dy.qt 2018-05-22 1440 99.92007 0.0008712 12312.95 110.9638
tbats dy.qt 2018-05-23 1440 99.42938 0.0057324 12158.59 110.2660
tbats dy.qt 2018-05-24 1440 99.50292 0.0049858 11998.41 109.5372
tbats dy.qt 2018-05-25 1440 100.15295 0.0016273 11973.30 109.4226
tbats dy.qt 2018-05-26 1 100.12189 0.0012181 11965.73 109.3880
tbats dy.qt 2018-05-28 1439 100.05226 0.0008182 11978.37 109.4457
tbats dy.qt 2018-05-29 1440 99.53558 0.0046848 11861.43 108.9102
tbats dy.qt 2018-05-30 1440 99.98904 0.0013351 11827.26 108.7532
tbats dy.qt 2018-05-31 1440 99.84812 0.0015397 11824.88 108.7423
tbats dy.qt 2018-06-01 1440 100.38244 0.0038975 11932.57 109.2363
tbats dy.qt 2018-06-02 1 100.64259 0.0064053 11994.41 109.5190
tbats dy.qt 2018-06-04 1439 100.08215 0.0009623 12014.08 109.6088
tbats dy.qt 2018-06-05 1440 99.98085 0.0006843 12054.61 109.7935
tbats dy.qt 2018-06-06 1440 100.20111 0.0020087 12102.82 110.0128
tbats dy.qt 2018-06-07 1440 99.79255 0.0020849 12089.87 109.9539
tbats dy.qt 2018-06-08 1440 99.85521 0.0016502 11999.72 109.5433
tbats dy.qt 2018-06-09 1 99.84581 0.0015431 11997.37 109.5325
tbats dy.qt 2018-06-11 1439 100.26474 0.0030989 12060.77 109.8215
tbats dy.qt 2018-06-12 1440 100.22386 0.0022432 12161.63 110.2798
tbats dy.qt 2018-06-13 1440 100.13182 0.0013493 12214.51 110.5193
tbats dy.qt 2018-06-14 1440 99.91755 0.0017015 12155.51 110.2520
tbats dy.qt 2018-06-15 1440 99.98738 0.0007257 12236.36 110.6181
tbats dy.qt 2018-06-16 1 100.03011 0.0003011 12246.85 110.6655
tbats dy.qt 2018-06-18 1439 99.86125 0.0014167 12212.85 110.5118
tbats dy.qt 2018-06-19 1440 99.47098 0.0053126 12092.22 109.9646
tbats dy.qt 2018-06-20 1440 100.07670 0.0009136 12131.88 110.1448
tbats dy.qt 2018-06-21 1440 99.97949 0.0019765 12174.11 110.3364
tbats dy.qt 2018-06-22 1440 100.02423 0.0006664 12102.67 110.0121
tbats dy.qt 2018-06-23 1 100.00166 0.0000166 12097.14 109.9870
tbats dy.qt 2018-06-25 1439 99.64521 0.0035565 12011.46 109.5968
tbats dy.qt 2018-06-26 1440 99.97660 0.0016579 12042.42 109.7380
tbats dy.qt 2018-06-27 1440 100.03102 0.0016466 12115.29 110.0695
tbats dy.qt 2018-06-28 1440 100.02184 0.0008678 12163.27 110.2872
tbats dy.qt 2018-06-29 1440 100.14343 0.0015275 12244.61 110.6554
tbats dy.qt 2018-06-30 1 100.17288 0.0017273 12251.83 110.6880
tbats dy.qt 2018-07-02 1439 100.10272 0.0010478 12277.07 110.8019
tbats dy.qt 2018-07-03 1440 99.90854 0.0012706 12275.38 110.7943
tbats dy.qt 2018-07-04 1440 99.89757 0.0010279 12203.16 110.4679
tbats dy.qt 2018-07-05 1440 100.05275 0.0009822 12224.79 110.5658
tbats dy.qt 2018-07-06 1440 99.94812 0.0008016 12229.69 110.5879
tbats dy.qt 2018-07-07 1 99.83559 0.0016454 12202.18 110.4635
tbats dy.wk 2018-01-03 1439 99.68586 0.0031467 12617.14 112.3261
tbats dy.wk 2018-01-04 1440 99.99895 0.0007263 12696.52 112.6789
tbats dy.wk 2018-01-05 1440 100.33088 0.0033021 12781.03 113.0532
tbats dy.wk 2018-01-06 1 100.33875 0.0033818 12783.02 113.0620
tbats dy.wk 2018-01-08 1439 100.39391 0.0039311 12797.02 113.1239
tbats dy.wk 2018-01-09 1440 99.68028 0.0033099 12709.18 112.7350
tbats dy.wk 2018-01-10 1440 99.29698 0.0071157 12512.95 111.8613
tbats dy.wk 2018-01-11 1440 100.06525 0.0016808 12434.67 111.5109
tbats dy.wk 2018-01-12 1440 99.96120 0.0009504 12368.72 111.2147
tbats dy.wk 2018-01-13 1 99.78905 0.0021117 12326.11 111.0230
tbats dy.wk 2018-01-15 1439 99.68861 0.0032424 12249.50 110.6774
tbats dy.wk 2018-01-16 1440 100.14965 0.0018525 12255.80 110.7059
tbats dy.wk 2018-01-17 1440 100.24561 0.0026428 12260.34 110.7264
tbats dy.wk 2018-01-18 1440 99.90235 0.0012114 12361.75 111.1834
tbats dy.wk 2018-01-19 1440 99.69341 0.0030718 12269.67 110.7685
tbats dy.wk 2018-01-20 1 99.75345 0.0024686 12284.40 110.8350
tbats dy.wk 2018-01-22 1439 99.94857 0.0009876 12282.58 110.8268
tbats dy.wk 2018-01-23 1440 99.75295 0.0027197 12243.49 110.6503
tbats dy.wk 2018-01-24 1440 99.40343 0.0059923 12023.34 109.6510
tbats dy.wk 2018-01-25 1440 99.83846 0.0021156 11890.55 109.0438
tbats dy.wk 2018-01-26 1440 99.70435 0.0035920 11901.34 109.0932
tbats dy.wk 2018-01-27 1 99.28059 0.0072201 11800.26 108.6290
tbats dy.wk 2018-01-29 1439 100.20258 0.0020535 11848.14 108.8492
tbats dy.wk 2018-01-30 1440 99.83701 0.0017895 11832.26 108.7762
tbats dy.wk 2018-01-31 1440 100.12877 0.0015909 11863.86 108.9214
tbats dy.wk 2018-02-01 1440 100.06158 0.0011196 11974.99 109.4303
tbats dy.wk 2018-02-02 1440 100.48472 0.0048453 12072.03 109.8728
tbats dy.wk 2018-02-03 1 100.81074 0.0080746 12138.31 110.1740
tbats dy.wk 2018-02-05 1439 99.74512 0.0026257 12076.74 109.8942
tbats dy.wk 2018-02-06 1440 100.33039 0.0037067 11906.76 109.1181
tbats dy.wk 2018-02-07 1440 99.77881 0.0023609 11951.00 109.3206
tbats dy.wk 2018-02-08 1440 100.02252 0.0024023 11957.42 109.3500
tbats dy.wk 2018-02-09 1440 100.08718 0.0019845 11846.29 108.8407
tbats dy.wk 2018-02-10 1 100.04671 0.0004670 11836.57 108.7960
tbats dy.wk 2018-02-12 1439 99.88780 0.0011777 11810.06 108.6741
tbats dy.wk 2018-02-13 1440 99.39789 0.0062186 11665.00 108.0046
tbats dy.wk 2018-02-14 1440 99.50171 0.0050093 11510.96 107.2892
tbats dy.wk 2018-02-15 1440 99.52425 0.0047707 11342.71 106.5021
tbats dy.wk 2018-02-16 1440 99.95453 0.0013695 11254.57 106.0876
tbats dy.wk 2018-02-17 1 100.16104 0.0016091 11300.97 106.3060
tbats dy.wk 2018-02-19 1439 100.15800 0.0018784 11336.73 106.4741
tbats dy.wk 2018-02-20 1440 100.39103 0.0039051 11451.01 107.0094
tbats dy.wk 2018-02-21 1440 100.25281 0.0025457 11577.32 107.5980
tbats dy.wk 2018-02-22 1440 99.46321 0.0053926 11491.09 107.1965
tbats dy.wk 2018-02-23 1440 100.05461 0.0010664 11409.03 106.8131
tbats dy.wk 2018-02-24 1 100.12833 0.0012825 11425.69 106.8910
tbats dy.wk 2018-02-26 1439 99.89942 0.0017237 11402.75 106.7837
tbats dy.wk 2018-02-27 1440 100.15783 0.0017643 11469.21 107.0944
tbats dy.wk 2018-02-28 1440 99.73134 0.0028600 11458.55 107.0446
tbats dy.wk 2018-03-01 1440 100.34611 0.0034715 11389.51 106.7217
tbats dy.wk 2018-03-02 1440 99.55737 0.0044669 11185.24 105.7603
tbats dy.wk 2018-03-03 1 99.52535 0.0047578 11177.99 105.7260
tbats dy.wk 2018-03-05 1439 99.98695 0.0020796 11175.08 105.7123
tbats dy.wk 2018-03-06 1440 99.97441 0.0010512 11275.41 106.1858
tbats dy.wk 2018-03-07 1440 99.67289 0.0032906 11191.63 105.7905
tbats dy.wk 2018-03-08 1440 100.02253 0.0006007 11257.18 106.0998
tbats dy.wk 2018-03-09 1440 100.47950 0.0047919 11391.07 106.7290
tbats dy.wk 2018-03-10 1 100.57323 0.0057160 11412.33 106.8285
tbats dy.wk 2018-03-12 1439 99.78720 0.0023352 11363.59 106.6001
tbats dy.wk 2018-03-13 1440 100.26631 0.0028929 11385.84 106.7044
tbats dy.wk 2018-03-14 1440 99.88330 0.0013307 11331.94 106.4516
tbats dy.wk 2018-03-15 1440 99.76420 0.0023884 11251.42 106.0727
tbats dy.wk 2018-03-16 1440 99.66767 0.0033339 11234.04 105.9908
tbats dy.wk 2018-03-17 1 99.66007 0.0034051 11232.29 105.9825
tbats dy.wk 2018-03-19 1439 99.97239 0.0011856 11226.19 105.9537
tbats dy.wk 2018-03-20 1440 100.20883 0.0022809 11303.43 106.3176
tbats dy.wk 2018-03-21 1440 99.82900 0.0017238 11310.68 106.3517
tbats dy.wk 2018-03-22 1440 99.65694 0.0034551 11169.29 105.6848
tbats dy.wk 2018-03-23 1440 99.67852 0.0032386 11013.37 104.9446
tbats dy.wk 2018-03-24 1 99.48100 0.0052035 10969.63 104.7360
tbats dy.wk 2018-03-26 1439 100.28414 0.0028713 11032.31 105.0348
tbats dy.wk 2018-03-27 1440 100.19630 0.0019777 11153.99 105.6124
tbats dy.wk 2018-03-28 1440 100.54926 0.0054675 11218.95 105.9196
tbats dy.wk 2018-03-29 1440 99.73413 0.0027026 11356.53 106.5670
tbats dy.wk 2018-03-30 1440 99.83964 0.0017362 11291.23 106.2602
tbats dy.wk 2018-03-31 1 99.86468 0.0013541 11296.82 106.2865
tbats dy.wk 2018-04-02 1439 99.93700 0.0011310 11282.62 106.2197
tbats dy.wk 2018-04-03 1440 100.25491 0.0027843 11270.83 106.1641
tbats dy.wk 2018-04-04 1440 99.54540 0.0045824 11335.18 106.4668
tbats dy.wk 2018-04-05 1440 100.28072 0.0028559 11466.15 107.0801
tbats dy.wk 2018-04-06 1440 99.58777 0.0041560 11492.45 107.2028
tbats dy.wk 2018-04-07 1 99.09769 0.0090640 11435.74 106.9380
tbats dy.wk 2018-04-09 1439 100.04137 0.0009026 11445.22 106.9823
tbats dy.wk 2018-04-10 1440 100.25055 0.0026370 11457.75 107.0409
tbats dy.wk 2018-04-11 1440 99.79341 0.0020919 11444.89 106.9808
tbats dy.wk 2018-04-12 1440 100.22719 0.0022869 11456.52 107.0351
tbats dy.wk 2018-04-13 1440 100.14077 0.0015197 11550.18 107.4718
tbats dy.wk 2018-04-14 1 100.03216 0.0003215 11525.20 107.3555
tbats dy.wk 2018-04-16 1439 99.92040 0.0012826 11506.89 107.2702
tbats dy.wk 2018-04-17 1440 99.88578 0.0011479 11459.97 107.0513
tbats dy.wk 2018-04-18 1440 100.20313 0.0020315 11496.97 107.2239
tbats dy.wk 2018-04-19 1440 100.12420 0.0012747 11527.97 107.3684
tbats dy.wk 2018-04-20 1440 100.20579 0.0020558 11575.09 107.5876
tbats dy.wk 2018-04-21 1 100.25642 0.0025609 11586.80 107.6420
tbats dy.wk 2018-04-23 1439 100.45527 0.0045371 11692.38 108.1313
tbats dy.wk 2018-04-24 1440 99.74900 0.0025303 11842.73 108.8243
tbats dy.wk 2018-04-25 1440 100.26939 0.0027005 11904.94 109.1097
tbats dy.wk 2018-04-26 1440 99.89896 0.0010293 11950.00 109.3160
tbats dy.wk 2018-04-27 1440 99.86676 0.0013840 11931.93 109.2334
tbats dy.wk 2018-04-28 1 99.63529 0.0036538 11893.65 109.0580
tbats dy.wk 2018-04-30 1439 100.14943 0.0014966 11929.23 109.2210
tbats dy.wk 2018-05-01 1440 100.17066 0.0018972 11996.63 109.5292
tbats dy.wk 2018-05-02 1440 99.71963 0.0028155 12060.18 109.8189
tbats dy.wk 2018-05-03 1440 99.67459 0.0032729 11987.07 109.4855
tbats dy.wk 2018-05-04 1440 99.89881 0.0010365 11899.13 109.0831
tbats dy.wk 2018-05-05 1 99.89317 0.0010689 11897.68 109.0765
tbats dy.wk 2018-05-07 1439 100.05805 0.0010939 11911.40 109.1394
tbats dy.wk 2018-05-08 1440 99.95669 0.0008270 11891.41 109.0477
tbats dy.wk 2018-05-09 1440 100.39570 0.0041001 12003.25 109.5593
tbats dy.wk 2018-05-10 1440 99.91362 0.0013594 12023.21 109.6504
tbats dy.wk 2018-05-11 1440 99.95849 0.0007077 11958.04 109.3528
tbats dy.wk 2018-05-12 1 99.98906 0.0001094 11965.30 109.3860
tbats dy.wk 2018-05-14 1439 100.08872 0.0011865 11982.15 109.4630
tbats dy.wk 2018-05-15 1440 100.30441 0.0030370 12099.12 109.9960
tbats dy.wk 2018-05-16 1440 99.89457 0.0010733 12151.15 110.2323
tbats dy.wk 2018-05-17 1440 100.13316 0.0020379 12218.46 110.5372
tbats dy.wk 2018-05-18 1440 100.07756 0.0011080 12287.92 110.8509
tbats dy.wk 2018-05-19 1 99.98898 0.0001102 12266.23 110.7530
tbats dy.wk 2018-05-21 1439 100.34650 0.0034581 12351.42 111.1370
tbats dy.wk 2018-05-22 1440 99.92250 0.0008507 12312.95 110.9638
tbats dy.wk 2018-05-23 1440 99.42836 0.0057421 12158.59 110.2660
tbats dy.wk 2018-05-24 1440 99.50393 0.0049757 11998.41 109.5372
tbats dy.wk 2018-05-25 1440 100.15326 0.0016297 11973.30 109.4226
tbats dy.wk 2018-05-26 1 100.12219 0.0012212 11965.73 109.3880
tbats dy.wk 2018-05-28 1439 100.05271 0.0008195 11978.37 109.4457
tbats dy.wk 2018-05-29 1440 99.53559 0.0046847 11861.43 108.9102
tbats dy.wk 2018-05-30 1440 99.98679 0.0013346 11827.26 108.7532
tbats dy.wk 2018-05-31 1440 99.84791 0.0015416 11824.88 108.7423
tbats dy.wk 2018-06-01 1440 100.38288 0.0039006 11932.57 109.2363
tbats dy.wk 2018-06-02 1 100.64302 0.0064096 11994.41 109.5190
tbats dy.wk 2018-06-04 1439 100.08194 0.0009610 12014.08 109.6088
tbats dy.wk 2018-06-05 1440 99.98097 0.0006841 12054.61 109.7935
tbats dy.wk 2018-06-06 1440 100.20143 0.0020119 12102.82 110.0128
tbats dy.wk 2018-06-07 1440 99.79109 0.0020993 12089.87 109.9539
tbats dy.wk 2018-06-08 1440 99.85568 0.0016476 11999.72 109.5433
tbats dy.wk 2018-06-09 1 99.84628 0.0015384 11997.37 109.5325
tbats dy.wk 2018-06-11 1439 100.26979 0.0031257 12060.77 109.8215
tbats dy.wk 2018-06-12 1440 100.22350 0.0022397 12161.63 110.2798
tbats dy.wk 2018-06-13 1440 100.13184 0.0013496 12214.51 110.5193
tbats dy.wk 2018-06-14 1440 100.01357 0.0017755 12155.51 110.2520
tbats dy.wk 2018-06-15 1440 99.98691 0.0007286 12236.36 110.6181
tbats dy.wk 2018-06-16 1 100.02951 0.0002950 12246.85 110.6655
tbats dy.wk 2018-06-18 1439 99.73463 0.0026812 12212.85 110.5118
tbats dy.wk 2018-06-19 1440 99.50587 0.0049741 12092.22 109.9646
tbats dy.wk 2018-06-20 1440 100.07804 0.0009210 12131.88 110.1448
tbats dy.wk 2018-06-21 1440 99.97948 0.0019765 12174.11 110.3364
tbats dy.wk 2018-06-22 1440 100.02378 0.0006665 12102.67 110.0121
tbats dy.wk 2018-06-23 1 100.00121 0.0000121 12097.14 109.9870
tbats dy.wk 2018-06-25 1439 99.64515 0.0035570 12011.46 109.5968
tbats dy.wk 2018-06-26 1440 99.97638 0.0016587 12042.42 109.7380
tbats dy.wk 2018-06-27 1440 100.03185 0.0016468 12115.29 110.0695
tbats dy.wk 2018-06-28 1440 100.02201 0.0008679 12163.27 110.2872
tbats dy.wk 2018-06-29 1440 100.14350 0.0015279 12244.61 110.6554
tbats dy.wk 2018-06-30 1 100.17294 0.0017280 12251.83 110.6880
tbats dy.wk 2018-07-02 1439 100.10289 0.0010493 12277.07 110.8019
tbats dy.wk 2018-07-03 1440 99.90796 0.0012733 12275.38 110.7943
tbats dy.wk 2018-07-04 1440 99.89755 0.0010281 12203.16 110.4679
tbats dy.wk 2018-07-05 1440 100.05220 0.0009800 12224.79 110.5658
tbats dy.wk 2018-07-06 1440 99.88804 0.0012403 12229.69 110.5879
tbats dy.wk 2018-07-07 1 99.71514 0.0028526 12202.18 110.4635
tbats dy.wk.mo 2018-01-03 1439 99.68586 0.0031467 12617.14 112.3261
tbats dy.wk.mo 2018-01-04 1440 99.99895 0.0007263 12696.52 112.6789
tbats dy.wk.mo 2018-01-05 1440 100.33109 0.0033042 12781.03 113.0532
tbats dy.wk.mo 2018-01-06 1 100.33901 0.0033844 12783.02 113.0620
tbats dy.wk.mo 2018-01-08 1439 100.39391 0.0039311 12797.02 113.1239
tbats dy.wk.mo 2018-01-09 1440 100.04867 0.0012931 12709.18 112.7350
tbats dy.wk.mo 2018-01-10 1440 99.27259 0.0073400 12512.95 111.8613
tbats dy.wk.mo 2018-01-11 1440 98.96225 0.0104334 12434.67 111.5109
tbats dy.wk.mo 2018-01-12 1440 98.69954 0.0130904 12368.72 111.2147
tbats dy.wk.mo 2018-01-13 1 98.52946 0.0148143 12326.11 111.0230
tbats dy.wk.mo 2018-01-15 1439 98.22265 0.0179342 12249.50 110.6774
tbats dy.wk.mo 2018-01-16 1440 98.24796 0.0176763 12255.80 110.7059
tbats dy.wk.mo 2018-01-17 1440 98.26609 0.0174925 12260.34 110.7264
tbats dy.wk.mo 2018-01-18 1440 98.67172 0.0133725 12361.75 111.1834
tbats dy.wk.mo 2018-01-19 1440 99.69249 0.0030811 12269.67 110.7685
tbats dy.wk.mo 2018-01-20 1 99.75338 0.0024692 12284.40 110.8350
tbats dy.wk.mo 2018-01-22 1439 99.99251 0.0009302 12282.58 110.8268
tbats dy.wk.mo 2018-01-23 1440 99.75482 0.0027101 12243.49 110.6503
tbats dy.wk.mo 2018-01-24 1440 99.40332 0.0059934 12023.34 109.6510
tbats dy.wk.mo 2018-01-25 1440 99.83230 0.0021505 11890.55 109.0438
tbats dy.wk.mo 2018-01-26 1440 99.70441 0.0035916 11901.34 109.0932
tbats dy.wk.mo 2018-01-27 1 99.28065 0.0072194 11800.26 108.6290
tbats dy.wk.mo 2018-01-29 1439 100.20258 0.0020535 11848.14 108.8492
tbats dy.wk.mo 2018-01-30 1440 99.83698 0.0017898 11832.26 108.7762
tbats dy.wk.mo 2018-01-31 1440 100.12876 0.0015908 11863.86 108.9214
tbats dy.wk.mo 2018-02-01 1440 100.21049 0.0021305 11974.99 109.4303
tbats dy.wk.mo 2018-02-02 1440 100.43510 0.0043575 12072.03 109.8728
tbats dy.wk.mo 2018-02-03 1 100.71076 0.0070825 12138.31 110.1740
tbats dy.wk.mo 2018-02-05 1439 99.74585 0.0026193 12076.74 109.8942
tbats dy.wk.mo 2018-02-06 1440 100.03700 0.0019386 11906.76 109.1181
tbats dy.wk.mo 2018-02-07 1440 99.78077 0.0023408 11951.00 109.3206
tbats dy.wk.mo 2018-02-08 1440 100.02272 0.0024028 11957.42 109.3500
tbats dy.wk.mo 2018-02-09 1440 100.08822 0.0019891 11846.29 108.8407
tbats dy.wk.mo 2018-02-10 1 100.04775 0.0004774 11836.57 108.7960
tbats dy.wk.mo 2018-02-12 1439 99.88791 0.0011769 11810.06 108.6741
tbats dy.wk.mo 2018-02-13 1440 99.39810 0.0062174 11665.00 108.0046
tbats dy.wk.mo 2018-02-14 1440 99.50154 0.0050108 11510.96 107.2892
tbats dy.wk.mo 2018-02-15 1440 99.52426 0.0047706 11342.71 106.5021
tbats dy.wk.mo 2018-02-16 1440 99.95424 0.0013696 11254.57 106.0876
tbats dy.wk.mo 2018-02-17 1 100.16075 0.0016062 11300.97 106.3060
tbats dy.wk.mo 2018-02-19 1439 100.15800 0.0018784 11336.73 106.4741
tbats dy.wk.mo 2018-02-20 1440 100.39102 0.0039050 11451.01 107.0094
tbats dy.wk.mo 2018-02-21 1440 100.25294 0.0025469 11577.32 107.5980
tbats dy.wk.mo 2018-02-22 1440 99.46305 0.0053942 11491.09 107.1965
tbats dy.wk.mo 2018-02-23 1440 100.05462 0.0010665 11409.03 106.8131
tbats dy.wk.mo 2018-02-24 1 100.12833 0.0012825 11425.69 106.8910
tbats dy.wk.mo 2018-02-26 1439 99.89992 0.0017227 11402.75 106.7837
tbats dy.wk.mo 2018-02-27 1440 100.15656 0.0017561 11469.21 107.0944
tbats dy.wk.mo 2018-02-28 1440 99.73123 0.0028608 11458.55 107.0446
tbats dy.wk.mo 2018-03-01 1440 100.04075 0.0014256 11389.51 106.7217
tbats dy.wk.mo 2018-03-02 1440 99.55676 0.0044703 11185.24 105.7603
tbats dy.wk.mo 2018-03-03 1 99.52516 0.0047597 11177.99 105.7260
tbats dy.wk.mo 2018-03-05 1439 99.98664 0.0020807 11175.08 105.7123
tbats dy.wk.mo 2018-03-06 1440 99.97469 0.0010507 11275.41 106.1858
tbats dy.wk.mo 2018-03-07 1440 99.67290 0.0032905 11191.63 105.7905
tbats dy.wk.mo 2018-03-08 1440 100.02255 0.0006007 11257.18 106.0998
tbats dy.wk.mo 2018-03-09 1440 100.47932 0.0047901 11391.07 106.7290
tbats dy.wk.mo 2018-03-10 1 100.57305 0.0057141 11412.33 106.8285
tbats dy.wk.mo 2018-03-12 1439 99.78612 0.0023430 11363.59 106.6001
tbats dy.wk.mo 2018-03-13 1440 100.26621 0.0028923 11385.84 106.7044
tbats dy.wk.mo 2018-03-14 1440 99.90992 0.0011263 11331.94 106.4516
tbats dy.wk.mo 2018-03-15 1440 99.76437 0.0023870 11251.42 106.0727
tbats dy.wk.mo 2018-03-16 1440 99.66767 0.0033339 11234.04 105.9908
tbats dy.wk.mo 2018-03-17 1 99.66007 0.0034051 11232.29 105.9825
tbats dy.wk.mo 2018-03-19 1439 99.97277 0.0011850 11226.19 105.9537
tbats dy.wk.mo 2018-03-20 1440 100.20883 0.0022809 11303.43 106.3176
tbats dy.wk.mo 2018-03-21 1440 99.82904 0.0017235 11310.68 106.3517
tbats dy.wk.mo 2018-03-22 1440 99.65783 0.0034469 11169.29 105.6848
tbats dy.wk.mo 2018-03-23 1440 99.67866 0.0032373 11013.37 104.9446
tbats dy.wk.mo 2018-03-24 1 99.48114 0.0052021 10969.63 104.7360
tbats dy.wk.mo 2018-03-26 1439 100.28468 0.0028761 11032.31 105.0348
tbats dy.wk.mo 2018-03-27 1440 100.19572 0.0019723 11153.99 105.6124
tbats dy.wk.mo 2018-03-28 1440 100.54889 0.0054639 11218.95 105.9196
tbats dy.wk.mo 2018-03-29 1440 99.73405 0.0027033 11356.53 106.5670
tbats dy.wk.mo 2018-03-30 1440 99.83897 0.0017410 11291.23 106.2602
tbats dy.wk.mo 2018-03-31 1 99.86401 0.0013609 11296.82 106.2865
tbats dy.wk.mo 2018-04-02 1439 99.93685 0.0011308 11282.62 106.2197
tbats dy.wk.mo 2018-04-03 1440 100.25379 0.0027780 11270.83 106.1641
tbats dy.wk.mo 2018-04-04 1440 99.86600 0.0017314 11335.18 106.4668
tbats dy.wk.mo 2018-04-05 1440 100.28118 0.0028540 11466.15 107.0801
tbats dy.wk.mo 2018-04-06 1440 99.83234 0.0017710 11492.45 107.2028
tbats dy.wk.mo 2018-04-07 1 99.58544 0.0041542 11435.74 106.9380
tbats dy.wk.mo 2018-04-09 1439 100.04104 0.0009013 11445.22 106.9823
tbats dy.wk.mo 2018-04-10 1440 100.25012 0.0026340 11457.75 107.0409
tbats dy.wk.mo 2018-04-11 1440 99.79295 0.0020960 11444.89 106.9808
tbats dy.wk.mo 2018-04-12 1440 100.22683 0.0022835 11456.52 107.0351
tbats dy.wk.mo 2018-04-13 1440 100.14075 0.0015196 11550.18 107.4718
tbats dy.wk.mo 2018-04-14 1 100.03214 0.0003213 11525.20 107.3555
tbats dy.wk.mo 2018-04-16 1439 99.91984 0.0012857 11506.89 107.2702
tbats dy.wk.mo 2018-04-17 1440 99.93762 0.0006963 11459.97 107.0513
tbats dy.wk.mo 2018-04-18 1440 100.20343 0.0020336 11496.97 107.2239
tbats dy.wk.mo 2018-04-19 1440 100.12287 0.0012637 11527.97 107.3684
tbats dy.wk.mo 2018-04-20 1440 100.20507 0.0020488 11575.09 107.5876
tbats dy.wk.mo 2018-04-21 1 100.25569 0.0025537 11586.80 107.6420
tbats dy.wk.mo 2018-04-23 1439 100.45574 0.0045417 11692.38 108.1313
tbats dy.wk.mo 2018-04-24 1440 100.11075 0.0011923 11842.73 108.8243
tbats dy.wk.mo 2018-04-25 1440 100.27006 0.0026985 11904.94 109.1097
tbats dy.wk.mo 2018-04-26 1440 99.89898 0.0010292 11950.00 109.3160
tbats dy.wk.mo 2018-04-27 1440 99.93741 0.0008737 11931.93 109.2334
tbats dy.wk.mo 2018-04-28 1 99.77707 0.0022318 11893.65 109.0580
tbats dy.wk.mo 2018-04-30 1439 100.14942 0.0014966 11929.23 109.2210
tbats dy.wk.mo 2018-05-01 1440 100.17088 0.0018985 11996.63 109.5292
tbats dy.wk.mo 2018-05-02 1440 99.95836 0.0006552 12060.18 109.8189
tbats dy.wk.mo 2018-05-03 1440 99.67923 0.0032295 11987.07 109.4855
tbats dy.wk.mo 2018-05-04 1440 99.89909 0.0010340 11899.13 109.0831
tbats dy.wk.mo 2018-05-05 1 99.89345 0.0010661 11897.68 109.0765
tbats dy.wk.mo 2018-05-07 1439 100.05811 0.0010942 11911.40 109.1394
tbats dy.wk.mo 2018-05-08 1440 99.99397 0.0008230 11891.41 109.0477
tbats dy.wk.mo 2018-05-09 1440 100.39515 0.0040964 12003.25 109.5593
tbats dy.wk.mo 2018-05-10 1440 99.91388 0.0013583 12023.21 109.6504
tbats dy.wk.mo 2018-05-11 1440 99.95859 0.0007073 11958.04 109.3528
tbats dy.wk.mo 2018-05-12 1 99.98916 0.0001084 11965.30 109.3860
tbats dy.wk.mo 2018-05-14 1439 100.07057 0.0011009 11982.15 109.4630
tbats dy.wk.mo 2018-05-15 1440 100.30322 0.0030251 12099.12 109.9960
tbats dy.wk.mo 2018-05-16 1440 99.89373 0.0010812 12151.15 110.2323
tbats dy.wk.mo 2018-05-17 1440 100.12935 0.0020285 12218.46 110.5372
tbats dy.wk.mo 2018-05-18 1440 100.07736 0.0011070 12287.92 110.8509
tbats dy.wk.mo 2018-05-19 1 99.98879 0.0001121 12266.23 110.7530
tbats dy.wk.mo 2018-05-21 1439 100.34640 0.0034570 12351.42 111.1370
tbats dy.wk.mo 2018-05-22 1440 99.92095 0.0008638 12312.95 110.9638
tbats dy.wk.mo 2018-05-23 1440 99.42891 0.0057369 12158.59 110.2660
tbats dy.wk.mo 2018-05-24 1440 99.50389 0.0049761 11998.41 109.5372
tbats dy.wk.mo 2018-05-25 1440 100.15303 0.0016280 11973.30 109.4226
tbats dy.wk.mo 2018-05-26 1 100.12197 0.0012189 11965.73 109.3880
tbats dy.wk.mo 2018-05-28 1439 100.05252 0.0008190 11978.37 109.4457
tbats dy.wk.mo 2018-05-29 1440 99.53550 0.0046855 11861.43 108.9102
tbats dy.wk.mo 2018-05-30 1440 99.98947 0.0013353 11827.26 108.7532
tbats dy.wk.mo 2018-05-31 1440 99.84810 0.0015399 11824.88 108.7423
tbats dy.wk.mo 2018-06-01 1440 100.38157 0.0038911 11932.57 109.2363
tbats dy.wk.mo 2018-06-02 1 100.64171 0.0063966 11994.41 109.5190
tbats dy.wk.mo 2018-06-04 1439 100.08218 0.0009625 12014.08 109.6088
tbats dy.wk.mo 2018-06-05 1440 99.98083 0.0006843 12054.61 109.7935
tbats dy.wk.mo 2018-06-06 1440 100.20096 0.0020072 12102.82 110.0128
tbats dy.wk.mo 2018-06-07 1440 99.79182 0.0020921 12089.87 109.9539
tbats dy.wk.mo 2018-06-08 1440 99.85533 0.0016495 11999.72 109.5433
tbats dy.wk.mo 2018-06-09 1 99.84593 0.0015419 11997.37 109.5325
tbats dy.wk.mo 2018-06-11 1439 100.26559 0.0031034 12060.77 109.8215
tbats dy.wk.mo 2018-06-12 1440 100.22377 0.0022423 12161.63 110.2798
tbats dy.wk.mo 2018-06-13 1440 100.13182 0.0013493 12214.51 110.5193
tbats dy.wk.mo 2018-06-14 1440 99.91684 0.0017045 12155.51 110.2520
tbats dy.wk.mo 2018-06-15 1440 99.98717 0.0007262 12236.36 110.6181
tbats dy.wk.mo 2018-06-16 1 100.02990 0.0002990 12246.85 110.6655
tbats dy.wk.mo 2018-06-18 1439 99.86132 0.0014160 12212.85 110.5118
tbats dy.wk.mo 2018-06-19 1440 99.47094 0.0053130 12092.22 109.9646
tbats dy.wk.mo 2018-06-20 1440 100.07800 0.0009213 12131.88 110.1448
tbats dy.wk.mo 2018-06-21 1440 99.97946 0.0019765 12174.11 110.3364
tbats dy.wk.mo 2018-06-22 1440 100.02351 0.0006666 12102.67 110.0121
tbats dy.wk.mo 2018-06-23 1 100.00094 0.0000094 12097.14 109.9870
tbats dy.wk.mo 2018-06-25 1439 99.64560 0.0035526 12011.46 109.5968
tbats dy.wk.mo 2018-06-26 1440 99.97621 0.0016593 12042.42 109.7380
tbats dy.wk.mo 2018-06-27 1440 100.03140 0.0016467 12115.29 110.0695
tbats dy.wk.mo 2018-06-28 1440 100.02220 0.0008680 12163.27 110.2872
tbats dy.wk.mo 2018-06-29 1440 100.14344 0.0015275 12244.61 110.6554
tbats dy.wk.mo 2018-06-30 1 100.17289 0.0017274 12251.83 110.6880
tbats dy.wk.mo 2018-07-02 1439 100.10290 0.0010493 12277.07 110.8019
tbats dy.wk.mo 2018-07-03 1440 99.90795 0.0012733 12275.38 110.7943
tbats dy.wk.mo 2018-07-04 1440 99.89755 0.0010281 12203.16 110.4679
tbats dy.wk.mo 2018-07-05 1440 100.05220 0.0009800 12224.79 110.5658
tbats dy.wk.mo 2018-07-06 1440 99.94879 0.0007997 12229.69 110.5879
tbats dy.wk.mo 2018-07-07 1 99.83627 0.0016386 12202.18 110.4635
tbats dy.yr 2018-01-03 1439 99.68586 0.0031467 12617.14 112.3261
tbats dy.yr 2018-01-04 1440 99.99895 0.0007263 12696.52 112.6789
tbats dy.yr 2018-01-05 1440 100.33109 0.0033042 12781.03 113.0532
tbats dy.yr 2018-01-06 1 100.33901 0.0033844 12783.02 113.0620
tbats dy.yr 2018-01-08 1439 100.39391 0.0039311 12797.02 113.1239
tbats dy.yr 2018-01-09 1440 100.04867 0.0012931 12709.18 112.7350
tbats dy.yr 2018-01-10 1440 99.27259 0.0073400 12512.95 111.8613
tbats dy.yr 2018-01-11 1440 98.96225 0.0104334 12434.67 111.5109
tbats dy.yr 2018-01-12 1440 98.69954 0.0130904 12368.72 111.2147
tbats dy.yr 2018-01-13 1 98.52946 0.0148143 12326.11 111.0230
tbats dy.yr 2018-01-15 1439 98.22265 0.0179342 12249.50 110.6774
tbats dy.yr 2018-01-16 1440 98.24796 0.0176763 12255.80 110.7059
tbats dy.yr 2018-01-17 1440 98.26609 0.0174925 12260.34 110.7264
tbats dy.yr 2018-01-18 1440 98.67172 0.0133725 12361.75 111.1834
tbats dy.yr 2018-01-19 1440 98.30353 0.0171110 12269.67 110.7685
tbats dy.yr 2018-01-20 1 98.36262 0.0165090 12284.40 110.8350
tbats dy.yr 2018-01-22 1439 98.35525 0.0165846 12282.58 110.8268
tbats dy.yr 2018-01-23 1440 98.19844 0.0181820 12243.49 110.6503
tbats dy.yr 2018-01-24 1440 97.31119 0.0272614 12023.34 109.6510
tbats dy.yr 2018-01-25 1440 96.77278 0.0328036 11890.55 109.0438
tbats dy.yr 2018-01-26 1440 96.81623 0.0323591 11901.34 109.0932
tbats dy.yr 2018-01-27 1 96.40486 0.0366094 11800.26 108.6290
tbats dy.yr 2018-01-29 1439 96.60017 0.0345871 11848.14 108.8492
tbats dy.yr 2018-01-30 1440 96.53542 0.0352574 11832.26 108.7762
tbats dy.yr 2018-01-31 1440 96.66416 0.0339260 11863.86 108.9214
tbats dy.yr 2018-02-01 1440 97.11590 0.0292640 11974.99 109.4303
tbats dy.yr 2018-02-02 1440 97.50825 0.0252362 12072.03 109.8728
tbats dy.yr 2018-02-03 1 97.77600 0.0224901 12138.31 110.1740
tbats dy.yr 2018-02-05 1439 97.52750 0.0250364 12076.74 109.8942
tbats dy.yr 2018-02-06 1440 96.83864 0.0321241 11906.76 109.1181
tbats dy.yr 2018-02-07 1440 97.01853 0.0302673 11951.00 109.3206
tbats dy.yr 2018-02-08 1440 97.04430 0.0300045 11957.42 109.3500
tbats dy.yr 2018-02-09 1440 96.59248 0.0346683 11846.29 108.8407
tbats dy.yr 2018-02-10 1 96.55307 0.0350738 11836.57 108.7960
tbats dy.yr 2018-02-12 1439 96.44488 0.0361948 11810.06 108.6741
tbats dy.yr 2018-02-13 1440 95.84988 0.0423895 11665.00 108.0046
tbats dy.yr 2018-02-14 1440 95.21545 0.0490216 11510.96 107.2892
tbats dy.yr 2018-02-15 1440 94.51717 0.0563755 11342.71 106.5021
tbats dy.yr 2018-02-16 1440 94.14929 0.0602717 11254.57 106.0876
tbats dy.yr 2018-02-17 1 94.34327 0.0582138 11300.97 106.3060
tbats dy.yr 2018-02-19 1439 94.49234 0.0566373 11336.73 106.4741
tbats dy.yr 2018-02-20 1440 94.96731 0.0516282 11451.01 107.0094
tbats dy.yr 2018-02-21 1440 95.48977 0.0461438 11577.32 107.5980
tbats dy.yr 2018-02-22 1440 95.13313 0.0498868 11491.09 107.1965
tbats dy.yr 2018-02-23 1440 94.79322 0.0534602 11409.03 106.8131
tbats dy.yr 2018-02-24 1 94.86244 0.0527301 11425.69 106.8910
tbats dy.yr 2018-02-26 1439 94.76703 0.0537373 11402.75 106.7837
tbats dy.yr 2018-02-27 1440 95.04278 0.0508339 11469.21 107.0944
tbats dy.yr 2018-02-28 1440 94.99853 0.0512998 11458.55 107.0446
tbats dy.yr 2018-03-01 1440 94.71199 0.0543178 11389.51 106.7217
tbats dy.yr 2018-03-02 1440 93.85861 0.0633632 11185.24 105.7603
tbats dy.yr 2018-03-03 1 93.82854 0.0636796 11177.99 105.7260
tbats dy.yr 2018-03-05 1439 93.81607 0.0638152 11175.08 105.7123
tbats dy.yr 2018-03-06 1440 94.23648 0.0593462 11275.41 106.1858
tbats dy.yr 2018-03-07 1440 93.88564 0.0630732 11191.63 105.7905
tbats dy.yr 2018-03-08 1440 94.16030 0.0601537 11257.18 106.0998
tbats dy.yr 2018-03-09 1440 94.71853 0.0542485 11391.07 106.7290
tbats dy.yr 2018-03-10 1 94.80698 0.0533146 11412.33 106.8285
tbats dy.yr 2018-03-12 1439 94.60420 0.0554551 11363.59 106.6001
tbats dy.yr 2018-03-13 1440 94.69656 0.0544823 11385.84 106.7044
tbats dy.yr 2018-03-14 1440 94.47241 0.0568478 11331.94 106.4516
tbats dy.yr 2018-03-15 1440 94.13614 0.0604106 11251.42 106.0727
tbats dy.yr 2018-03-16 1440 94.06334 0.0611845 11234.04 105.9908
tbats dy.yr 2018-03-17 1 94.05618 0.0612588 11232.29 105.9825
tbats dy.yr 2018-03-19 1439 94.03056 0.0615318 11226.19 105.9537
tbats dy.yr 2018-03-20 1440 94.35346 0.0581070 11303.43 106.3176
tbats dy.yr 2018-03-21 1440 94.38374 0.0577863 11310.68 106.3517
tbats dy.yr 2018-03-22 1440 93.79186 0.0640717 11169.29 105.6848
tbats dy.yr 2018-03-23 1440 93.13497 0.0710915 11013.37 104.9446
tbats dy.yr 2018-03-24 1 92.94995 0.0730765 10969.63 104.7360
tbats dy.yr 2018-03-26 1439 93.21499 0.0702341 11032.31 105.0348
tbats dy.yr 2018-03-27 1440 93.72770 0.0647543 11153.99 105.6124
tbats dy.yr 2018-03-28 1440 93.99928 0.0618740 11218.95 105.9196
tbats dy.yr 2018-03-29 1440 94.57484 0.0557653 11356.53 106.5670
tbats dy.yr 2018-03-30 1440 94.30258 0.0586453 11291.23 106.2602
tbats dy.yr 2018-03-31 1 94.32597 0.0583971 11296.82 106.2865
tbats dy.yr 2018-04-02 1439 94.26654 0.0590282 11282.62 106.2197
tbats dy.yr 2018-04-03 1440 94.21706 0.0595547 11270.83 106.1641
tbats dy.yr 2018-04-04 1440 94.48582 0.0567069 11335.18 106.4668
tbats dy.yr 2018-04-05 1440 95.03004 0.0509684 11466.15 107.0801
tbats dy.yr 2018-04-06 1440 95.13907 0.0498215 11492.45 107.2028
tbats dy.yr 2018-04-07 1 94.90415 0.0522908 11435.74 106.9380
tbats dy.yr 2018-04-09 1439 94.94345 0.0518776 11445.22 106.9823
tbats dy.yr 2018-04-10 1440 94.99533 0.0513325 11457.75 107.0409
tbats dy.yr 2018-04-11 1440 94.94205 0.0518926 11444.89 106.9808
tbats dy.yr 2018-04-12 1440 94.99019 0.0513869 11456.52 107.0351
tbats dy.yr 2018-04-13 1440 95.37779 0.0473164 11550.18 107.4718
tbats dy.yr 2018-04-14 1 95.27467 0.0483967 11525.20 107.3555
tbats dy.yr 2018-04-16 1439 95.19887 0.0491929 11506.89 107.2702
tbats dy.yr 2018-04-17 1440 95.00464 0.0512334 11459.97 107.0513
tbats dy.yr 2018-04-18 1440 95.15786 0.0496232 11496.97 107.2239
tbats dy.yr 2018-04-19 1440 95.28609 0.0482772 11527.97 107.3684
tbats dy.yr 2018-04-20 1440 95.48061 0.0462391 11575.09 107.5876
tbats dy.yr 2018-04-21 1 95.52893 0.0457331 11586.80 107.6420
tbats dy.yr 2018-04-23 1439 95.96268 0.0412102 11692.38 108.1313
tbats dy.yr 2018-04-24 1440 96.57811 0.0348152 11842.73 108.8243
tbats dy.yr 2018-04-25 1440 96.83137 0.0321978 11904.94 109.1097
tbats dy.yr 2018-04-26 1440 97.01456 0.0303070 11950.00 109.3160
tbats dy.yr 2018-04-27 1440 96.94119 0.0310636 11931.93 109.2334
tbats dy.yr 2018-04-28 1 96.78559 0.0326692 11893.65 109.0580
tbats dy.yr 2018-04-30 1439 96.93021 0.0311769 11929.23 109.2210
tbats dy.yr 2018-05-01 1440 97.20358 0.0283622 11996.63 109.5292
tbats dy.yr 2018-05-02 1440 97.46080 0.0257187 12060.18 109.8189
tbats dy.yr 2018-05-03 1440 97.16471 0.0287634 11987.07 109.4855
tbats dy.yr 2018-05-04 1440 96.80787 0.0324394 11899.13 109.0831
tbats dy.yr 2018-05-05 1 96.80201 0.0324996 11897.68 109.0765
tbats dy.yr 2018-05-07 1439 96.85772 0.0319251 11911.40 109.1394
tbats dy.yr 2018-05-08 1440 96.77645 0.0327640 11891.41 109.0477
tbats dy.yr 2018-05-09 1440 97.23029 0.0280882 12003.25 109.5593
tbats dy.yr 2018-05-10 1440 97.31121 0.0272554 12023.21 109.6504
tbats dy.yr 2018-05-11 1440 97.04722 0.0299706 11958.04 109.3528
tbats dy.yr 2018-05-12 1 97.07668 0.0296669 11965.30 109.3860
tbats dy.yr 2018-05-14 1439 97.14498 0.0289643 11982.15 109.4630
tbats dy.yr 2018-05-15 1440 97.61779 0.0241119 12099.12 109.9960
tbats dy.yr 2018-05-16 1440 97.82769 0.0219618 12151.15 110.2323
tbats dy.yr 2018-05-17 1440 98.09812 0.0192032 12218.46 110.5372
tbats dy.yr 2018-05-18 1440 98.37668 0.0163665 12287.92 110.8509
tbats dy.yr 2018-05-19 1 98.28985 0.0172490 12266.23 110.7530
tbats dy.yr 2018-05-21 1439 98.63051 0.0137903 12351.42 111.1370
tbats dy.yr 2018-05-22 1440 98.47687 0.0153483 12312.95 110.9638
tbats dy.yr 2018-05-23 1440 97.85710 0.0216665 12158.59 110.2660
tbats dy.yr 2018-05-24 1440 97.21066 0.0282903 11998.41 109.5372
tbats dy.yr 2018-05-25 1440 97.10908 0.0293338 11973.30 109.4226
tbats dy.yr 2018-05-26 1 97.07845 0.0296486 11965.73 109.3880
tbats dy.yr 2018-05-28 1439 97.12962 0.0291224 11978.37 109.4457
tbats dy.yr 2018-05-29 1440 96.65409 0.0340318 11861.43 108.9102
tbats dy.yr 2018-05-30 1440 96.51500 0.0354691 11827.26 108.7532
tbats dy.yr 2018-05-31 1440 96.50533 0.0355687 11824.88 108.7423
tbats dy.yr 2018-06-01 1440 96.94354 0.0310420 11932.57 109.2363
tbats dy.yr 2018-06-02 1 97.19471 0.0284520 11994.41 109.5190
tbats dy.yr 2018-06-04 1439 97.27435 0.0276335 12014.08 109.6088
tbats dy.yr 2018-06-05 1440 97.43829 0.0259498 12054.61 109.7935
tbats dy.yr 2018-06-06 1440 97.63291 0.0239552 12102.82 110.0128
tbats dy.yr 2018-06-07 1440 97.58061 0.0244910 12089.87 109.9539
tbats dy.yr 2018-06-08 1440 97.21614 0.0282325 11999.72 109.5433
tbats dy.yr 2018-06-09 1 97.20669 0.0283287 11997.37 109.5325
tbats dy.yr 2018-06-11 1439 97.46295 0.0256989 12060.77 109.8215
tbats dy.yr 2018-06-12 1440 97.86983 0.0215314 12161.63 110.2798
tbats dy.yr 2018-06-13 1440 98.08238 0.0193623 12214.51 110.5193
tbats dy.yr 2018-06-14 1440 97.84510 0.0217855 12155.51 110.2520
tbats dy.yr 2018-06-15 1440 98.17006 0.0184688 12236.36 110.6181
tbats dy.yr 2018-06-16 1 98.21219 0.0180393 12246.85 110.6655
tbats dy.yr 2018-06-18 1439 98.07575 0.0194297 12212.85 110.5118
tbats dy.yr 2018-06-19 1440 97.58994 0.0243970 12092.22 109.9646
tbats dy.yr 2018-06-20 1440 97.75005 0.0227559 12131.88 110.1448
tbats dy.yr 2018-06-21 1440 97.91982 0.0210232 12174.11 110.3364
tbats dy.yr 2018-06-22 1440 97.63231 0.0239609 12102.67 110.0121
tbats dy.yr 2018-06-23 1 97.61005 0.0241886 12097.14 109.9870
tbats dy.yr 2018-06-25 1439 97.26368 0.0277437 12011.46 109.5968
tbats dy.yr 2018-06-26 1440 97.38885 0.0264588 12042.42 109.7380
tbats dy.yr 2018-06-27 1440 97.68307 0.0234426 12115.29 110.0695
tbats dy.yr 2018-06-28 1440 97.87640 0.0214646 12163.27 110.2872
tbats dy.yr 2018-06-29 1440 98.20314 0.0181321 12244.61 110.6554
tbats dy.yr 2018-06-30 1 98.23216 0.0178360 12251.83 110.6880
tbats dy.yr 2018-07-02 1439 98.33324 0.0168080 12277.07 110.8019
tbats dy.yr 2018-07-03 1440 98.32642 0.0168780 12275.38 110.7943
tbats dy.yr 2018-07-04 1440 98.03684 0.0198264 12203.16 110.4679
tbats dy.yr 2018-07-05 1440 100.05086 0.0009929 12224.79 110.5658
tbats dy.yr 2018-07-06 1440 99.94904 0.0007990 12229.69 110.5879
tbats dy.yr 2018-07-07 1 99.83652 0.0016361 12202.18 110.4635
ts mo.1440 2018-01-03 1439 100.04823 0.0006192 12617.14 112.3261
ts mo.1440 2018-01-04 1440 100.18933 0.0018912 12696.52 112.6789
ts mo.1440 2018-01-05 1440 100.26633 0.0026607 12781.03 113.0532
ts mo.1440 2018-01-06 1 100.28170 0.0028130 12783.02 113.0620
ts mo.1440 2018-01-08 1439 100.03438 0.0006853 12797.02 113.1239
ts mo.1440 2018-01-09 1440 99.67749 0.0033582 12709.18 112.7350
ts mo.1440 2018-01-10 1440 99.32576 0.0068360 12512.95 111.8613
ts mo.1440 2018-01-11 1440 100.12977 0.0021080 12434.67 111.5109
ts mo.1440 2018-01-12 1440 99.96339 0.0009540 12368.72 111.2147
ts mo.1440 2018-01-13 1 99.79523 0.0020498 12326.11 111.0230
ts mo.1440 2018-01-15 1439 99.69331 0.0031379 12249.50 110.6774
ts mo.1440 2018-01-16 1440 100.17086 0.0019941 12255.80 110.7059
ts mo.1440 2018-01-17 1440 100.21972 0.0025725 12260.34 110.7264
ts mo.1440 2018-01-18 1440 99.91899 0.0011144 12361.75 111.1834
ts mo.1440 2018-01-19 1440 99.67502 0.0032559 12269.67 110.7685
ts mo.1440 2018-01-20 1 99.74131 0.0025903 12284.40 110.8350
ts mo.1440 2018-01-22 1439 100.02892 0.0011013 12282.58 110.8268
ts mo.1440 2018-01-23 1440 99.77012 0.0024813 12243.49 110.6503
ts mo.1440 2018-01-24 1440 99.43253 0.0057036 12023.34 109.6510
ts mo.1440 2018-01-25 1440 99.89760 0.0017840 11890.55 109.0438
ts mo.1440 2018-01-26 1440 99.81017 0.0029692 11901.34 109.0932
ts mo.1440 2018-01-27 1 99.28712 0.0071543 11800.26 108.6290
ts mo.1440 2018-01-29 1439 100.25311 0.0026131 11848.14 108.8492
ts mo.1440 2018-01-30 1440 99.87289 0.0014969 11832.26 108.7762
ts mo.1440 2018-01-31 1440 100.18453 0.0020765 11863.86 108.9214
ts mo.1440 2018-02-01 1440 100.26644 0.0027460 11974.99 109.4303
ts mo.1440 2018-02-02 1440 100.43459 0.0045437 12072.03 109.8728
ts mo.1440 2018-02-03 1 100.70416 0.0070169 12138.31 110.1740
ts mo.1440 2018-02-05 1439 99.73548 0.0027202 12076.74 109.8942
ts mo.1440 2018-02-06 1440 99.96251 0.0019104 11906.76 109.1181
ts mo.1440 2018-02-07 1440 99.79397 0.0022110 11951.00 109.3206
ts mo.1440 2018-02-08 1440 100.02084 0.0027830 11957.42 109.3500
ts mo.1440 2018-02-09 1440 100.02564 0.0020348 11846.29 108.8407
ts mo.1440 2018-02-10 1 100.04782 0.0004781 11836.57 108.7960
ts mo.1440 2018-02-12 1439 99.85152 0.0015542 11810.06 108.6741
ts mo.1440 2018-02-13 1440 99.36083 0.0067043 11665.00 108.0046
ts mo.1440 2018-02-14 1440 99.52815 0.0048002 11510.96 107.2892
ts mo.1440 2018-02-15 1440 99.54512 0.0045610 11342.71 106.5021
ts mo.1440 2018-02-16 1440 99.98069 0.0011760 11254.57 106.0876
ts mo.1440 2018-02-17 1 100.16106 0.0016093 11300.97 106.3060
ts mo.1440 2018-02-19 1439 100.21728 0.0023402 11336.73 106.4741
ts mo.1440 2018-02-20 1440 100.42658 0.0042902 11451.01 107.0094
ts mo.1440 2018-02-21 1440 100.28269 0.0028638 11577.32 107.5980
ts mo.1440 2018-02-22 1440 99.49065 0.0051170 11491.09 107.1965
ts mo.1440 2018-02-23 1440 100.09247 0.0012151 11409.03 106.8131
ts mo.1440 2018-02-24 1 100.12834 0.0012826 11425.69 106.8910
ts mo.1440 2018-02-26 1439 99.93446 0.0017912 11402.75 106.7837
ts mo.1440 2018-02-27 1440 100.18938 0.0020271 11469.21 107.0944
ts mo.1440 2018-02-28 1440 99.75697 0.0025654 11458.55 107.0446
ts mo.1440 2018-03-01 1440 100.06287 0.0016184 11389.51 106.7217
ts mo.1440 2018-03-02 1440 99.51692 0.0048463 11185.24 105.7603
ts mo.1440 2018-03-03 1 99.52545 0.0047568 11177.99 105.7260
ts mo.1440 2018-03-05 1439 100.03207 0.0017957 11175.08 105.7123
ts mo.1440 2018-03-06 1440 100.02041 0.0011796 11275.41 106.1858
ts mo.1440 2018-03-07 1440 99.70377 0.0029865 11191.63 105.7905
ts mo.1440 2018-03-08 1440 100.10950 0.0011026 11257.18 106.0998
ts mo.1440 2018-03-09 1440 100.55552 0.0055439 11391.07 106.7290
ts mo.1440 2018-03-10 1 100.57301 0.0057137 11412.33 106.8285
ts mo.1440 2018-03-12 1439 99.81571 0.0020577 11363.59 106.6001
ts mo.1440 2018-03-13 1440 100.31539 0.0033549 11385.84 106.7044
ts mo.1440 2018-03-14 1440 99.87513 0.0013683 11331.94 106.4516
ts mo.1440 2018-03-15 1440 99.77566 0.0023619 11251.42 106.0727
ts mo.1440 2018-03-16 1440 99.71741 0.0029595 11234.04 105.9908
ts mo.1440 2018-03-17 1 99.66003 0.0034055 11232.29 105.9825
ts mo.1440 2018-03-19 1439 100.01871 0.0009578 11226.19 105.9537
ts mo.1440 2018-03-20 1440 100.25953 0.0027197 11303.43 106.3176
ts mo.1440 2018-03-21 1440 99.86586 0.0015840 11310.68 106.3517
ts mo.1440 2018-03-22 1440 99.68320 0.0031939 11169.29 105.6848
ts mo.1440 2018-03-23 1440 99.70598 0.0029586 11013.37 104.9446
ts mo.1440 2018-03-24 1 99.48140 0.0051995 10969.63 104.7360
ts mo.1440 2018-03-26 1439 100.32023 0.0032384 11032.31 105.0348
ts mo.1440 2018-03-27 1440 100.23777 0.0023986 11153.99 105.6124
ts mo.1440 2018-03-28 1440 100.51597 0.0051729 11218.95 105.9196
ts mo.1440 2018-03-29 1440 99.75856 0.0026127 11356.53 106.5670
ts mo.1440 2018-03-30 1440 99.85517 0.0016677 11291.23 106.2602
ts mo.1440 2018-03-31 1 99.86466 0.0013543 11296.82 106.2865
ts mo.1440 2018-04-02 1439 99.97257 0.0015357 11282.62 106.2197
ts mo.1440 2018-04-03 1440 100.25266 0.0027819 11270.83 106.1641
ts mo.1440 2018-04-04 1440 99.88813 0.0015305 11335.18 106.4668
ts mo.1440 2018-04-05 1440 100.34681 0.0034604 11466.15 107.0801
ts mo.1440 2018-04-06 1440 99.86990 0.0017764 11492.45 107.2028
ts mo.1440 2018-04-07 1 99.58554 0.0041532 11435.74 106.9380
ts mo.1440 2018-04-09 1439 100.07981 0.0012137 11445.22 106.9823
ts mo.1440 2018-04-10 1440 100.26373 0.0027177 11457.75 107.0409
ts mo.1440 2018-04-11 1440 99.80008 0.0020828 11444.89 106.9808
ts mo.1440 2018-04-12 1440 100.23396 0.0023454 11456.52 107.0351
ts mo.1440 2018-04-13 1440 100.14257 0.0014626 11550.18 107.4718
ts mo.1440 2018-04-14 1 100.03313 0.0003313 11525.20 107.3555
ts mo.1440 2018-04-16 1439 99.88607 0.0016851 11506.89 107.2702
ts mo.1440 2018-04-17 1440 99.91683 0.0008848 11459.97 107.0513
ts mo.1440 2018-04-18 1440 100.17949 0.0018037 11496.97 107.2239
ts mo.1440 2018-04-19 1440 100.07989 0.0008826 11527.97 107.3684
ts mo.1440 2018-04-20 1440 100.15853 0.0015944 11575.09 107.5876
ts mo.1440 2018-04-21 1 100.25516 0.0025484 11586.80 107.6420
ts mo.1440 2018-04-23 1439 100.40202 0.0040065 11692.38 108.1313
ts mo.1440 2018-04-24 1440 100.07288 0.0008575 11842.73 108.8243
ts mo.1440 2018-04-25 1440 100.22506 0.0023097 11904.94 109.1097
ts mo.1440 2018-04-26 1440 99.87161 0.0013052 11950.00 109.3160
ts mo.1440 2018-04-27 1440 99.92433 0.0009771 11931.93 109.2334
ts mo.1440 2018-04-28 1 99.77756 0.0022269 11893.65 109.0580
ts mo.1440 2018-04-30 1439 100.13034 0.0013315 11929.23 109.2210
ts mo.1440 2018-05-01 1440 100.15918 0.0018068 11996.63 109.5292
ts mo.1440 2018-05-02 1440 99.96201 0.0006191 12060.18 109.8189
ts mo.1440 2018-05-03 1440 99.68719 0.0031684 11987.07 109.4855
ts mo.1440 2018-05-04 1440 99.92404 0.0008365 11899.13 109.0831
ts mo.1440 2018-05-05 1 99.89315 0.0010691 11897.68 109.0765
ts mo.1440 2018-05-07 1439 100.08181 0.0011192 11911.40 109.1394
ts mo.1440 2018-05-08 1440 99.96319 0.0007804 11891.41 109.0477
ts mo.1440 2018-05-09 1440 100.41825 0.0042934 12003.25 109.5593
ts mo.1440 2018-05-10 1440 99.90365 0.0013996 12023.21 109.6504
ts mo.1440 2018-05-11 1440 99.94623 0.0008713 11958.04 109.3528
ts mo.1440 2018-05-12 1 99.98915 0.0001085 11965.30 109.3860
ts mo.1440 2018-05-14 1439 100.07233 0.0009955 11982.15 109.4630
ts mo.1440 2018-05-15 1440 100.30131 0.0030060 12099.12 109.9960
ts mo.1440 2018-05-16 1440 99.88611 0.0011831 12151.15 110.2323
ts mo.1440 2018-05-17 1440 100.15735 0.0020327 12218.46 110.5372
ts mo.1440 2018-05-18 1440 100.09355 0.0011889 12287.92 110.8509
ts mo.1440 2018-05-19 1 99.98854 0.0001146 12266.23 110.7530
ts mo.1440 2018-05-21 1439 100.35841 0.0035769 12351.42 111.1370
ts mo.1440 2018-05-22 1440 99.89239 0.0010880 12312.95 110.9638
ts mo.1440 2018-05-23 1440 99.41978 0.0058348 12158.59 110.2660
ts mo.1440 2018-05-24 1440 99.54194 0.0045977 11998.41 109.5372
ts mo.1440 2018-05-25 1440 100.19010 0.0019602 11973.30 109.4226
ts mo.1440 2018-05-26 1 100.12225 0.0012217 11965.73 109.3880
ts mo.1440 2018-05-28 1439 100.06035 0.0007973 11978.37 109.4457
ts mo.1440 2018-05-29 1440 99.54191 0.0046023 11861.43 108.9102
ts mo.1440 2018-05-30 1440 100.03018 0.0014838 11827.26 108.7532
ts mo.1440 2018-05-31 1440 99.87570 0.0013549 11824.88 108.7423
ts mo.1440 2018-06-01 1440 100.43774 0.0044393 11932.57 109.2363
ts mo.1440 2018-06-02 1 100.64289 0.0064083 11994.41 109.5190
ts mo.1440 2018-06-04 1439 100.10498 0.0012308 12014.08 109.6088
ts mo.1440 2018-06-05 1440 100.02764 0.0008192 12054.61 109.7935
ts mo.1440 2018-06-06 1440 100.24104 0.0024076 12102.82 110.0128
ts mo.1440 2018-06-07 1440 99.81563 0.0018603 12089.87 109.9539
ts mo.1440 2018-06-08 1440 99.87492 0.0015535 11999.72 109.5433
ts mo.1440 2018-06-09 1 99.84550 0.0015462 11997.37 109.5325
ts mo.1440 2018-06-11 1439 100.30271 0.0033386 12060.77 109.8215
ts mo.1440 2018-06-12 1440 100.22729 0.0022718 12161.63 110.2798
ts mo.1440 2018-06-13 1440 100.13046 0.0013291 12214.51 110.5193
ts mo.1440 2018-06-14 1440 99.88259 0.0020616 12155.51 110.2520
ts mo.1440 2018-06-15 1440 100.01065 0.0006624 12236.36 110.6181
ts mo.1440 2018-06-16 1 100.02951 0.0002951 12246.85 110.6655
ts mo.1440 2018-06-18 1439 99.87006 0.0013564 12212.85 110.5118
ts mo.1440 2018-06-19 1440 99.49610 0.0051024 12092.22 109.9646
ts mo.1440 2018-06-20 1440 100.16273 0.0016501 12131.88 110.1448
ts mo.1440 2018-06-21 1440 100.05149 0.0023273 12174.11 110.3364
ts mo.1440 2018-06-22 1440 100.06423 0.0009156 12102.67 110.0121
ts mo.1440 2018-06-23 1 100.00079 0.0000079 12097.14 109.9870
ts mo.1440 2018-06-25 1439 99.68731 0.0031339 12011.46 109.5968
ts mo.1440 2018-06-26 1440 100.06864 0.0014593 12042.42 109.7380
ts mo.1440 2018-06-27 1440 100.11302 0.0015837 12115.29 110.0695
ts mo.1440 2018-06-28 1440 100.10192 0.0011791 12163.27 110.2872
ts mo.1440 2018-06-29 1440 100.22929 0.0022933 12244.61 110.6554
ts mo.1440 2018-06-30 1 100.17275 0.0017260 12251.83 110.6880
ts mo.1440 2018-07-02 1439 100.15434 0.0015528 12277.07 110.8019
ts mo.1440 2018-07-03 1440 99.96321 0.0014023 12275.38 110.7943
ts mo.1440 2018-07-04 1440 99.93161 0.0006956 12203.16 110.4679
ts mo.1440 2018-07-05 1440 100.09371 0.0011071 12224.79 110.5658
ts mo.1440 2018-07-06 1440 99.97514 0.0009013 12229.69 110.5879
ts mo.1440 2018-07-07 1 99.83637 0.0016377 12202.18 110.4635
ts qt.1440 2018-01-03 1439 100.05917 0.0006827 12617.14 112.3261
ts qt.1440 2018-01-04 1440 100.16764 0.0016751 12696.52 112.6789
ts qt.1440 2018-01-05 1440 100.24734 0.0024911 12781.03 113.0532
ts qt.1440 2018-01-06 1 100.28290 0.0028250 12783.02 113.0620
ts qt.1440 2018-01-08 1439 100.03903 0.0007278 12797.02 113.1239
ts qt.1440 2018-01-09 1440 99.69042 0.0032432 12709.18 112.7350
ts qt.1440 2018-01-10 1440 99.34348 0.0066724 12512.95 111.8613
ts qt.1440 2018-01-11 1440 100.13410 0.0021179 12434.67 111.5109
ts qt.1440 2018-01-12 1440 99.96608 0.0009404 12368.72 111.2147
ts qt.1440 2018-01-13 1 99.79153 0.0020868 12326.11 111.0230
ts qt.1440 2018-01-15 1439 99.68770 0.0031868 12249.50 110.6774
ts qt.1440 2018-01-16 1440 100.17259 0.0019972 12255.80 110.7059
ts qt.1440 2018-01-17 1440 100.22704 0.0026264 12260.34 110.7264
ts qt.1440 2018-01-18 1440 99.91558 0.0011199 12361.75 111.1834
ts qt.1440 2018-01-19 1440 99.67877 0.0032183 12269.67 110.7685
ts qt.1440 2018-01-20 1 99.74481 0.0025552 12284.40 110.8350
ts qt.1440 2018-01-22 1439 100.03017 0.0010986 12282.58 110.8268
ts qt.1440 2018-01-23 1440 99.77201 0.0024695 12243.49 110.6503
ts qt.1440 2018-01-24 1440 99.43153 0.0057129 12023.34 109.6510
ts qt.1440 2018-01-25 1440 99.89454 0.0017970 11890.55 109.0438
ts qt.1440 2018-01-26 1440 99.80877 0.0029718 11901.34 109.0932
ts qt.1440 2018-01-27 1 99.28575 0.0071681 11800.26 108.6290
ts qt.1440 2018-01-29 1439 100.25508 0.0026295 11848.14 108.8492
ts qt.1440 2018-01-30 1440 99.87378 0.0014921 11832.26 108.7762
ts qt.1440 2018-01-31 1440 100.18354 0.0020715 11863.86 108.9214
ts qt.1440 2018-02-01 1440 100.26288 0.0027180 11974.99 109.4303
ts qt.1440 2018-02-02 1440 100.43414 0.0045407 12072.03 109.8728
ts qt.1440 2018-02-03 1 100.70387 0.0070140 12138.31 110.1740
ts qt.1440 2018-02-05 1439 99.73506 0.0027234 12076.74 109.8942
ts qt.1440 2018-02-06 1440 99.95149 0.0019271 11906.76 109.1181
ts qt.1440 2018-02-07 1440 99.80105 0.0021585 11951.00 109.3206
ts qt.1440 2018-02-08 1440 100.00441 0.0027458 11957.42 109.3500
ts qt.1440 2018-02-09 1440 100.01745 0.0020201 11846.29 108.8407
ts qt.1440 2018-02-10 1 100.03959 0.0003958 11836.57 108.7960
ts qt.1440 2018-02-12 1439 99.85333 0.0015393 11810.06 108.6741
ts qt.1440 2018-02-13 1440 99.35950 0.0067123 11665.00 108.0046
ts qt.1440 2018-02-14 1440 99.53405 0.0047535 11510.96 107.2892
ts qt.1440 2018-02-15 1440 99.54964 0.0045157 11342.71 106.5021
ts qt.1440 2018-02-16 1440 99.97927 0.0011759 11254.57 106.0876
ts qt.1440 2018-02-17 1 100.15951 0.0015938 11300.97 106.3060
ts qt.1440 2018-02-19 1439 100.21406 0.0023174 11336.73 106.4741
ts qt.1440 2018-02-20 1440 100.43017 0.0043225 11451.01 107.0094
ts qt.1440 2018-02-21 1440 100.28167 0.0028546 11577.32 107.5980
ts qt.1440 2018-02-22 1440 99.48471 0.0051765 11491.09 107.1965
ts qt.1440 2018-02-23 1440 100.09904 0.0012475 11409.03 106.8131
ts qt.1440 2018-02-24 1 100.13486 0.0013477 11425.69 106.8910
ts qt.1440 2018-02-26 1439 99.92821 0.0017975 11402.75 106.7837
ts qt.1440 2018-02-27 1440 100.18750 0.0020153 11469.21 107.0944
ts qt.1440 2018-02-28 1440 99.77217 0.0024477 11458.55 107.0446
ts qt.1440 2018-03-01 1440 100.07336 0.0016688 11389.51 106.7217
ts qt.1440 2018-03-02 1440 99.51865 0.0048289 11185.24 105.7603
ts qt.1440 2018-03-03 1 99.52719 0.0047393 11177.99 105.7260
ts qt.1440 2018-03-05 1439 100.02769 0.0018064 11175.08 105.7123
ts qt.1440 2018-03-06 1440 100.02110 0.0011799 11275.41 106.1858
ts qt.1440 2018-03-07 1440 99.70879 0.0029414 11191.63 105.7905
ts qt.1440 2018-03-08 1440 100.11550 0.0011587 11257.18 106.0998
ts qt.1440 2018-03-09 1440 100.54671 0.0054578 11391.07 106.7290
ts qt.1440 2018-03-10 1 100.56414 0.0056256 11412.33 106.8285
ts qt.1440 2018-03-12 1439 99.80181 0.0021533 11363.59 106.6001
ts qt.1440 2018-03-13 1440 100.31331 0.0033398 11385.84 106.7044
ts qt.1440 2018-03-14 1440 99.86718 0.0014280 11331.94 106.4516
ts qt.1440 2018-03-15 1440 99.77632 0.0023566 11251.42 106.0727
ts qt.1440 2018-03-16 1440 99.71954 0.0029431 11234.04 105.9908
ts qt.1440 2018-03-17 1 99.66214 0.0033843 11232.29 105.9825
ts qt.1440 2018-03-19 1439 100.03461 0.0009703 11226.19 105.9537
ts qt.1440 2018-03-20 1440 100.25295 0.0026749 11303.43 106.3176
ts qt.1440 2018-03-21 1440 99.86435 0.0015892 11310.68 106.3517
ts qt.1440 2018-03-22 1440 99.67800 0.0032418 11169.29 105.6848
ts qt.1440 2018-03-23 1440 99.70545 0.0029635 11013.37 104.9446
ts qt.1440 2018-03-24 1 99.48089 0.0052046 10969.63 104.7360
ts qt.1440 2018-03-26 1439 100.32368 0.0032693 11032.31 105.0348
ts qt.1440 2018-03-27 1440 100.24166 0.0024344 11153.99 105.6124
ts qt.1440 2018-03-28 1440 100.53780 0.0053695 11218.95 105.9196
ts qt.1440 2018-03-29 1440 99.75878 0.0026112 11356.53 106.5670
ts qt.1440 2018-03-30 1440 99.85673 0.0016567 11291.23 106.2602
ts qt.1440 2018-03-31 1 99.86611 0.0013398 11296.82 106.2865
ts qt.1440 2018-04-02 1439 99.96871 0.0015227 11282.62 106.2197
ts qt.1440 2018-04-03 1440 100.24661 0.0027466 11270.83 106.1641
ts qt.1440 2018-04-04 1440 99.88933 0.0015264 11335.18 106.4668
ts qt.1440 2018-04-05 1440 100.34729 0.0034652 11466.15 107.0801
ts qt.1440 2018-04-06 1440 99.87014 0.0017755 11492.45 107.2028
ts qt.1440 2018-04-07 1 99.58543 0.0041543 11435.74 106.9380
ts qt.1440 2018-04-09 1439 100.07931 0.0012103 11445.22 106.9823
ts qt.1440 2018-04-10 1440 100.26314 0.0027134 11457.75 107.0409
ts qt.1440 2018-04-11 1440 99.80015 0.0020822 11444.89 106.9808
ts qt.1440 2018-04-12 1440 100.23405 0.0023463 11456.52 107.0351
ts qt.1440 2018-04-13 1440 100.14299 0.0014659 11550.18 107.4718
ts qt.1440 2018-04-14 1 100.03358 0.0003358 11525.20 107.3555
ts qt.1440 2018-04-16 1439 99.88607 0.0016859 11506.89 107.2702
ts qt.1440 2018-04-17 1440 99.91659 0.0008867 11459.97 107.0513
ts qt.1440 2018-04-18 1440 100.17955 0.0018042 11496.97 107.2239
ts qt.1440 2018-04-19 1440 100.07960 0.0008805 11527.97 107.3684
ts qt.1440 2018-04-20 1440 100.15851 0.0015943 11575.09 107.5876
ts qt.1440 2018-04-21 1 100.25518 0.0025485 11586.80 107.6420
ts qt.1440 2018-04-23 1439 100.40242 0.0040104 11692.38 108.1313
ts qt.1440 2018-04-24 1440 100.07286 0.0008566 11842.73 108.8243
ts qt.1440 2018-04-25 1440 100.22498 0.0023087 11904.94 109.1097
ts qt.1440 2018-04-26 1440 99.87158 0.0013054 11950.00 109.3160
ts qt.1440 2018-04-27 1440 99.92432 0.0009771 11931.93 109.2334
ts qt.1440 2018-04-28 1 99.77760 0.0022264 11893.65 109.0580
ts qt.1440 2018-04-30 1439 100.13039 0.0013319 11929.23 109.2210
ts qt.1440 2018-05-01 1440 100.15926 0.0018076 11996.63 109.5292
ts qt.1440 2018-05-02 1440 99.96207 0.0006188 12060.18 109.8189
ts qt.1440 2018-05-03 1440 99.68749 0.0031659 11987.07 109.4855
ts qt.1440 2018-05-04 1440 99.92402 0.0008369 11899.13 109.0831
ts qt.1440 2018-05-05 1 99.89322 0.0010684 11897.68 109.0765
ts qt.1440 2018-05-07 1439 100.08190 0.0011195 11911.40 109.1394
ts qt.1440 2018-05-08 1440 99.96336 0.0007799 11891.41 109.0477
ts qt.1440 2018-05-09 1440 100.41836 0.0042941 12003.25 109.5593
ts qt.1440 2018-05-10 1440 99.90361 0.0013997 12023.21 109.6504
ts qt.1440 2018-05-11 1440 99.94605 0.0008721 11958.04 109.3528
ts qt.1440 2018-05-12 1 99.98912 0.0001088 11965.30 109.3860
ts qt.1440 2018-05-14 1439 100.07245 0.0009961 11982.15 109.4630
ts qt.1440 2018-05-15 1440 100.30139 0.0030068 12099.12 109.9960
ts qt.1440 2018-05-16 1440 99.88610 0.0011832 12151.15 110.2323
ts qt.1440 2018-05-17 1440 100.15736 0.0020327 12218.46 110.5372
ts qt.1440 2018-05-18 1440 100.09362 0.0011892 12287.92 110.8509
ts qt.1440 2018-05-19 1 99.98854 0.0001146 12266.23 110.7530
ts qt.1440 2018-05-21 1439 100.35854 0.0035782 12351.42 111.1370
ts qt.1440 2018-05-22 1440 99.89266 0.0010854 12312.95 110.9638
ts qt.1440 2018-05-23 1440 99.41984 0.0058342 12158.59 110.2660
ts qt.1440 2018-05-24 1440 99.54194 0.0045977 11998.41 109.5372
ts qt.1440 2018-05-25 1440 100.19007 0.0019601 11973.30 109.4226
ts qt.1440 2018-05-26 1 100.12226 0.0012218 11965.73 109.3880
ts qt.1440 2018-05-28 1439 100.06046 0.0007972 11978.37 109.4457
ts qt.1440 2018-05-29 1440 99.54203 0.0046011 11861.43 108.9102
ts qt.1440 2018-05-30 1440 100.03019 0.0014834 11827.26 108.7532
ts qt.1440 2018-05-31 1440 99.87623 0.0013513 11824.88 108.7423
ts qt.1440 2018-06-01 1440 100.43798 0.0044410 11932.57 109.2363
ts qt.1440 2018-06-02 1 100.64294 0.0064088 11994.41 109.5190
ts qt.1440 2018-06-04 1439 100.10483 0.0012295 12014.08 109.6088
ts qt.1440 2018-06-05 1440 100.02716 0.0008177 12054.61 109.7935
ts qt.1440 2018-06-06 1440 100.24059 0.0024030 12102.82 110.0128
ts qt.1440 2018-06-07 1440 99.81551 0.0018616 12089.87 109.9539
ts qt.1440 2018-06-08 1440 99.87472 0.0015551 11999.72 109.5433
ts qt.1440 2018-06-09 1 99.84551 0.0015461 11997.37 109.5325
ts qt.1440 2018-06-11 1439 100.30293 0.0033404 12060.77 109.8215
ts qt.1440 2018-06-12 1440 100.22780 0.0022768 12161.63 110.2798
ts qt.1440 2018-06-13 1440 100.13051 0.0013299 12214.51 110.5193
ts qt.1440 2018-06-14 1440 99.88248 0.0020620 12155.51 110.2520
ts qt.1440 2018-06-15 1440 100.01072 0.0006627 12236.36 110.6181
ts qt.1440 2018-06-16 1 100.02957 0.0002957 12246.85 110.6655
ts qt.1440 2018-06-18 1439 99.87001 0.0013567 12212.85 110.5118
ts qt.1440 2018-06-19 1440 99.49619 0.0051014 12092.22 109.9646
ts qt.1440 2018-06-20 1440 100.16276 0.0016506 12131.88 110.1448
ts qt.1440 2018-06-21 1440 100.05153 0.0023273 12174.11 110.3364
ts qt.1440 2018-06-22 1440 100.06404 0.0009156 12102.67 110.0121
ts qt.1440 2018-06-23 1 100.00088 0.0000088 12097.14 109.9870
ts qt.1440 2018-06-25 1439 99.68749 0.0031321 12011.46 109.5968
ts qt.1440 2018-06-26 1440 100.06890 0.0014602 12042.42 109.7380
ts qt.1440 2018-06-27 1440 100.11335 0.0015853 12115.29 110.0695
ts qt.1440 2018-06-28 1440 100.10230 0.0011820 12163.27 110.2872
ts qt.1440 2018-06-29 1440 100.22922 0.0022926 12244.61 110.6554
ts qt.1440 2018-06-30 1 100.17277 0.0017262 12251.83 110.6880
ts qt.1440 2018-07-02 1439 100.15415 0.0015512 12277.07 110.8019
ts qt.1440 2018-07-03 1440 99.96303 0.0014022 12275.38 110.7943
ts qt.1440 2018-07-04 1440 99.93172 0.0006943 12203.16 110.4679
ts qt.1440 2018-07-05 1440 100.09407 0.0011093 12224.79 110.5658
ts qt.1440 2018-07-06 1440 99.97584 0.0009014 12229.69 110.5879
ts qt.1440 2018-07-07 1 99.83672 0.0016341 12202.18 110.4635
ts wk.1440 2018-01-03 1439 100.05388 0.0006374 12617.14 112.3261
ts wk.1440 2018-01-04 1440 100.15406 0.0015414 12696.52 112.6789
ts wk.1440 2018-01-05 1440 100.24181 0.0024257 12781.03 113.0532
ts wk.1440 2018-01-06 1 100.27088 0.0027051 12783.02 113.0620
ts wk.1440 2018-01-08 1439 100.03877 0.0007427 12797.02 113.1239
ts wk.1440 2018-01-09 1440 99.66080 0.0034810 12709.18 112.7350
ts wk.1440 2018-01-10 1440 99.32425 0.0068410 12512.95 111.8613
ts wk.1440 2018-01-11 1440 100.14017 0.0022198 12434.67 111.5109
ts wk.1440 2018-01-12 1440 99.96428 0.0010003 12368.72 111.2147
ts wk.1440 2018-01-13 1 99.79519 0.0020502 12326.11 111.0230
ts wk.1440 2018-01-15 1439 99.66320 0.0033910 12249.50 110.6774
ts wk.1440 2018-01-16 1440 100.37715 0.0038844 12255.80 110.7059
ts wk.1440 2018-01-17 1440 100.14109 0.0021181 12260.34 110.7264
ts wk.1440 2018-01-18 1440 99.91215 0.0013076 12361.75 111.1834
ts wk.1440 2018-01-19 1440 99.68360 0.0031700 12269.67 110.7685
ts wk.1440 2018-01-20 1 99.75347 0.0024684 12284.40 110.8350
ts wk.1440 2018-01-22 1439 100.05910 0.0012022 12282.58 110.8268
ts wk.1440 2018-01-23 1440 99.80984 0.0023505 12243.49 110.6503
ts wk.1440 2018-01-24 1440 99.47002 0.0053277 12023.34 109.6510
ts wk.1440 2018-01-25 1440 99.90932 0.0015935 11890.55 109.0438
ts wk.1440 2018-01-26 1440 99.82726 0.0029047 11901.34 109.0932
ts wk.1440 2018-01-27 1 99.28073 0.0072187 11800.26 108.6290
ts wk.1440 2018-01-29 1439 100.22313 0.0024987 11848.14 108.8492
ts wk.1440 2018-01-30 1440 99.83533 0.0019114 11832.26 108.7762
ts wk.1440 2018-01-31 1440 100.15667 0.0020419 11863.86 108.9214
ts wk.1440 2018-02-01 1440 100.24011 0.0026280 11974.99 109.4303
ts wk.1440 2018-02-02 1440 100.39976 0.0041658 12072.03 109.8728
ts wk.1440 2018-02-03 1 100.71070 0.0070818 12138.31 110.1740
ts wk.1440 2018-02-05 1439 99.72140 0.0028594 12076.74 109.8942
ts wk.1440 2018-02-06 1440 99.91272 0.0019706 11906.76 109.1181
ts wk.1440 2018-02-07 1440 99.80436 0.0023370 11951.00 109.3206
ts wk.1440 2018-02-08 1440 100.03064 0.0030433 11957.42 109.3500
ts wk.1440 2018-02-09 1440 100.00885 0.0021772 11846.29 108.8407
ts wk.1440 2018-02-10 1 100.04803 0.0004802 11836.57 108.7960
ts wk.1440 2018-02-12 1439 99.83818 0.0017041 11810.06 108.6741
ts wk.1440 2018-02-13 1440 99.36674 0.0065272 11665.00 108.0046
ts wk.1440 2018-02-14 1440 99.53402 0.0046971 11510.96 107.2892
ts wk.1440 2018-02-15 1440 99.55719 0.0044405 11342.71 106.5021
ts wk.1440 2018-02-16 1440 100.02639 0.0013117 11254.57 106.0876
ts wk.1440 2018-02-17 1 100.16105 0.0016092 11300.97 106.3060
ts wk.1440 2018-02-19 1439 100.26195 0.0028601 11336.73 106.4741
ts wk.1440 2018-02-20 1440 100.42945 0.0043593 11451.01 107.0094
ts wk.1440 2018-02-21 1440 100.25776 0.0026358 11577.32 107.5980
ts wk.1440 2018-02-22 1440 99.45656 0.0054605 11491.09 107.1965
ts wk.1440 2018-02-23 1440 100.07427 0.0010499 11409.03 106.8131
ts wk.1440 2018-02-24 1 100.12833 0.0012825 11425.69 106.8910
ts wk.1440 2018-02-26 1439 99.91965 0.0021071 11402.75 106.7837
ts wk.1440 2018-02-27 1440 100.19529 0.0021763 11469.21 107.0944
ts wk.1440 2018-02-28 1440 99.77460 0.0024050 11458.55 107.0446
ts wk.1440 2018-03-01 1440 100.05090 0.0016839 11389.51 106.7217
ts wk.1440 2018-03-02 1440 99.48668 0.0051505 11185.24 105.7603
ts wk.1440 2018-03-03 1 99.52549 0.0047564 11177.99 105.7260
ts wk.1440 2018-03-05 1439 100.03410 0.0015877 11175.08 105.7123
ts wk.1440 2018-03-06 1440 100.02492 0.0013123 11275.41 106.1858
ts wk.1440 2018-03-07 1440 99.69587 0.0030794 11191.63 105.7905
ts wk.1440 2018-03-08 1440 100.16847 0.0016838 11257.18 106.0998
ts wk.1440 2018-03-09 1440 100.61628 0.0061470 11391.07 106.7290
ts wk.1440 2018-03-10 1 100.57299 0.0057136 11412.33 106.8285
ts wk.1440 2018-03-12 1439 99.81392 0.0020203 11363.59 106.6001
ts wk.1440 2018-03-13 1440 100.30483 0.0033267 11385.84 106.7044
ts wk.1440 2018-03-14 1440 99.79891 0.0020168 11331.94 106.4516
ts wk.1440 2018-03-15 1440 99.71200 0.0029399 11251.42 106.0727
ts wk.1440 2018-03-16 1440 99.72023 0.0030515 11234.04 105.9908
ts wk.1440 2018-03-17 1 99.66007 0.0034051 11232.29 105.9825
ts wk.1440 2018-03-19 1439 100.03026 0.0009582 11226.19 105.9537
ts wk.1440 2018-03-20 1440 100.30583 0.0030779 11303.43 106.3176
ts wk.1440 2018-03-21 1440 99.91333 0.0013913 11310.68 106.3517
ts wk.1440 2018-03-22 1440 99.69564 0.0030502 11169.29 105.6848
ts wk.1440 2018-03-23 1440 99.67489 0.0032589 11013.37 104.9446
ts wk.1440 2018-03-24 1 99.48140 0.0051995 10969.63 104.7360
ts wk.1440 2018-03-26 1439 100.28659 0.0029386 11032.31 105.0348
ts wk.1440 2018-03-27 1440 100.21789 0.0022034 11153.99 105.6124
ts wk.1440 2018-03-28 1440 100.45060 0.0045633 11218.95 105.9196
ts wk.1440 2018-03-29 1440 99.75933 0.0027492 11356.53 106.5670
ts wk.1440 2018-03-30 1440 99.85842 0.0016134 11291.23 106.2602
ts wk.1440 2018-03-31 1 99.86468 0.0013541 11296.82 106.2865
ts wk.1440 2018-04-02 1439 100.01643 0.0017569 11282.62 106.2197
ts wk.1440 2018-04-03 1440 100.26681 0.0029644 11270.83 106.1641
ts wk.1440 2018-04-04 1440 99.93027 0.0014281 11335.18 106.4668
ts wk.1440 2018-04-05 1440 100.36512 0.0036426 11466.15 107.0801
ts wk.1440 2018-04-06 1440 99.87028 0.0017806 11492.45 107.2028
ts wk.1440 2018-04-07 1 99.58555 0.0041532 11435.74 106.9380
ts wk.1440 2018-04-09 1439 100.08389 0.0012169 11445.22 106.9823
ts wk.1440 2018-04-10 1440 100.26223 0.0026912 11457.75 107.0409
ts wk.1440 2018-04-11 1440 99.77088 0.0023654 11444.89 106.9808
ts wk.1440 2018-04-12 1440 100.19938 0.0020406 11456.52 107.0351
ts wk.1440 2018-04-13 1440 100.10795 0.0011652 11550.18 107.4718
ts wk.1440 2018-04-14 1 100.03228 0.0003228 11525.20 107.3555
ts wk.1440 2018-04-16 1439 99.86004 0.0018910 11506.89 107.2702
ts wk.1440 2018-04-17 1440 99.92359 0.0008102 11459.97 107.0513
ts wk.1440 2018-04-18 1440 100.17749 0.0018165 11496.97 107.2239
ts wk.1440 2018-04-19 1440 100.07502 0.0008876 11527.97 107.3684
ts wk.1440 2018-04-20 1440 100.14609 0.0014735 11575.09 107.5876
ts wk.1440 2018-04-21 1 100.25507 0.0025474 11586.80 107.6420
ts wk.1440 2018-04-23 1439 100.39331 0.0039272 11692.38 108.1313
ts wk.1440 2018-04-24 1440 99.73862 0.0026357 11842.73 108.8243
ts wk.1440 2018-04-25 1440 100.07070 0.0009382 11904.94 109.1097
ts wk.1440 2018-04-26 1440 99.68254 0.0032232 11950.00 109.3160
ts wk.1440 2018-04-27 1440 99.96766 0.0010055 11931.93 109.2334
ts wk.1440 2018-04-28 1 99.77765 0.0022260 11893.65 109.0580
ts wk.1440 2018-04-30 1439 100.16178 0.0016189 11929.23 109.2210
ts wk.1440 2018-05-01 1440 100.16995 0.0018354 11996.63 109.5292
ts wk.1440 2018-05-02 1440 99.98443 0.0005955 12060.18 109.8189
ts wk.1440 2018-05-03 1440 99.69142 0.0031297 11987.07 109.4855
ts wk.1440 2018-05-04 1440 99.93452 0.0008463 11899.13 109.0831
ts wk.1440 2018-05-05 1 99.89314 0.0010692 11897.68 109.0765
ts wk.1440 2018-05-07 1439 100.10137 0.0012390 11911.40 109.1394
ts wk.1440 2018-05-08 1440 99.96201 0.0008157 11891.41 109.0477
ts wk.1440 2018-05-09 1440 100.41152 0.0042790 12003.25 109.5593
ts wk.1440 2018-05-10 1440 99.87685 0.0015171 12023.21 109.6504
ts wk.1440 2018-05-11 1440 99.92213 0.0010090 11958.04 109.3528
ts wk.1440 2018-05-12 1 99.98905 0.0001095 11965.30 109.3860
ts wk.1440 2018-05-14 1439 100.06327 0.0009799 11982.15 109.4630
ts wk.1440 2018-05-15 1440 100.29571 0.0029500 12099.12 109.9960
ts wk.1440 2018-05-16 1440 99.89889 0.0011129 12151.15 110.2323
ts wk.1440 2018-05-17 1440 100.19652 0.0022281 12218.46 110.5372
ts wk.1440 2018-05-18 1440 100.13333 0.0015220 12287.92 110.8509
ts wk.1440 2018-05-19 1 99.98854 0.0001146 12266.23 110.7530
ts wk.1440 2018-05-21 1439 100.37959 0.0037878 12351.42 111.1370
ts wk.1440 2018-05-22 1440 99.87654 0.0012449 12312.95 110.9638
ts wk.1440 2018-05-23 1440 99.39467 0.0060785 12158.59 110.2660
ts wk.1440 2018-05-24 1440 99.53339 0.0046817 11998.41 109.5372
ts wk.1440 2018-05-25 1440 100.18972 0.0019659 11973.30 109.4226
ts wk.1440 2018-05-26 1 100.12220 0.0012213 11965.73 109.3880
ts wk.1440 2018-05-28 1439 100.07208 0.0008628 11978.37 109.4457
ts wk.1440 2018-05-29 1440 99.54841 0.0045295 11861.43 108.9102
ts wk.1440 2018-05-30 1440 100.03578 0.0017527 11827.26 108.7532
ts wk.1440 2018-05-31 1440 99.85386 0.0015151 11824.88 108.7423
ts wk.1440 2018-06-01 1440 100.45866 0.0046085 11932.57 109.2363
ts wk.1440 2018-06-02 1 100.64294 0.0064088 11994.41 109.5190
ts wk.1440 2018-06-04 1439 100.11800 0.0014062 12014.08 109.6088
ts wk.1440 2018-06-05 1440 100.03858 0.0009754 12054.61 109.7935
ts wk.1440 2018-06-06 1440 100.23957 0.0023925 12102.82 110.0128
ts wk.1440 2018-06-07 1440 99.79789 0.0020341 12089.87 109.9539
ts wk.1440 2018-06-08 1440 99.86415 0.0015578 11999.72 109.5433
ts wk.1440 2018-06-09 1 99.84559 0.0015453 11997.37 109.5325
ts wk.1440 2018-06-11 1439 100.30342 0.0034765 12060.77 109.8215
ts wk.1440 2018-06-12 1440 100.20905 0.0020893 12161.63 110.2798
ts wk.1440 2018-06-13 1440 100.12119 0.0012366 12214.51 110.5193
ts wk.1440 2018-06-14 1440 99.84484 0.0022947 12155.51 110.2520
ts wk.1440 2018-06-15 1440 100.02864 0.0007414 12236.36 110.6181
ts wk.1440 2018-06-16 1 100.02949 0.0002948 12246.85 110.6655
ts wk.1440 2018-06-18 1439 99.88188 0.0012732 12212.85 110.5118
ts wk.1440 2018-06-19 1440 99.53007 0.0047996 12092.22 109.9646
ts wk.1440 2018-06-20 1440 100.24136 0.0024165 12131.88 110.1448
ts wk.1440 2018-06-21 1440 100.10382 0.0026874 12174.11 110.3364
ts wk.1440 2018-06-22 1440 100.06512 0.0009681 12102.67 110.0121
ts wk.1440 2018-06-23 1 100.00103 0.0000103 12097.14 109.9870
ts wk.1440 2018-06-25 1439 99.66938 0.0033133 12011.46 109.5968
ts wk.1440 2018-06-26 1440 100.04892 0.0015926 12042.42 109.7380
ts wk.1440 2018-06-27 1440 100.09659 0.0016741 12115.29 110.0695
ts wk.1440 2018-06-28 1440 100.10791 0.0012175 12163.27 110.2872
ts wk.1440 2018-06-29 1440 100.26798 0.0026757 12244.61 110.6554
ts wk.1440 2018-06-30 1 100.17275 0.0017260 12251.83 110.6880
ts wk.1440 2018-07-02 1439 100.15658 0.0016004 12277.07 110.8019
ts wk.1440 2018-07-03 1440 99.95189 0.0015392 12275.38 110.7943
ts wk.1440 2018-07-04 1440 99.89551 0.0010488 12203.16 110.4679
ts wk.1440 2018-07-05 1440 100.06410 0.0010582 12224.79 110.5658
ts wk.1440 2018-07-06 1440 99.94692 0.0008899 12229.69 110.5879
ts wk.1440 2018-07-07 1 99.83603 0.0016410 12202.18 110.4635
ts yr.1440 2018-01-03 1439 100.06545 0.0007281 12617.14 112.3261
ts yr.1440 2018-01-04 1440 100.22569 0.0022540 12696.52 112.6789
ts yr.1440 2018-01-05 1440 100.32410 0.0032344 12781.03 113.0532
ts yr.1440 2018-01-06 1 100.28941 0.0028899 12783.02 113.0620
ts yr.1440 2018-01-08 1439 100.06073 0.0008373 12797.02 113.1239
ts yr.1440 2018-01-09 1440 99.66521 0.0034220 12709.18 112.7350
ts yr.1440 2018-01-10 1440 99.30652 0.0070122 12512.95 111.8613
ts yr.1440 2018-01-11 1440 100.11729 0.0020267 12434.67 111.5109
ts yr.1440 2018-01-12 1440 99.96515 0.0009403 12368.72 111.2147
ts yr.1440 2018-01-13 1 99.78704 0.0021319 12326.11 111.0230
ts yr.1440 2018-01-15 1439 99.69061 0.0031632 12249.50 110.6774
ts yr.1440 2018-01-16 1440 100.17646 0.0020232 12255.80 110.7059
ts yr.1440 2018-01-17 1440 100.21920 0.0025692 12260.34 110.7264
ts yr.1440 2018-01-18 1440 99.91899 0.0011150 12361.75 111.1834
ts yr.1440 2018-01-19 1440 99.68215 0.0031845 12269.67 110.7685
ts yr.1440 2018-01-20 1 99.74787 0.0025245 12284.40 110.8350
ts yr.1440 2018-01-22 1439 100.02773 0.0011060 12282.58 110.8268
ts yr.1440 2018-01-23 1440 99.77232 0.0024671 12243.49 110.6503
ts yr.1440 2018-01-24 1440 99.43043 0.0057232 12023.34 109.6510
ts yr.1440 2018-01-25 1440 99.89229 0.0018061 11890.55 109.0438
ts yr.1440 2018-01-26 1440 99.80673 0.0029750 11901.34 109.0932
ts yr.1440 2018-01-27 1 99.28405 0.0071853 11800.26 108.6290
ts yr.1440 2018-01-29 1439 100.25504 0.0026299 11848.14 108.8492
ts yr.1440 2018-01-30 1440 99.87316 0.0014964 11832.26 108.7762
ts yr.1440 2018-01-31 1440 100.18246 0.0020674 11863.86 108.9214
ts yr.1440 2018-02-01 1440 100.26138 0.0027065 11974.99 109.4303
ts yr.1440 2018-02-02 1440 100.43644 0.0045563 12072.03 109.8728
ts yr.1440 2018-02-03 1 100.70643 0.0070394 12138.31 110.1740
ts yr.1440 2018-02-05 1439 99.73381 0.0027340 12076.74 109.8942
ts yr.1440 2018-02-06 1440 99.96120 0.0019117 11906.76 109.1181
ts yr.1440 2018-02-07 1440 99.79774 0.0021832 11951.00 109.3206
ts yr.1440 2018-02-08 1440 100.01255 0.0027637 11957.42 109.3500
ts yr.1440 2018-02-09 1440 100.02175 0.0020275 11846.29 108.8407
ts yr.1440 2018-02-10 1 100.04384 0.0004383 11836.57 108.7960
ts yr.1440 2018-02-12 1439 99.85241 0.0015469 11810.06 108.6741
ts yr.1440 2018-02-13 1440 99.35995 0.0067093 11665.00 108.0046
ts yr.1440 2018-02-14 1440 99.53140 0.0047739 11510.96 107.2892
ts yr.1440 2018-02-15 1440 99.54696 0.0045426 11342.71 106.5021
ts yr.1440 2018-02-16 1440 99.97888 0.0011771 11254.57 106.0876
ts yr.1440 2018-02-17 1 100.15973 0.0015960 11300.97 106.3060
ts yr.1440 2018-02-19 1439 100.21414 0.0023194 11336.73 106.4741
ts yr.1440 2018-02-20 1440 100.42826 0.0043060 11451.01 107.0094
ts yr.1440 2018-02-21 1440 100.28160 0.0028545 11577.32 107.5980
ts yr.1440 2018-02-22 1440 99.48679 0.0051556 11491.09 107.1965
ts yr.1440 2018-02-23 1440 100.09603 0.0012318 11409.03 106.8131
ts yr.1440 2018-02-24 1 100.13198 0.0013190 11425.69 106.8910
ts yr.1440 2018-02-26 1439 99.92934 0.0017963 11402.75 106.7837
ts yr.1440 2018-02-27 1440 100.18816 0.0020191 11469.21 107.0944
ts yr.1440 2018-02-28 1440 99.76570 0.0024970 11458.55 107.0446
ts yr.1440 2018-03-01 1440 100.06804 0.0016431 11389.51 106.7217
ts yr.1440 2018-03-02 1440 99.51810 0.0048344 11185.24 105.7603
ts yr.1440 2018-03-03 1 99.52654 0.0047458 11177.99 105.7260
ts yr.1440 2018-03-05 1439 100.03044 0.0018001 11175.08 105.7123
ts yr.1440 2018-03-06 1440 100.02076 0.0011788 11275.41 106.1858
ts yr.1440 2018-03-07 1440 99.70639 0.0029629 11191.63 105.7905
ts yr.1440 2018-03-08 1440 100.11162 0.0011222 11257.18 106.0998
ts yr.1440 2018-03-09 1440 100.55088 0.0054987 11391.07 106.7290
ts yr.1440 2018-03-10 1 100.56884 0.0056723 11412.33 106.8285
ts yr.1440 2018-03-12 1439 99.80961 0.0020989 11363.59 106.6001
ts yr.1440 2018-03-13 1440 100.31507 0.0033527 11385.84 106.7044
ts yr.1440 2018-03-14 1440 99.87198 0.0013914 11331.94 106.4516
ts yr.1440 2018-03-15 1440 99.77588 0.0023602 11251.42 106.0727
ts yr.1440 2018-03-16 1440 99.71866 0.0029500 11234.04 105.9908
ts yr.1440 2018-03-17 1 99.66114 0.0033944 11232.29 105.9825
ts yr.1440 2018-03-19 1439 100.02602 0.0009622 11226.19 105.9537
ts yr.1440 2018-03-20 1440 100.25702 0.0027025 11303.43 106.3176
ts yr.1440 2018-03-21 1440 99.86483 0.0015871 11310.68 106.3517
ts yr.1440 2018-03-22 1440 99.68111 0.0032131 11169.29 105.6848
ts yr.1440 2018-03-23 1440 99.70663 0.0029523 11013.37 104.9446
ts yr.1440 2018-03-24 1 99.48220 0.0051914 10969.63 104.7360
ts yr.1440 2018-03-26 1439 100.32098 0.0032454 11032.31 105.0348
ts yr.1440 2018-03-27 1440 100.23821 0.0024025 11153.99 105.6124
ts yr.1440 2018-03-28 1440 100.52128 0.0052204 11218.95 105.9196
ts yr.1440 2018-03-29 1440 99.75884 0.0026103 11356.53 106.5670
ts yr.1440 2018-03-30 1440 99.85749 0.0016520 11291.23 106.2602
ts yr.1440 2018-03-31 1 99.86684 0.0013325 11296.82 106.2865
ts yr.1440 2018-04-02 1439 99.97046 0.0015288 11282.62 106.2197
ts yr.1440 2018-04-03 1440 100.24983 0.0027647 11270.83 106.1641
ts yr.1440 2018-04-04 1440 99.88920 0.0015265 11335.18 106.4668
ts yr.1440 2018-04-05 1440 100.34799 0.0034721 11466.15 107.0801
ts yr.1440 2018-04-06 1440 99.86769 0.0017816 11492.45 107.2028
ts yr.1440 2018-04-07 1 99.58295 0.0041792 11435.74 106.9380
ts yr.1440 2018-04-09 1439 100.08064 0.0012198 11445.22 106.9823
ts yr.1440 2018-04-10 1440 100.26682 0.0027402 11457.75 107.0409
ts yr.1440 2018-04-11 1440 99.79814 0.0020988 11444.89 106.9808
ts yr.1440 2018-04-12 1440 100.23365 0.0023426 11456.52 107.0351
ts yr.1440 2018-04-13 1440 100.13739 0.0014224 11550.18 107.4718
ts yr.1440 2018-04-14 1 100.02794 0.0002794 11525.20 107.3555
ts yr.1440 2018-04-16 1439 99.88296 0.0017041 11506.89 107.2702
ts yr.1440 2018-04-17 1440 99.91837 0.0008725 11459.97 107.0513
ts yr.1440 2018-04-18 1440 100.17913 0.0018003 11496.97 107.2239
ts yr.1440 2018-04-19 1440 100.07991 0.0008822 11527.97 107.3684
ts yr.1440 2018-04-20 1440 100.15655 0.0015756 11575.09 107.5876
ts yr.1440 2018-04-21 1 100.25328 0.0025296 11586.80 107.6420
ts yr.1440 2018-04-23 1439 100.40095 0.0039958 11692.38 108.1313
ts yr.1440 2018-04-24 1440 100.07265 0.0008561 11842.73 108.8243
ts yr.1440 2018-04-25 1440 100.22602 0.0023165 11904.94 109.1097
ts yr.1440 2018-04-26 1440 99.87334 0.0012903 11950.00 109.3160
ts yr.1440 2018-04-27 1440 99.92802 0.0009660 11931.93 109.2334
ts yr.1440 2018-04-28 1 99.78040 0.0021984 11893.65 109.0580
ts yr.1440 2018-04-30 1439 100.13550 0.0013741 11929.23 109.2210
ts yr.1440 2018-05-01 1440 100.15945 0.0018065 11996.63 109.5292
ts yr.1440 2018-05-02 1440 99.96057 0.0006242 12060.18 109.8189
ts yr.1440 2018-05-03 1440 99.69221 0.0031277 11987.07 109.4855
ts yr.1440 2018-05-04 1440 99.91977 0.0008651 11899.13 109.0831
ts yr.1440 2018-05-05 1 99.88831 0.0011175 11897.68 109.0765
ts yr.1440 2018-05-07 1439 100.08031 0.0011121 11911.40 109.1394
ts yr.1440 2018-05-08 1440 99.96088 0.0007874 11891.41 109.0477
ts yr.1440 2018-05-09 1440 100.41578 0.0042756 12003.25 109.5593
ts yr.1440 2018-05-10 1440 99.89954 0.0014172 12023.21 109.6504
ts yr.1440 2018-05-11 1440 99.94921 0.0008596 11958.04 109.3528
ts yr.1440 2018-05-12 1 99.99186 0.0000814 11965.30 109.3860
ts yr.1440 2018-05-14 1439 100.06688 0.0009810 11982.15 109.4630
ts yr.1440 2018-05-15 1440 100.30467 0.0030394 12099.12 109.9960
ts yr.1440 2018-05-16 1440 99.88996 0.0011541 12151.15 110.2323
ts yr.1440 2018-05-17 1440 100.15133 0.0020072 12218.46 110.5372
ts yr.1440 2018-05-18 1440 100.09195 0.0011818 12287.92 110.8509
ts yr.1440 2018-05-19 1 99.98650 0.0001350 12266.23 110.7530
ts yr.1440 2018-05-21 1439 100.36315 0.0036242 12351.42 111.1370
ts yr.1440 2018-05-22 1440 99.89202 0.0010916 12312.95 110.9638
ts yr.1440 2018-05-23 1440 99.42316 0.0058035 12158.59 110.2660
ts yr.1440 2018-05-24 1440 99.54464 0.0045714 11998.41 109.5372
ts yr.1440 2018-05-25 1440 100.19455 0.0019966 11973.30 109.4226
ts yr.1440 2018-05-26 1 100.12669 0.0012661 11965.73 109.3880
ts yr.1440 2018-05-28 1439 100.07779 0.0008974 11978.37 109.4457
ts yr.1440 2018-05-29 1440 99.53903 0.0046295 11861.43 108.9102
ts yr.1440 2018-05-30 1440 100.01427 0.0014692 11827.26 108.7532
ts yr.1440 2018-05-31 1440 99.87419 0.0013659 11824.88 108.7423
ts yr.1440 2018-06-01 1440 100.44320 0.0044827 11932.57 109.2363
ts yr.1440 2018-06-02 1 100.64868 0.0064658 11994.41 109.5190
ts yr.1440 2018-06-04 1439 100.10205 0.0012115 12014.08 109.6088
ts yr.1440 2018-06-05 1440 100.02606 0.0008149 12054.61 109.7935
ts yr.1440 2018-06-06 1440 100.24141 0.0024113 12102.82 110.0128
ts yr.1440 2018-06-07 1440 99.81571 0.0018596 12089.87 109.9539
ts yr.1440 2018-06-08 1440 99.87332 0.0015629 11999.72 109.5433
ts yr.1440 2018-06-09 1 99.84378 0.0015635 11997.37 109.5325
ts yr.1440 2018-06-11 1439 100.30122 0.0033300 12060.77 109.8215
ts yr.1440 2018-06-12 1440 100.22822 0.0022808 12161.63 110.2798
ts yr.1440 2018-06-13 1440 100.13050 0.0013297 12214.51 110.5193
ts yr.1440 2018-06-14 1440 99.88438 0.0020538 12155.51 110.2520
ts yr.1440 2018-06-15 1440 100.01136 0.0006623 12236.36 110.6181
ts yr.1440 2018-06-16 1 100.02994 0.0002993 12246.85 110.6655
ts yr.1440 2018-06-18 1439 99.87000 0.0013572 12212.85 110.5118
ts yr.1440 2018-06-19 1440 99.49582 0.0051049 12092.22 109.9646
ts yr.1440 2018-06-20 1440 100.16662 0.0016873 12131.88 110.1448
ts yr.1440 2018-06-21 1440 100.05124 0.0023267 12174.11 110.3364
ts yr.1440 2018-06-22 1440 100.06489 0.0009184 12102.67 110.0121
ts yr.1440 2018-06-23 1 100.00145 0.0000145 12097.14 109.9870
ts yr.1440 2018-06-25 1439 99.68584 0.0031486 12011.46 109.5968
ts yr.1440 2018-06-26 1440 100.06654 0.0014573 12042.42 109.7380
ts yr.1440 2018-06-27 1440 100.11886 0.0016074 12115.29 110.0695
ts yr.1440 2018-06-28 1440 100.10094 0.0011734 12163.27 110.2872
ts yr.1440 2018-06-29 1440 100.22739 0.0022752 12244.61 110.6554
ts yr.1440 2018-06-30 1 100.17049 0.0017034 12251.83 110.6880
ts yr.1440 2018-07-02 1439 100.15406 0.0015504 12277.07 110.8019
ts yr.1440 2018-07-03 1440 99.96069 0.0014012 12275.38 110.7943
ts yr.1440 2018-07-04 1440 99.93107 0.0007006 12203.16 110.4679
ts yr.1440 2018-07-05 1440 100.08798 0.0010730 12224.79 110.5658
ts yr.1440 2018-07-06 1440 99.97505 0.0009019 12229.69 110.5879
ts yr.1440 2018-07-07 1 99.83609 0.0016405 12202.18 110.4635
plt_s2 %>% 
  kbl('html', caption = 'Data Sample', escape = FALSE) %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>%
  scroll_box(width = '100%', fixed_thead = TRUE, height = '400px')
Data Sample
Model Period index N open.mape open.smape open.mse open.rmse
tbats dy.qt 2018-01-03 1439 99.68586 0.0031467 12617.14 112.3261
tbats dy.qt 2018-01-04 1440 99.99895 0.0007263 12696.52 112.6789
tbats dy.qt 2018-01-05 1440 100.33109 0.0033042 12781.03 113.0532
tbats dy.qt 2018-01-06 1 100.33901 0.0033844 12783.02 113.0620
tbats dy.qt 2018-01-08 1439 100.39391 0.0039311 12797.02 113.1239
tbats dy.qt 2018-01-09 1440 100.04867 0.0012931 12709.18 112.7350
tbats dy.qt 2018-01-10 1440 99.27259 0.0073400 12512.95 111.8613
tbats dy.qt 2018-01-11 1440 98.96225 0.0104334 12434.67 111.5109
tbats dy.qt 2018-01-12 1440 98.69954 0.0130904 12368.72 111.2147
tbats dy.qt 2018-01-13 1 98.52946 0.0148143 12326.11 111.0230
tbats dy.qt 2018-01-15 1439 98.22265 0.0179342 12249.50 110.6774
tbats dy.qt 2018-01-16 1440 98.24796 0.0176763 12255.80 110.7059
tbats dy.qt 2018-01-17 1440 98.26609 0.0174925 12260.34 110.7264
tbats dy.qt 2018-01-18 1440 98.67172 0.0133725 12361.75 111.1834
tbats dy.qt 2018-01-19 1440 98.30353 0.0171110 12269.67 110.7685
tbats dy.qt 2018-01-20 1 98.36262 0.0165090 12284.40 110.8350
tbats dy.qt 2018-01-22 1439 98.35525 0.0165846 12282.58 110.8268
tbats dy.qt 2018-01-23 1440 98.19844 0.0181820 12243.49 110.6503
tbats dy.qt 2018-01-24 1440 97.31119 0.0272614 12023.34 109.6510
tbats dy.qt 2018-01-25 1440 96.77278 0.0328036 11890.55 109.0438
tbats dy.qt 2018-01-26 1440 96.81623 0.0323591 11901.34 109.0932
tbats dy.qt 2018-01-27 1 96.40486 0.0366094 11800.26 108.6290
tbats dy.qt 2018-01-29 1439 96.60017 0.0345871 11848.14 108.8492
tbats dy.qt 2018-01-30 1440 96.53542 0.0352574 11832.26 108.7762
tbats dy.qt 2018-01-31 1440 96.66416 0.0339260 11863.86 108.9214
tbats dy.qt 2018-02-01 1440 97.11590 0.0292640 11974.99 109.4303
tbats dy.qt 2018-02-02 1440 97.50825 0.0252362 12072.03 109.8728
tbats dy.qt 2018-02-03 1 97.77600 0.0224901 12138.31 110.1740
tbats dy.qt 2018-02-05 1439 97.52750 0.0250364 12076.74 109.8942
tbats dy.qt 2018-02-06 1440 96.83864 0.0321241 11906.76 109.1181
tbats dy.qt 2018-02-07 1440 97.01853 0.0302673 11951.00 109.3206
tbats dy.qt 2018-02-08 1440 97.04430 0.0300045 11957.42 109.3500
tbats dy.qt 2018-02-09 1440 96.59248 0.0346683 11846.29 108.8407
tbats dy.qt 2018-02-10 1 96.55307 0.0350738 11836.57 108.7960
tbats dy.qt 2018-02-12 1439 96.44488 0.0361948 11810.06 108.6741
tbats dy.qt 2018-02-13 1440 95.84988 0.0423895 11665.00 108.0046
tbats dy.qt 2018-02-14 1440 95.21545 0.0490216 11510.96 107.2892
tbats dy.qt 2018-02-15 1440 94.51717 0.0563755 11342.71 106.5021
tbats dy.qt 2018-02-16 1440 94.14929 0.0602717 11254.57 106.0876
tbats dy.qt 2018-02-17 1 94.34327 0.0582138 11300.97 106.3060
tbats dy.qt 2018-02-19 1439 100.15807 0.0018789 11336.73 106.4741
tbats dy.qt 2018-02-20 1440 100.39103 0.0039051 11451.01 107.0094
tbats dy.qt 2018-02-21 1440 100.25293 0.0025468 11577.32 107.5980
tbats dy.qt 2018-02-22 1440 99.46320 0.0053927 11491.09 107.1965
tbats dy.qt 2018-02-23 1440 100.05442 0.0010658 11409.03 106.8131
tbats dy.qt 2018-02-24 1 100.12813 0.0012805 11425.69 106.8910
tbats dy.qt 2018-02-26 1439 99.90008 0.0017224 11402.75 106.7837
tbats dy.qt 2018-02-27 1440 100.15712 0.0017597 11469.21 107.0944
tbats dy.qt 2018-02-28 1440 99.73121 0.0028609 11458.55 107.0446
tbats dy.qt 2018-03-01 1440 100.04078 0.0014257 11389.51 106.7217
tbats dy.qt 2018-03-02 1440 99.55689 0.0044691 11185.24 105.7603
tbats dy.qt 2018-03-03 1 99.52529 0.0047584 11177.99 105.7260
tbats dy.qt 2018-03-05 1439 99.98671 0.0020805 11175.08 105.7123
tbats dy.qt 2018-03-06 1440 99.97448 0.0010510 11275.41 106.1858
tbats dy.qt 2018-03-07 1440 99.67282 0.0032912 11191.63 105.7905
tbats dy.qt 2018-03-08 1440 100.02248 0.0006004 11257.18 106.0998
tbats dy.qt 2018-03-09 1440 100.47998 0.0047965 11391.07 106.7290
tbats dy.qt 2018-03-10 1 100.57372 0.0057207 11412.33 106.8285
tbats dy.qt 2018-03-12 1439 99.78623 0.0023423 11363.59 106.6001
tbats dy.qt 2018-03-13 1440 100.26633 0.0028931 11385.84 106.7044
tbats dy.qt 2018-03-14 1440 99.88333 0.0013305 11331.94 106.4516
tbats dy.qt 2018-03-15 1440 99.76423 0.0023882 11251.42 106.0727
tbats dy.qt 2018-03-16 1440 99.66757 0.0033348 11234.04 105.9908
tbats dy.qt 2018-03-17 1 99.65997 0.0034061 11232.29 105.9825
tbats dy.qt 2018-03-19 1439 99.97263 0.0011852 11226.19 105.9537
tbats dy.qt 2018-03-20 1440 100.20904 0.0022823 11303.43 106.3176
tbats dy.qt 2018-03-21 1440 99.82901 0.0017237 11310.68 106.3517
tbats dy.qt 2018-03-22 1440 99.65709 0.0034537 11169.29 105.6848
tbats dy.qt 2018-03-23 1440 99.67875 0.0032366 11013.37 104.9446
tbats dy.qt 2018-03-24 1 99.48123 0.0052012 10969.63 104.7360
tbats dy.qt 2018-03-26 1439 100.28518 0.0028807 11032.31 105.0348
tbats dy.qt 2018-03-27 1440 100.19555 0.0019708 11153.99 105.6124
tbats dy.qt 2018-03-28 1440 100.54877 0.0054627 11218.95 105.9196
tbats dy.qt 2018-03-29 1440 99.73412 0.0027027 11356.53 106.5670
tbats dy.qt 2018-03-30 1440 99.83920 0.0017394 11291.23 106.2602
tbats dy.qt 2018-03-31 1 99.86424 0.0013585 11296.82 106.2865
tbats dy.qt 2018-04-02 1439 99.93700 0.0011310 11282.62 106.2197
tbats dy.qt 2018-04-03 1440 100.25481 0.0027837 11270.83 106.1641
tbats dy.qt 2018-04-04 1440 99.86599 0.0017314 11335.18 106.4668
tbats dy.qt 2018-04-05 1440 100.28099 0.0028526 11466.15 107.0801
tbats dy.qt 2018-04-06 1440 99.83245 0.0017703 11492.45 107.2028
tbats dy.qt 2018-04-07 1 99.58556 0.0041530 11435.74 106.9380
tbats dy.qt 2018-04-09 1439 100.04115 0.0009017 11445.22 106.9823
tbats dy.qt 2018-04-10 1440 100.22867 0.0024343 11457.75 107.0409
tbats dy.qt 2018-04-11 1440 99.79334 0.0020920 11444.89 106.9808
tbats dy.qt 2018-04-12 1440 100.22729 0.0022879 11456.52 107.0351
tbats dy.qt 2018-04-13 1440 100.14150 0.0015252 11550.18 107.4718
tbats dy.qt 2018-04-14 1 100.03289 0.0003289 11525.20 107.3555
tbats dy.qt 2018-04-16 1439 99.92011 0.0012842 11506.89 107.2702
tbats dy.qt 2018-04-17 1440 99.93751 0.0006970 11459.97 107.0513
tbats dy.qt 2018-04-18 1440 100.20349 0.0020342 11496.97 107.2239
tbats dy.qt 2018-04-19 1440 100.12256 0.0012611 11527.97 107.3684
tbats dy.qt 2018-04-20 1440 100.20483 0.0020465 11575.09 107.5876
tbats dy.qt 2018-04-21 1 100.25545 0.0025513 11586.80 107.6420
tbats dy.qt 2018-04-23 1439 100.45611 0.0045455 11692.38 108.1313
tbats dy.qt 2018-04-24 1440 100.11055 0.0011908 11842.73 108.8243
tbats dy.qt 2018-04-25 1440 100.26987 0.0026968 11904.94 109.1097
tbats dy.qt 2018-04-26 1440 99.89900 0.0010289 11950.00 109.3160
tbats dy.qt 2018-04-27 1440 99.93781 0.0008727 11931.93 109.2334
tbats dy.qt 2018-04-28 1 99.77747 0.0022278 11893.65 109.0580
tbats dy.qt 2018-04-30 1439 100.14920 0.0014945 11929.23 109.2210
tbats dy.qt 2018-05-01 1440 100.17329 0.0019150 11996.63 109.5292
tbats dy.qt 2018-05-02 1440 99.95855 0.0006544 12060.18 109.8189
tbats dy.qt 2018-05-03 1440 99.67902 0.0032314 11987.07 109.4855
tbats dy.qt 2018-05-04 1440 99.89883 0.0010363 11899.13 109.0831
tbats dy.qt 2018-05-05 1 99.89319 0.0010687 11897.68 109.0765
tbats dy.qt 2018-05-07 1439 100.05815 0.0010943 11911.40 109.1394
tbats dy.qt 2018-05-08 1440 99.95677 0.0008266 11891.41 109.0477
tbats dy.qt 2018-05-09 1440 100.39503 0.0040954 12003.25 109.5593
tbats dy.qt 2018-05-10 1440 99.91385 0.0013584 12023.21 109.6504
tbats dy.qt 2018-05-11 1440 99.95859 0.0007073 11958.04 109.3528
tbats dy.qt 2018-05-12 1 99.98915 0.0001085 11965.30 109.3860
tbats dy.qt 2018-05-14 1439 100.07057 0.0011008 11982.15 109.4630
tbats dy.qt 2018-05-15 1440 100.30340 0.0030269 12099.12 109.9960
tbats dy.qt 2018-05-16 1440 99.89417 0.0010771 12151.15 110.2323
tbats dy.qt 2018-05-17 1440 100.12827 0.0020259 12218.46 110.5372
tbats dy.qt 2018-05-18 1440 100.07706 0.0011057 12287.92 110.8509
tbats dy.qt 2018-05-19 1 99.98849 0.0001151 12266.23 110.7530
tbats dy.qt 2018-05-21 1439 100.34661 0.0034591 12351.42 111.1370
tbats dy.qt 2018-05-22 1440 99.92007 0.0008712 12312.95 110.9638
tbats dy.qt 2018-05-23 1440 99.42938 0.0057324 12158.59 110.2660
tbats dy.qt 2018-05-24 1440 99.50292 0.0049858 11998.41 109.5372
tbats dy.qt 2018-05-25 1440 100.15295 0.0016273 11973.30 109.4226
tbats dy.qt 2018-05-26 1 100.12189 0.0012181 11965.73 109.3880
tbats dy.qt 2018-05-28 1439 100.05226 0.0008182 11978.37 109.4457
tbats dy.qt 2018-05-29 1440 99.53558 0.0046848 11861.43 108.9102
tbats dy.qt 2018-05-30 1440 99.98904 0.0013351 11827.26 108.7532
tbats dy.qt 2018-05-31 1440 99.84812 0.0015397 11824.88 108.7423
tbats dy.qt 2018-06-01 1440 100.38244 0.0038975 11932.57 109.2363
tbats dy.qt 2018-06-02 1 100.64259 0.0064053 11994.41 109.5190
tbats dy.qt 2018-06-04 1439 100.08215 0.0009623 12014.08 109.6088
tbats dy.qt 2018-06-05 1440 99.98085 0.0006843 12054.61 109.7935
tbats dy.qt 2018-06-06 1440 100.20111 0.0020087 12102.82 110.0128
tbats dy.qt 2018-06-07 1440 99.79255 0.0020849 12089.87 109.9539
tbats dy.qt 2018-06-08 1440 99.85521 0.0016502 11999.72 109.5433
tbats dy.qt 2018-06-09 1 99.84581 0.0015431 11997.37 109.5325
tbats dy.qt 2018-06-11 1439 100.26474 0.0030989 12060.77 109.8215
tbats dy.qt 2018-06-12 1440 100.22386 0.0022432 12161.63 110.2798
tbats dy.qt 2018-06-13 1440 100.13182 0.0013493 12214.51 110.5193
tbats dy.qt 2018-06-14 1440 99.91755 0.0017015 12155.51 110.2520
tbats dy.qt 2018-06-15 1440 99.98738 0.0007257 12236.36 110.6181
tbats dy.qt 2018-06-16 1 100.03011 0.0003011 12246.85 110.6655
tbats dy.qt 2018-06-18 1439 99.86125 0.0014167 12212.85 110.5118
tbats dy.qt 2018-06-19 1440 99.47098 0.0053126 12092.22 109.9646
tbats dy.qt 2018-06-20 1440 100.07670 0.0009136 12131.88 110.1448
tbats dy.qt 2018-06-21 1440 99.97949 0.0019765 12174.11 110.3364
tbats dy.qt 2018-06-22 1440 100.02423 0.0006664 12102.67 110.0121
tbats dy.qt 2018-06-23 1 100.00166 0.0000166 12097.14 109.9870
tbats dy.qt 2018-06-25 1439 99.64521 0.0035565 12011.46 109.5968
tbats dy.qt 2018-06-26 1440 99.97660 0.0016579 12042.42 109.7380
tbats dy.qt 2018-06-27 1440 100.03102 0.0016466 12115.29 110.0695
tbats dy.qt 2018-06-28 1440 100.02184 0.0008678 12163.27 110.2872
tbats dy.qt 2018-06-29 1440 100.14343 0.0015275 12244.61 110.6554
tbats dy.qt 2018-06-30 1 100.17288 0.0017273 12251.83 110.6880
tbats dy.qt 2018-07-02 1439 100.10272 0.0010478 12277.07 110.8019
tbats dy.qt 2018-07-03 1440 99.90854 0.0012706 12275.38 110.7943
tbats dy.qt 2018-07-04 1440 99.89757 0.0010279 12203.16 110.4679
tbats dy.qt 2018-07-05 1440 100.05275 0.0009822 12224.79 110.5658
tbats dy.qt 2018-07-06 1440 99.94812 0.0008016 12229.69 110.5879
tbats dy.qt 2018-07-07 1 99.83559 0.0016454 12202.18 110.4635
tbats dy.yr 2018-01-03 1439 99.68586 0.0031467 12617.14 112.3261
tbats dy.yr 2018-01-04 1440 99.99895 0.0007263 12696.52 112.6789
tbats dy.yr 2018-01-05 1440 100.33109 0.0033042 12781.03 113.0532
tbats dy.yr 2018-01-06 1 100.33901 0.0033844 12783.02 113.0620
tbats dy.yr 2018-01-08 1439 100.39391 0.0039311 12797.02 113.1239
tbats dy.yr 2018-01-09 1440 100.04867 0.0012931 12709.18 112.7350
tbats dy.yr 2018-01-10 1440 99.27259 0.0073400 12512.95 111.8613
tbats dy.yr 2018-01-11 1440 98.96225 0.0104334 12434.67 111.5109
tbats dy.yr 2018-01-12 1440 98.69954 0.0130904 12368.72 111.2147
tbats dy.yr 2018-01-13 1 98.52946 0.0148143 12326.11 111.0230
tbats dy.yr 2018-01-15 1439 98.22265 0.0179342 12249.50 110.6774
tbats dy.yr 2018-01-16 1440 98.24796 0.0176763 12255.80 110.7059
tbats dy.yr 2018-01-17 1440 98.26609 0.0174925 12260.34 110.7264
tbats dy.yr 2018-01-18 1440 98.67172 0.0133725 12361.75 111.1834
tbats dy.yr 2018-01-19 1440 98.30353 0.0171110 12269.67 110.7685
tbats dy.yr 2018-01-20 1 98.36262 0.0165090 12284.40 110.8350
tbats dy.yr 2018-01-22 1439 98.35525 0.0165846 12282.58 110.8268
tbats dy.yr 2018-01-23 1440 98.19844 0.0181820 12243.49 110.6503
tbats dy.yr 2018-01-24 1440 97.31119 0.0272614 12023.34 109.6510
tbats dy.yr 2018-01-25 1440 96.77278 0.0328036 11890.55 109.0438
tbats dy.yr 2018-01-26 1440 96.81623 0.0323591 11901.34 109.0932
tbats dy.yr 2018-01-27 1 96.40486 0.0366094 11800.26 108.6290
tbats dy.yr 2018-01-29 1439 96.60017 0.0345871 11848.14 108.8492
tbats dy.yr 2018-01-30 1440 96.53542 0.0352574 11832.26 108.7762
tbats dy.yr 2018-01-31 1440 96.66416 0.0339260 11863.86 108.9214
tbats dy.yr 2018-02-01 1440 97.11590 0.0292640 11974.99 109.4303
tbats dy.yr 2018-02-02 1440 97.50825 0.0252362 12072.03 109.8728
tbats dy.yr 2018-02-03 1 97.77600 0.0224901 12138.31 110.1740
tbats dy.yr 2018-02-05 1439 97.52750 0.0250364 12076.74 109.8942
tbats dy.yr 2018-02-06 1440 96.83864 0.0321241 11906.76 109.1181
tbats dy.yr 2018-02-07 1440 97.01853 0.0302673 11951.00 109.3206
tbats dy.yr 2018-02-08 1440 97.04430 0.0300045 11957.42 109.3500
tbats dy.yr 2018-02-09 1440 96.59248 0.0346683 11846.29 108.8407
tbats dy.yr 2018-02-10 1 96.55307 0.0350738 11836.57 108.7960
tbats dy.yr 2018-02-12 1439 96.44488 0.0361948 11810.06 108.6741
tbats dy.yr 2018-02-13 1440 95.84988 0.0423895 11665.00 108.0046
tbats dy.yr 2018-02-14 1440 95.21545 0.0490216 11510.96 107.2892
tbats dy.yr 2018-02-15 1440 94.51717 0.0563755 11342.71 106.5021
tbats dy.yr 2018-02-16 1440 94.14929 0.0602717 11254.57 106.0876
tbats dy.yr 2018-02-17 1 94.34327 0.0582138 11300.97 106.3060
tbats dy.yr 2018-02-19 1439 94.49234 0.0566373 11336.73 106.4741
tbats dy.yr 2018-02-20 1440 94.96731 0.0516282 11451.01 107.0094
tbats dy.yr 2018-02-21 1440 95.48977 0.0461438 11577.32 107.5980
tbats dy.yr 2018-02-22 1440 95.13313 0.0498868 11491.09 107.1965
tbats dy.yr 2018-02-23 1440 94.79322 0.0534602 11409.03 106.8131
tbats dy.yr 2018-02-24 1 94.86244 0.0527301 11425.69 106.8910
tbats dy.yr 2018-02-26 1439 94.76703 0.0537373 11402.75 106.7837
tbats dy.yr 2018-02-27 1440 95.04278 0.0508339 11469.21 107.0944
tbats dy.yr 2018-02-28 1440 94.99853 0.0512998 11458.55 107.0446
tbats dy.yr 2018-03-01 1440 94.71199 0.0543178 11389.51 106.7217
tbats dy.yr 2018-03-02 1440 93.85861 0.0633632 11185.24 105.7603
tbats dy.yr 2018-03-03 1 93.82854 0.0636796 11177.99 105.7260
tbats dy.yr 2018-03-05 1439 93.81607 0.0638152 11175.08 105.7123
tbats dy.yr 2018-03-06 1440 94.23648 0.0593462 11275.41 106.1858
tbats dy.yr 2018-03-07 1440 93.88564 0.0630732 11191.63 105.7905
tbats dy.yr 2018-03-08 1440 94.16030 0.0601537 11257.18 106.0998
tbats dy.yr 2018-03-09 1440 94.71853 0.0542485 11391.07 106.7290
tbats dy.yr 2018-03-10 1 94.80698 0.0533146 11412.33 106.8285
tbats dy.yr 2018-03-12 1439 94.60420 0.0554551 11363.59 106.6001
tbats dy.yr 2018-03-13 1440 94.69656 0.0544823 11385.84 106.7044
tbats dy.yr 2018-03-14 1440 94.47241 0.0568478 11331.94 106.4516
tbats dy.yr 2018-03-15 1440 94.13614 0.0604106 11251.42 106.0727
tbats dy.yr 2018-03-16 1440 94.06334 0.0611845 11234.04 105.9908
tbats dy.yr 2018-03-17 1 94.05618 0.0612588 11232.29 105.9825
tbats dy.yr 2018-03-19 1439 94.03056 0.0615318 11226.19 105.9537
tbats dy.yr 2018-03-20 1440 94.35346 0.0581070 11303.43 106.3176
tbats dy.yr 2018-03-21 1440 94.38374 0.0577863 11310.68 106.3517
tbats dy.yr 2018-03-22 1440 93.79186 0.0640717 11169.29 105.6848
tbats dy.yr 2018-03-23 1440 93.13497 0.0710915 11013.37 104.9446
tbats dy.yr 2018-03-24 1 92.94995 0.0730765 10969.63 104.7360
tbats dy.yr 2018-03-26 1439 93.21499 0.0702341 11032.31 105.0348
tbats dy.yr 2018-03-27 1440 93.72770 0.0647543 11153.99 105.6124
tbats dy.yr 2018-03-28 1440 93.99928 0.0618740 11218.95 105.9196
tbats dy.yr 2018-03-29 1440 94.57484 0.0557653 11356.53 106.5670
tbats dy.yr 2018-03-30 1440 94.30258 0.0586453 11291.23 106.2602
tbats dy.yr 2018-03-31 1 94.32597 0.0583971 11296.82 106.2865
tbats dy.yr 2018-04-02 1439 94.26654 0.0590282 11282.62 106.2197
tbats dy.yr 2018-04-03 1440 94.21706 0.0595547 11270.83 106.1641
tbats dy.yr 2018-04-04 1440 94.48582 0.0567069 11335.18 106.4668
tbats dy.yr 2018-04-05 1440 95.03004 0.0509684 11466.15 107.0801
tbats dy.yr 2018-04-06 1440 95.13907 0.0498215 11492.45 107.2028
tbats dy.yr 2018-04-07 1 94.90415 0.0522908 11435.74 106.9380
tbats dy.yr 2018-04-09 1439 94.94345 0.0518776 11445.22 106.9823
tbats dy.yr 2018-04-10 1440 94.99533 0.0513325 11457.75 107.0409
tbats dy.yr 2018-04-11 1440 94.94205 0.0518926 11444.89 106.9808
tbats dy.yr 2018-04-12 1440 94.99019 0.0513869 11456.52 107.0351
tbats dy.yr 2018-04-13 1440 95.37779 0.0473164 11550.18 107.4718
tbats dy.yr 2018-04-14 1 95.27467 0.0483967 11525.20 107.3555
tbats dy.yr 2018-04-16 1439 95.19887 0.0491929 11506.89 107.2702
tbats dy.yr 2018-04-17 1440 95.00464 0.0512334 11459.97 107.0513
tbats dy.yr 2018-04-18 1440 95.15786 0.0496232 11496.97 107.2239
tbats dy.yr 2018-04-19 1440 95.28609 0.0482772 11527.97 107.3684
tbats dy.yr 2018-04-20 1440 95.48061 0.0462391 11575.09 107.5876
tbats dy.yr 2018-04-21 1 95.52893 0.0457331 11586.80 107.6420
tbats dy.yr 2018-04-23 1439 95.96268 0.0412102 11692.38 108.1313
tbats dy.yr 2018-04-24 1440 96.57811 0.0348152 11842.73 108.8243
tbats dy.yr 2018-04-25 1440 96.83137 0.0321978 11904.94 109.1097
tbats dy.yr 2018-04-26 1440 97.01456 0.0303070 11950.00 109.3160
tbats dy.yr 2018-04-27 1440 96.94119 0.0310636 11931.93 109.2334
tbats dy.yr 2018-04-28 1 96.78559 0.0326692 11893.65 109.0580
tbats dy.yr 2018-04-30 1439 96.93021 0.0311769 11929.23 109.2210
tbats dy.yr 2018-05-01 1440 97.20358 0.0283622 11996.63 109.5292
tbats dy.yr 2018-05-02 1440 97.46080 0.0257187 12060.18 109.8189
tbats dy.yr 2018-05-03 1440 97.16471 0.0287634 11987.07 109.4855
tbats dy.yr 2018-05-04 1440 96.80787 0.0324394 11899.13 109.0831
tbats dy.yr 2018-05-05 1 96.80201 0.0324996 11897.68 109.0765
tbats dy.yr 2018-05-07 1439 96.85772 0.0319251 11911.40 109.1394
tbats dy.yr 2018-05-08 1440 96.77645 0.0327640 11891.41 109.0477
tbats dy.yr 2018-05-09 1440 97.23029 0.0280882 12003.25 109.5593
tbats dy.yr 2018-05-10 1440 97.31121 0.0272554 12023.21 109.6504
tbats dy.yr 2018-05-11 1440 97.04722 0.0299706 11958.04 109.3528
tbats dy.yr 2018-05-12 1 97.07668 0.0296669 11965.30 109.3860
tbats dy.yr 2018-05-14 1439 97.14498 0.0289643 11982.15 109.4630
tbats dy.yr 2018-05-15 1440 97.61779 0.0241119 12099.12 109.9960
tbats dy.yr 2018-05-16 1440 97.82769 0.0219618 12151.15 110.2323
tbats dy.yr 2018-05-17 1440 98.09812 0.0192032 12218.46 110.5372
tbats dy.yr 2018-05-18 1440 98.37668 0.0163665 12287.92 110.8509
tbats dy.yr 2018-05-19 1 98.28985 0.0172490 12266.23 110.7530
tbats dy.yr 2018-05-21 1439 98.63051 0.0137903 12351.42 111.1370
tbats dy.yr 2018-05-22 1440 98.47687 0.0153483 12312.95 110.9638
tbats dy.yr 2018-05-23 1440 97.85710 0.0216665 12158.59 110.2660
tbats dy.yr 2018-05-24 1440 97.21066 0.0282903 11998.41 109.5372
tbats dy.yr 2018-05-25 1440 97.10908 0.0293338 11973.30 109.4226
tbats dy.yr 2018-05-26 1 97.07845 0.0296486 11965.73 109.3880
tbats dy.yr 2018-05-28 1439 97.12962 0.0291224 11978.37 109.4457
tbats dy.yr 2018-05-29 1440 96.65409 0.0340318 11861.43 108.9102
tbats dy.yr 2018-05-30 1440 96.51500 0.0354691 11827.26 108.7532
tbats dy.yr 2018-05-31 1440 96.50533 0.0355687 11824.88 108.7423
tbats dy.yr 2018-06-01 1440 96.94354 0.0310420 11932.57 109.2363
tbats dy.yr 2018-06-02 1 97.19471 0.0284520 11994.41 109.5190
tbats dy.yr 2018-06-04 1439 97.27435 0.0276335 12014.08 109.6088
tbats dy.yr 2018-06-05 1440 97.43829 0.0259498 12054.61 109.7935
tbats dy.yr 2018-06-06 1440 97.63291 0.0239552 12102.82 110.0128
tbats dy.yr 2018-06-07 1440 97.58061 0.0244910 12089.87 109.9539
tbats dy.yr 2018-06-08 1440 97.21614 0.0282325 11999.72 109.5433
tbats dy.yr 2018-06-09 1 97.20669 0.0283287 11997.37 109.5325
tbats dy.yr 2018-06-11 1439 97.46295 0.0256989 12060.77 109.8215
tbats dy.yr 2018-06-12 1440 97.86983 0.0215314 12161.63 110.2798
tbats dy.yr 2018-06-13 1440 98.08238 0.0193623 12214.51 110.5193
tbats dy.yr 2018-06-14 1440 97.84510 0.0217855 12155.51 110.2520
tbats dy.yr 2018-06-15 1440 98.17006 0.0184688 12236.36 110.6181
tbats dy.yr 2018-06-16 1 98.21219 0.0180393 12246.85 110.6655
tbats dy.yr 2018-06-18 1439 98.07575 0.0194297 12212.85 110.5118
tbats dy.yr 2018-06-19 1440 97.58994 0.0243970 12092.22 109.9646
tbats dy.yr 2018-06-20 1440 97.75005 0.0227559 12131.88 110.1448
tbats dy.yr 2018-06-21 1440 97.91982 0.0210232 12174.11 110.3364
tbats dy.yr 2018-06-22 1440 97.63231 0.0239609 12102.67 110.0121
tbats dy.yr 2018-06-23 1 97.61005 0.0241886 12097.14 109.9870
tbats dy.yr 2018-06-25 1439 97.26368 0.0277437 12011.46 109.5968
tbats dy.yr 2018-06-26 1440 97.38885 0.0264588 12042.42 109.7380
tbats dy.yr 2018-06-27 1440 97.68307 0.0234426 12115.29 110.0695
tbats dy.yr 2018-06-28 1440 97.87640 0.0214646 12163.27 110.2872
tbats dy.yr 2018-06-29 1440 98.20314 0.0181321 12244.61 110.6554
tbats dy.yr 2018-06-30 1 98.23216 0.0178360 12251.83 110.6880
tbats dy.yr 2018-07-02 1439 98.33324 0.0168080 12277.07 110.8019
tbats dy.yr 2018-07-03 1440 98.32642 0.0168780 12275.38 110.7943
tbats dy.yr 2018-07-04 1440 98.03684 0.0198264 12203.16 110.4679
tbats dy.yr 2018-07-05 1440 100.05086 0.0009929 12224.79 110.5658
tbats dy.yr 2018-07-06 1440 99.94904 0.0007990 12229.69 110.5879
tbats dy.yr 2018-07-07 1 99.83652 0.0016361 12202.18 110.4635
## https://www.r-graph-gallery.com/line-chart-several-groups-ggplot2.html
p1 <- yr_2018 %>% 
  ggplot(aes(x = index, y = open, group = Model, color = Model)) + 
  geom_line() + 
  #scale_colour_gradient2_tableau(palette = names(palettes)[1]) + #first palettes list in name
  #scale_color_viridis(discrete = TRUE) + 
  labs(title = '1 min Open Price Forecasting', 
       subtitle = paste('From', range(unique(yr_2018$index))[1L], 'to', range(unique(yr_2018$index))[2L]), 
       caption = "Data source: fxcm") + 
  ylab('Exchange Rates USD/JPY') + 
  theme_economist() + 
  #scale_color_economist() + 
  ##scale_fill_manual(values = tableau_colours) + 
  #scale_color_brewer(tableau_colours) + 
  #scale_color_jcolors(palette = palettes2$`Tableau 20`$value) + #choose color set among palettes
  #theme(axis.text.x = element_text(hjust = c(0, 0.5, 0.5, 0.5, 1))) + 
  theme(legend.position = 'right')

## Due to heavily loading in plotly graph, here I use ggplot.
#ply1 <- ggplotly(p1)
#ply1
p1

7.1.3.0.2 High Price
rm(p1)

## https://www.r-graph-gallery.com/line-chart-several-groups-ggplot2.html
p2 <- yr_2018 %>% 
  ggplot(aes(x = index, y = high, group = Model, color = Model)) + 
  geom_line() + 
  #scale_color_viridis(discrete = TRUE) + 
  labs(title = '1 min High Price Forecasting', 
       subtitle = paste('From', range(unique(yr_2018$index))[1L], 'to', range(unique(yr_2018$index))[2L]), 
       caption = "Data source: fxcm") + 
  ylab('Exchange Rates USD/JPY') + 
  theme_economist() + 
  #scale_color_economist() + 
  #theme(axis.text.x = element_text(hjust = c(0, 0.5, 0.5, 0.5, 1))) + 
  theme(legend.position = 'right')

## Due to heavily loading in plotly graph, here I use ggplot.
#ply2 <- ggplotly(p2)
#ply2
p2

7.1.3.0.3 Low Price
rm(p2)

## https://www.r-graph-gallery.com/line-chart-several-groups-ggplot2.html
p3 <- yr_2018 %>% 
  ggplot(aes(x = index, y = low, group = Model, color = Model)) + 
  geom_line() + 
  #scale_color_viridis(discrete = TRUE) + 
  labs(title = '1 min Low Price Forecasting', 
       subtitle = paste('From', range(unique(yr_2018$index))[1], 'to', range(unique(yr_2018$index))[2]), 
       caption = "Data source: fxcm") + 
  ylab('Exchange Rates USD/JPY') + 
  theme_economist() + 
  #scale_color_economist() + 
  #theme(axis.text.x = element_text(hjust = c(0, 0.5, 0.5, 0.5, 1))) + 
  theme(legend.position = 'right')

## Due to heavily loading in plotly graph, here I use ggplot.
#ply3 <- ggplotly(p3)
#ply3
p3

7.1.3.0.4 Close Price
rm(p3)

## https://www.r-graph-gallery.com/line-chart-several-groups-ggplot2.html
p4 <- yr_2018 %>% 
  ggplot(aes(x = index, y = close, group = Model, color = Model)) + 
  geom_line() + 
  #scale_color_viridis(discrete = TRUE) + 
  labs(title = '1 min Close Price Forecasting', 
       subtitle = paste('From', range(unique(yr_2018$index))[1], 'to', range(unique(yr_2018$index))[2]), 
       caption = "Data source: fxcm") + 
  ylab('Exchange Rates USD/JPY') + 
  theme_economist() + 
  #scale_color_economist() + 
  #theme(axis.text.x = element_text(hjust = c(0, 0.5, 0.5, 0.5, 1))) + 
  theme(legend.position = 'right')

## Due to heavily loading in plotly graph, here I use ggplot.
#ply4 <- ggplotly(p4)
#ply4
p4

7.1.3.0.5 OHLC Price
## https://www.r-graph-gallery.com/line-chart-several-groups-ggplot2.html
p5 <- mDT %>% 
  ggplot(aes(x = index, y = Price, group = Model, color = Model)) + 
  geom_line() + 
  #scale_colour_gradient2_tableau(palette = names(palettes)[1]) + #first palettes list in name
  #scale_color_viridis(discrete = TRUE) + 
  labs(title = '1 min Open Price Forecasting', 
       subtitle = paste('From', range(unique(mDT$index))[1L], 'to', range(unique(mDT$index))[2L]), 
       caption = "Data source: fxcm") + 
  ylab('Exchange Rates USD/JPY') + 
  theme_economist() + 
  #scale_color_economist() + 
  ##scale_fill_manual(values = tableau_colours) + 
  #scale_color_brewer(tableau_colours) + 
  #scale_color_jcolors(palette = palettes2$`Tableau 20`$value) + #choose color set among palettes
  #theme(axis.text.x = element_text(hjust = c(0, 0.5, 0.5, 0.5, 1))) + 
  theme(legend.position = 'bottom')

## Due to heavily loading in plotly graph, here I use ggplot.
#ply5 <- ggplotly(p5)
#ply5
p5

## rbokeh package
## https://www.htmlwidgets.org/showcase_rbokeh.html
## https://hafen.github.io/rbokeh/articles/rbokeh.html
figure(legend_location = 'top_left') %>%
    ly_lines(Price, group = Model, data = mDT, 
             color = Model, hover = Price)

Kindly refer to Traceback-HFT.R for more information. Here I tried to recalculate dataset from year 2018-01-01 to 2018-07-09 but the outcome is same. Here I forced to omit the mentioned dataset.

## ------------ eval = FALSE -------------------
## Due to high volume dataset and heavily ploting, here I ommit it.
yr_2018 %>% 
    group_by(Model) %>% 
    e_charts(x = index) %>% 
    e_line(open.Point.Forecast, smooth = TRUE) %>% 
  e_datazoom(
    type = 'slider', 
    toolbox = FALSE,
    bottom = -5) %>% 
  e_tooltip() %>% 
  e_title(text = 'Model', subtext = 'open.Point.Forecast', left = 'center') %>% 
  e_axis_labels(x = 'index', y = 'open.Point.Forecast') %>%
  e_x_axis(index, axisPointer = list(show = TRUE)) %>% 
  e_legend(
    orient = 'vertical', 
    type = c('scroll'), 
    #selectedMode = 'multiple', #https://echarts.apache.org/en/option.html#legend
    #selected = list('Model'), 
    left = 0, top = 80) %>% 
  e_grid(left = 150, top = 90) %>% 
  #e_theme('shine') %>% 
  e_toolbox_feature('saveAsImage', title = 'Screenshot')

7.2 Documenting File Creation

It’s useful to record some information about how your file was created.

  • File creation date: 2018-08-28
  • File latest updated date: 2021-01-26
  • R version 4.0.3 (2020-10-10)
  • R version (short form): 4.0.3
  • rmarkdown package version: 2.6
  • File version: 1.0.1
  • Author Profile: ®γσ, Eng Lian Hu
  • GitHub: Source Code
  • Additional session information:
suppressMessages(require('dplyr', quietly = TRUE))
suppressMessages(require('magrittr', quietly = TRUE))
suppressMessages(require('formattable', quietly = TRUE))
suppressMessages(require('knitr', quietly = TRUE))
suppressMessages(require('kableExtra', quietly = TRUE))

sys1 <- devtools::session_info()$platform %>% 
  unlist %>% data.frame(Category = names(.), session_info = .)
rownames(sys1) <- NULL

sys2 <- data.frame(Sys.info()) %>% 
  dplyr::mutate(Category = rownames(.)) %>% .[2:1]
names(sys2)[2] <- c('Sys.info')
rownames(sys2) <- NULL

if (nrow(sys1) == 9 & nrow(sys2) == 8) {
  sys2 %<>% rbind(., data.frame(
  Category = 'Current time', 
  Sys.info = paste(as.character(lubridate::now('Asia/Tokyo')), 'JST🗾')))
} else {
  sys1 %<>% rbind(., data.frame(
  Category = 'Current time', 
  session_info = paste(as.character(lubridate::now('Asia/Tokyo')), 'JST🗾')))
}

sys <- cbind(sys1, sys2) %>% 
  kbl(caption = 'Additional session information:') %>% 
  kable_styling(bootstrap_options = c('striped', 'hover', 'condensed', 'responsive')) %>% 
  row_spec(0, background = 'DimGrey') %>% 
  column_spec(1, background = 'CornflowerBlue') %>% 
  column_spec(2, background = 'DarkGrey') %>% 
  #column_spec(3, background = 'LightSlateGrey') %>% 
  column_spec(3, background = 'CornflowerBlue') %>% 
  column_spec(4, background = 'DarkGrey') %>% 
  row_spec(9, bold = T, color = 'white', background = '#D7261E')

rm(sys1, sys2)
sys
Additional session information:
Category session_info Category Sys.info
version R version 4.0.3 (2020-10-10) sysname Windows
os Windows 10 x64 release 10 x64
system x86_64, mingw32 version build 19042
ui RTerm nodename SCIBROKES-TRADI
language en machine x86-64
collate English_World.1252 login Owner
ctype English_World.1252 user Owner
tz Asia/Tokyo effective_user Owner
date 2021-01-26 Current time 2021-01-26 02:30:11 JST<U+0001F5FE>

  1. For buying order, we need to refer to ask price and selling order need to refer to bid price.↩︎

  2. Seasonal periods describe very details on the seasonal period parameters determination.↩︎

  3. help of auto.arima() describe the seasonal : If FALSE, restricts search to non-seasonal models.↩︎