Feeds:
Posts

## ZULF’S UNIVERSAL LAW OF STOCHASTIC VOLATILITY

The Black-Scholes model was an intellectual breakthrough because for the first time the idea was established that rational prices exist for options independent of investor preferences but it was never a scientific model in the sense of quantitative mathematical models fitting actual data.  Since 1973 there have been amazing improvements of the model by extensions of which the most promising seemed to be the stochastic volatility type models of which the most prominent for their reasonable fit to the implied volatility surfaces were the Heston (1993) model and the Bates (1997) and there are others as well.  What we do here is turn the issues on their head and ask for an exact model for stochastic volatility and then return to the Black-Scholes argument for a partial differential equation.  Heston had chosen to model stochastic volatility by a Feller (1951)/Cox-Ingersoll-Ross (1975) square root process and Bates had followed Merton (1976) by adding normally distributed jumps at Poisson random times.  We show that an almost exact fit to volatility proxied by $\log(r_t^2)$ result from the model of a square root process with normally distributed jumps subordinated to inverse stable waiting times.  Regardless of option pticing theory, this can be considered then as an exact scientific model for stochastic volatility and serve as the basis for a partial differential equation that must be satisfied for option prices.  In Ito form time-change by inverse stable subordinator can be considered by change of density of the terms of the Ito equation for a square root process with jumps:

$dv(t) = \kappa (\theta - v(t)) dt + \sqrt{v(t)} dw(t) + dJ(t)$

becomes

$dv(t) = \kappa(\theta - v(t)) S_\beta(t) dt + \sqrt{v(t)} S_\beta(t) dw(t) + dJ(E_t)$

where $S_{\beta}(t) = 1/g'_{\beta}(t)$ and $g_\beta(t)$ is the density of the inverse stable subordinator.

The diffusion component Ito formula can be used in a straightforward manner.  The jump component is more complicated.  There is an Ito formula with jumps for example Theorem 4.31 of menaldi-book-06-2013, but jumps were already a nontrivial problem when Robert Merton considered them in Merton1976 one way to deal with option pricing with jumps he considered is summing over jumps for log-normal jump distribution:

We used the jump term in the characteristic probability distribution of David Bates modified to account for the time-change.  Bates’ jump term is described here (Bates_Scott):

The Bates PDE (non time-changed case) is standard and here is a useful version of how to deal with the jump term in the PDE.

Recall that a stable subordinator $W_\beta(t)$ is an increasing Levy process whose density with respect to Lebesgue measure has Laplace transform $\exp(-cs^\beta)$; the inverse stable subordinator $E_\beta(t) = \inf { s>0: W_\beta(s)>t\}$ and more details can be found in Meerschaert et. al.  We fit a number of reasonable models of volatility that consider jumps and time changes from the basic square root diffusion and find overwhelming evidence that the combination of normally distributed jumps and inverse stable time change produce tight fits to empirical volatility of stocks.  Next, the Ito formula above allows us to repeat the Black-Scholes-Heston standard argument for the partial differential equation that must be solved by assets: let $F(S,v,t)$ be the asset price, consider the portfolio $\Pi = F-\Delta_S S - \Delta_v v$ which we assume is riskless so $d\Pi = r \Pi dt$.  Now use Ito formula on $dF$ and eliminate the stochasticity of $dS,dv$ by setting $\Delta_S=F_S$ and $F_v = \Delta_v$ and we obtain

$-r( F - F_S S - F_v v) dt + \frac{1}{2} F_{SS} S^2 v dt + \frac{1}{2} F_{vv} S_{\beta](t)^2(\eta^2 dt + dJ^2) + \rho S v \eta F_{Sv} S_\beta(t) =0$

