After reading some more of Volatility Trading, I decided to try to make a simple volatility model using daily log returns of an ETF I follow. It turns out "simple" is sort of relative. Unfortunately, it seems most literature is hopelessly vague on how exactly to do such a thing.
So I started by taking the log of closing prices, and differencing them to detrend the data and get the log return series. I showed it was stationary by running ADF (p-value < 0.01).
Now this is where the trouble starts. Since this is a univariate GARCH model, I decided to run with the rugarch
package in R. I initially spec it as GARCH(1,1). The solver fails to converge. Ok - so I run a bootstrapper and try to get more data to see if I can at least get some form of convergence - it fails. Turning up the iterations also seems to make it fail. So I couldn't really explain how good or bad the data was.
After reading Eric Zivot's Practical Issues in the Analysis of Univariate GARCH Models it strikes me that I should be using some sort of transformed data. I noticed he mentions squaring the log returns, so I blindly try that and the GARCH solver converges without issue. Reading more into this I find another paper - Volatility Forecasting I: GARCH Models - that discusses that squared returns are positively autocorrelated. So I ask myself - what is this squared return thing?
Enter a post from here titled Squared and Absolute returns. This post unfortunately isn't so helpful, but it sent me down the rabbit hole reading Volatility Estimation from the CME group. Section 1.1 highlights that squared returns are a proxy for volatility, however it is extremely imprecise. This leads me to a handful of questions I'm hoping you guys can help me with:
If squared returns are an imprecise proxy for volatility, why is it suggested we build GARCH volatility models using them? Won't this reduce the effectiveness of the model's predictions?
Eric Zivots paper makes mention of GARCH effects of a time series. One of the ways you can check for the is the Ljung-Box test. However, I don't quite understand how to set this up, especially in R. My inclination is to think that my log return series does not have GARCH effects, however the squared log return series does.
Can we use a different, more precise, volatility estimator and build a GARCH model on that? (ex Garman-Klass)
I apologize if these are trivial questions - I just can't seem to find a single resource that answers my exact question. I'd really appreciate any help or direction to resources where I can figure this stuff out. I really would like to fully understand this before I put it to practical use. Thanks in advance!