businessTimeAggregation | R Documentation |
Time series aggregation based on 'business time' statistics. Instead of equidistant sampling based on time during a trading day, business time sampling creates measures and samples equidistantly using these instead. For example when sampling based on volume, business time aggregation will result in a time series that has an equal amount of volume between each observation (if possible).
businessTimeAggregation( pData, measure = "volume", obs = 390, bandwidth = 0.075, tz = NULL, ... )
pData |
|
measure |
character denoting which measure to use. Valid options are |
obs |
integer valued numeric of length 1 denoting how many observations is wanted after the aggregation procedure. |
bandwidth |
numeric of length one, denoting which bandwidth parameter to use in the trade intensity process estimation of Oomen (2005). |
tz |
fallback time zone used in case we we are unable to identify the timezone of the data, by default: |
... |
extra arguments passed on to |
A list containing "pData"
which is the aggregated data and a list containing the intensity process, split up day by day.
Emil Sjoerup.
Dong, Y., and Tse, Y. K. (2017). Business time sampling scheme with applications to testing semi-martingale hypothesis and estimating integrated volatility. Econometrics, 5, 51.
Oomen, R. C. A. (2006). Properties of realized variance under alternative sampling schemes. Journal of Business & Economic Statistics, 24, 219-237
pData <- sampleTData[,list(DT, PRICE, SIZE)] # Aggregate based on the trade intensity measure. Getting 390 observations. agged <- businessTimeAggregation(pData, measure = "intensity", obs = 390, bandwidth = 0.075) # Plot the trade intensity measure plot.ts(agged$intensityProcess$`2018-01-02`) rCov(agged$pData[, list(DT, PRICE)], makeReturns = TRUE) rCov(pData[,list(DT, PRICE)], makeReturns = TRUE, alignBy = "minutes", alignPeriod = 1) # Aggregate based on the volume measure. Getting 78 observations. agged <- businessTimeAggregation(pData, measure = "volume", obs = 78) rCov(agged$pData[,list(DT, PRICE)], makeReturns = TRUE) rCov(pData[,list(DT, PRICE)], makeReturns = TRUE, alignBy = "minutes", alignPeriod = 5)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.