The form of this partial differential equation is such that one can use the Heston method exactly.  Recall that Heston solves for the characteristic functions of probabilities $P_1, P_2$ such that the plain vanilla call has price $C=S_0 P_1 + e^{-rT} X P_2$ and finds these in the form $\exp(C(t) + vD(t) + i\phi x$ where $x = log(S(t))$.  The partial differential equation we obtain can be solved by replacing Heston’s solution with $\tilde{D} = D/S_{\beta}(t)$.  In particular, for our claimed exact models for stochastic volatility, the closed form solution of Heston extends simply and thus we do not lose tractability.  Now for the empirical results that provide evidence for our model:

The characteristic function of the square root process as well as the density is available in closed form and can be found for example in Mendoza-Arriega and Lintesky (2014).  We derive the jump version using Fourier tranforms conditioned by number of jumps.  We use Carr-Wu (2004) CarrWu2004-TCLP Theorem 1 to evaluate the characteristic function of time-change by evaluation of the characteristic function at the Laplace transform of the density of inverse stable subordinator.  We fit these theoretical characteristic functions to empirical characteristic functions of $v_t = r_t^2$ using the weight $\exp(-\xi^2)$, which is a standard technique (see Jiang-Knight-ECF and references for history of the method)  The following are errors of fits to the models using 1000 days of daily return data per stock and shows that the square root with jumps and time-change fit the data extremely well.

 Stock TCCIR TCJCIR CIR JCIR CBT 0.398218 0.014355 0.566592 0.401318 AXL 0.321141 0.030566 0.321443 0.321428 GFIG 0.170934 0.011676 0.170758 0.170639 AVP 0.394074 0.026894 0.394069 0.396751 LTM 0.377034 0.026374 0.37643 0.376771 SPW 0.301549 0.023995 0.302528 0.301497 KOPN 0.37709 0.028296 0.377081 0.379103 SWC 0.376829 0.023464 0.377792 0.37698 PKD 0.457263 0.013086 0.45549 0.460003 KFRC 0.30103 0.018826 0.301016 0.301795 CCMP 0.411797 0.019189 0.547022 0.412355 TPX 0.404812 0.016963 0.407708 0.405842 WGL 0.35292 0.019348 0.353366 0.354256 APP 0.17958 0.023925 0.179285 0.179283 CRZO 0.320667 0.026063 0.321666 0.321316 FSLR 0.353428 0.022355 0.353432 0.353548 POWI 0.392978 0.02252 0.393889 0.392698 CWST 0.241878 0.019067 0.241882 0.24198 NTAP 0.34896 0.016822 0.352294 0.349367 JDSU 0.341938 0.019356 0.342021 0.34275 FOSL 0.376508 0.02784 0.376419 0.376263 HPQ 0.414805 0.0231 0.542678 0.415748 CRL 0.323254 0.029745 0.40505 0.323213 HUM 0.404847 0.012791 0.404457 0.403228 CLNE 0.336656 0.024932 0.342552 0.336434 FMD 0.285463 0.013712 0.285316 0.28543 PNM 0.35306 0.027319 0.353653 0.353082 SYNA 0.297421 0.029402 0.29784 0.298058 WAG 0.384176 0.028248 0.384035 0.383818 FFBC 0.304283 0.019321 0.305986 0.302674 ASPS 0.181117 0.011337 0.181126 0.181439 MEG 0.394118 0.024769 0.527072 0.394239 AMT 0.367288 0.027318 0.367293 0.367283 RAIL 0.330955 0.029322 0.332907 0.331064 SO 0.456655 0.027425 0.599356 0.456611 ODFL 0.280437 0.021654 0.280072 0.279266 INFA 0.366837 0.019899 0.367859 0.36673 PLXS 0.374603 0.031997 0.374614 0.376025 XNPT 0.32685 0.024349 0.326729 0.32669 AKRX 0.060987 0.020442 0.056424 0.056293 NWE 0.381444 0.02636 0.381497 0.381415 MCY 0.301432 0.013311 0.302075 0.302302 ANH 0.283217 0.024865 0.284837 0.284505 WU 0.378517 0.023226 0.378747 0.378812 BXC 0.343059 0.035637 0.418449 0.343138 TE 0.141365 0.004357 0.141402 0.160468 RGEN 0.409911 0.029109 0.409083 0.411394 BMR 0.400628 0.029425 0.400639 0.401974 ED 0.373673 0.040665 0.378394 0.373549 ISRG 0.256647 0.030144 0.256679 0.257378 EBS 0.326935 0.033554 0.326959 0.327076 AVID 0.375304 0.026523 0.375212 0.378569 VRSN 0.429493 0.021727 0.429537 0.42957 IMGN 0.402582 0.030732 0.405489 0.404514 COST 0.366185 0.027052 0.365594 0.365068 RVBD 0.38309 0.0285 0.485125 0.383236 TNK 0.267925 0.035018 0.267977 0.268811 LAD 0.320288 0.024022 0.320305 0.320344 TJX 0.384932 0.018591 0.387348 0.385787

The full code to generate these fits is the following:

## EXACT LAWS FOR WAITING TIMES AND VOLATILITY AUTOCORRELATION

We are looking for an exact law for autocorrelations in volatility (proxied by log(return^2)).  We are looking for an exact law for volatility autocorrelations because empirical finance is pretty confused about what to do about volatility modeling and there are routine evocations of ‘because GARCH and SV models are inconsistent with empirical features’.  Well we are going to put an end to this confusion.  Our results of the EXACT waiting time distributions, i.e. times between volatility jumps defined as diff(log(return^2))>threshold being identical to the fractional Poisson law t^(alpha-1)*mlf(-c*t^a, a, a) tells us something about volatility, that we better use some sort of time fractional diffusion, but we ran into the problem that a single time fractional diffusion with parameter a, i.e. a time-changed Levy process with random times distributed as an inverse stable subordinator — the work of Meerschaert and collaborators provide extensive explication of the identity of these objects — does not produce an exact law.

Here we have results showing that the THEORETICAL AUTOCORRELATION of a couple of processes with the same time-fractional parameter is an almost exact fit to empirical autocorrelation for stocks.  The attached table contains the Kullback-Leibler divergences of three models: the purely statistical log-linear model of Ding-Granger-Engle, the theoretical autocorrelation of an ARFIMA model, and the following exact formula of two time-changed Levy processes with the same time fractional parameter.  The benchmark is the Ding-Granger-Engle model because their model is quite good.

Summary is that mean KLdiv of the three models are:  -0.287 for DGE, 0.166 for the sum of two time-fractional diffusions/time changed Levy processes, and 20.0 for ARFIMA.  The t-test p-value is << 0.01 for the DGE vs the sum of time-changed Levy process model (>>> ttest_ind(x[‘KLZulf’],x[‘KLDGE’])
(array(13.858697161018554), 6.5315949360525968e-28)
).

So we have here a more or less COMPLETE EXPLANATION of empirical autocorrelation by these time-fractional diffusions, and since this autocorrelation is the source of problems for many extant models, we have now a theoretical model that can handle the hard parts of empirical consistency (well there are other annoying issues when one looks at tick data versus lower frequency because of market microstructure etc. but those are secondary issues after this autocorrelation is exactly matched.)  So then the question is whether there is an exact closed form solution for a two factor stochastic volatility model.  In 2006 there was an extension of the Heston model to multifactors (see attached) and presumably my trick to reuse the closed form by systematically replacing the coefficient of the volatility by the waiting time distribution of the fractional Poisson process will work just as well in the multivariate case, the key being that the model has the same time-fractional parameter for both components.

In more detail, I took the theoretical ACF formula for a time-changed Levy from Leonenko et. al. p. 9 and it is:

def mittag_leffler_autocorrelation(lag, a, b, c, d, e):
t=float(lag)
s1 = b*t
s2 = c*t
def exact_corr_func(a,s,t):
numerator = a*t**(2.*a)*beta(a,a+1,s/t)
numerator = – abs(t/s)**a + a*abs(s)**(2.*a)*beta(a,a+1.)
denominator = abs(s*t)**a
denominator *= (2.*gamma(1+a)**2)/gamma(2*a+1.) – 1)
return numerator/denominator
return d*exact_corr_func(a,s1,t) + e*exact_corr_func(a,s2,t)

So here we have closed form approach for getting models that have no inconsistency with fundamental empirical features.
3 Attachments