I have a series of price returns of an asset (4 days worth of data). They are relatively high-frequency.

My ultimate goal is to calculate realized volatility, but using a student's t-distribution.

I have fit a two-scale realized volatility (TSRV) model to the returns, then scaled that by sqrt(252) to annualized volatility. The results look reasonable and are close to industry reported numbers. However, I want a student's t-distribution instead.

And the returns don't look normally distributed. So, I'd like to fit a student's t-distribution. Following the advice I have found online, the degrees-of of freedom can be calculated from the excess kurtosis:

k <- np.mean(rets**4) / np.mean(rets**2)**2
excessK <- k-3
df <- 6/excessK + 4
variance <- nu / (nu-2)
sd <- sqrt(nu-2/2)

My questions:

  1. How do I scale it to an annualized basis?
  2. How do I determine the optimal sampling frequency? (Obvious 1 second has too much noise, but 1 day is missing data.)
  3. With an assumed Gaussian distribution, the TSRV methods work well. Is there an equivalent process for a t-distribution?

Thank you!

  • 1
    $\begingroup$ Thanks for the edits! $\endgroup$
    – Bob Dobbs
    Sep 16, 2022 at 2:18

1 Answer 1


I can only offer some thoughts on your first question:

First of all, the dof parameter of Student's t-distribution is commonly found by maximum-likelihood methods, implemented via gradient-descent, EM algorithm or the like.

Second, annualizing (daily) returns means convoluting the daily return distributions, thereby evening out any non-normalities, converging to the Normal distribution. Do note, however, that intratemporal dependencies (autocorrelation) are driving the non-normality in annualized returns.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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