Skip to content
All library documents

Estimating One-Step-Ahead Stochastic Volatility from Five-Minute Prices

Article Quant Q&A · Author: hedgedandlevered

Summary

The document describes an attempt to fit a stochastic volatility model to five-minute volume-weighted average prices for the euro–US dollar market. It outlines parameters for the long-run volatility level, persistence, current latent volatility, and volatility of volatility, with the next latent volatility modeled around a mean-reverting conditional expectation. The proposed workflow reruns Markov chain Monte Carlo estimation every five minutes and uses the latest estimates to forecast the next interval’s volatility.

The author reports that the persistence estimate changes sharply during the day and that the resulting plot seems inaccurate; Bollinger Bands are shown for comparison. Parameter estimation is delegated to an R package, and the author asks whether the model has been understood and whether the input data should be shared. No answer, diagnostics, or forecast evaluation is included, so the document presents an unresolved modeling question rather than evidence that the procedure works. The sampling frequency, changing estimates, and data treatment would need examination before interpreting the forecasts.

Key ideas

  • The proposed model assigns a latent volatility value to each time interval.
  • The next volatility estimate depends on the current value, persistence, and long-run level.
  • The author proposes rerunning MCMC on five-minute VWAP observations to forecast one step ahead.
  • The observed persistence estimates shift during the day, but the document does not explain why.
  • No validation results or answer to the modeling question are provided.

Tags

Full text
# one-step-ahead Stochastic Volatility for 5-minute VWAP prices


# one-step-ahead Stochastic Volatility for 5-minute VWAP prices












I'm trying to run an SV model against prices of Euro/USD. For those not familiar with SV, its a volatility model in which each point gets its own volatility parameter $h_t$ with 3 main parameters that are derived using a monte carlo simulation (MCMC),

- $\mu$ = average of the volatility across the entire sample set

- $\phi$ = the weighting that the volatility of the last point has on thenext (predicted) volatility

- $h_t$ = the most recent - {time interval}'s volatility.

- $\sigma$ = volatility of the volatility

Once we have $\mu$, $\phi$, and $h_t$ we can predict $h_{t+1}$, that is, the predicted volatility of the next point, by $h_{t+1} \sim \text{Normal}(\mu+\phi(h_t-\mu), \sigma)$.

I'm wondering if I'm doing the next part correctly:

To put this into practice, we run a MCMC every 5 minutes, gathering those variables and predicting $h_{t+1}$. This results in a graph like this, for CME futures contract 6EU4 (September euro) with 5-period BBands also displayed. Ignore the shapes that appear on the graph.

It feels inaccurate, so I'm not sure if I'm doing something wrong. Did I understand the process correctly? `phi` is around .55 for the first half of the day, then jumps to .95 and stays there, which seems wrong, but I guess it isn't too surprising given the data...

R's package stochvol is taking care of the parameter estimation, so assume that the numbers themselves are accurate.

Should I paste the 5-minute Volume Weighted Average Prices here? its a pretty long data set. I'll edit it to do that if so.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.