1
$\begingroup$

If I think daily log returns have a normal distribution, I can simulate intraday log returns as normal, because the sum of normal variates is also normally distributed. What if I want to simulate intraday log returns consistent with daily log returns that follow a Student's t-distribution?

$\endgroup$
  • $\begingroup$ This doesn't really make sense...the student's t-distribution tends toward normal as sample size increases. Taken literally, you'd have what you want for small sample sizes. To produce returns with 't-like' properties you could produce residuals with given mean but larger kurtosis on some order. $\endgroup$ – Chris May 24 at 3:25
  • 1
    $\begingroup$ An IID process for intraday returns won't produce t-distributed daily returns, but an intraday process with stochastic volatility would produces fat-tailed daily returns. I wonder if this has been studied. $\endgroup$ – Fortranner May 24 at 12:01
  • 1
    $\begingroup$ A crazy idea: maybe you could generate a t-distributed variable for the entire day's return and then do a brownian bridge to generate the intraday returns that will result in that overall return. $\endgroup$ – Alex C May 24 at 12:25
2
$\begingroup$

What you need is a Lévy process. Take a look at this primer. It contains a summary description of some Lévy processes and among them some that generate student t-distributed variables.

$\endgroup$
  • $\begingroup$ Thanks. On p27 they say this about Student's t: "In the symmetric case only moments of order less than v will exist — at any time horizon. However, we do not know the distribution of Y_t for this process in any explicit form, while simulation has to be carried out in quite an involved manner. Hence this process is not as easy to handle as the NIG or normal gamma L´evy processes." $\endgroup$ – Fortranner May 27 at 11:51
2
$\begingroup$

Student's t distribution can be regarded as a Normal distribution with variance mixture Y, where Y follows the inverse gamma distribution (1). So to simulate intraday returns consistent with the daily return having a t distribution, you could first sample from the inverse gamma distribution to determine that day's variance and then simulate a Brownian motion with that variance.

(1) https://www.johndcook.com/t_normal_mixture.pdf

$\endgroup$
  • $\begingroup$ An answer to my question came to me today -- please let me know if it is correct. $\endgroup$ – Fortranner May 24 at 15:02
  • 1
    $\begingroup$ This should work but if you implement this your simulations will not exhibit the volatility clustering observed in stock returns. That would be an advantage of my GARCH approach. $\endgroup$ – Bob Jansen May 24 at 17:21
2
$\begingroup$

One way to generate excess kurtosis in your sample is the approach below. It doesn't give you a student-t distributed sample but from your comment I understand that might not be a hard requirement.

A simulation with GARCH where the intraday innovations are inputted into to the GARCH model would give you time varying volatility which appears as excess kurtosis if you calculate it from a sample where you assume constant volatility.

For example, you could simulate like this (using R):

library(moments)
N = 1000
# Assume some GARCH(1, 1) parameters
omega <- 0.000001
alpha <- 0.04
beta <- 0.95

# Simulate a return series with GARCH(1, 1)-based volatility
set.seed(1L)
normalInnovations <- rnorm(N)
returns <- c(normalInnovations[[1L]], rep(NA_real_, N - 1L))
variance <- c(0, rep(NA_real_, N - 1L))
for (i in 2:N) {
  variance[[i]] <- omega +
    alpha * normalInnovations[[i - 1L]] ^ 2 + 
    beta * variance[[i - 1L]] ^ 2
  returns[[i]] <- normalInnovations[[i]] * sqrt(variance[[i]])
}

skewness(normalInnovations)
kurtosis(normalInnovations)
jarque.test(normalInnovations)
skewness(returns)
kurtosis(returns)
jarque.test(returns)
acf(returns^2, lag.max = 10L)

These returns will exhibit excess kurtosis and auto-correlated volatility.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.