knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
The package \code{ivol} can be used upon financial data to estimate time-series of risk-neutral information embedded in option implied volatilities for underlying investment vehicles such as stocks, equity-indices or other financial assets which's stochastics can be described by Brownian motion. Generally, option implied volatilities can be decomposed over two different perspectives:
over degrees of moneyness (= different strike levels) ; imom
over their time-to-maturity (= term structure of volatility); ihurst
A decomposition over moneyness allows to observe higher risk-neutral moments like investor expectations on skewness and kurtosis (see e.g. Jarrow and Rudd [1982]). In difference, an analysis of the implied volatility term structure allows to examine auto-correlation expectations, which can be interpreted as risk-neutral momentum in returns.
ivolThis package is used to run regression analysis on option implied volatilities and create list objects of class ivol. List elements are coefficients, residuals, method, fitted.values and call. The class supports the methods summary, plot and print.
Applied on implied volatilities, the function imom runs a quadratic regression from Gram-Chalier expansion (see Jarrow-Rudd [1982]), to estimate risk-neutral 2$^\text{nd}$ (volatility), 3$^\text{rd}$ (skewness) and 4$^\text{th}$ (kurtosis) moments. The equation is given as:
\begin{equation}
\frac{\sigma(d)}{\sigma_{ATM}}=\hat{\alpha} + \hat{\beta}_0 \, \frac{d}{3!} + \hat{\beta}_1 \, \frac{d^2}{4!}, \qquad d = \frac{\ln K/S}{\sigma \, \sqrt{\tau}}
\end{equation}
with $K$ as the underlying price, $S$ as the option's strike level and $\sigma$ as the respective implied volatility. Consequently, $d$ captures the degree of moneyness and all volatilities are normalized by the at-the-money[^1] value on the left-hand side of the equation. The non-normality adjusted risk-neutral volatility is then represented by the regression's coefficient $\hat{\alpha}$, the 3$^\text{rd}$ moment by $\hat{\beta}_0$ and $\hat{\beta}_1$ estimates the 4$^\text{th}$ moment.
If the input data is in form of a time-series, the function runs the regression in the same frequency as the input data and returns the respective time-series of implied moments.
[^1]: Options that are arbitrarily close to at-the-money face symmetric Put and Call prices.
library(ivol) data(otm) x <- imom(otm) summary(x) head(coef(x))
Fractal option pricing (cp. Hu and Oksendal [2003]) allows to decompose an underlying's option implied volatility term structure into its fractal (un-autocorrelated) volatility $\sigma_f$ and into the implied Hurst exponent $H$, measuring persistence expectations in returns. Both components can be estimated by fitting OLS regression on the log-volatility curve: \begin{equation} \ln \sigma(\tau) = \hat{\alpha} + \hat{\beta} \, \ln \tau \end{equation} having \begin{equation} \hat{\alpha} = \exp{\sigma_f} \quad \text{and} \quad \hat{\beta} = H-0.5 \end{equation}
with $\sigma_f$ as the fractal volatility and $H$ as the implied Hurst exponent.
library(ivol) data(atm) x <- ihurst(atm) plot(x) print(x)
Jarrow, R. and Rudd, A. [1982], 'Approximate option valuation for arbitrary stochastic processes', Journal of Financial Economics, 10(3), 347-369
Hu, Y. and Oksendal, B. [2003], 'Fractional White Noise Calculus and Applications to Finance', Infinite Dimensional Analysis, Quantum Probability and Related Topics, 6(1), 1-32
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.