Archive for July, 2016

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)


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:

Screenshot 2016-07-22 23.32.00

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): Screenshot 2016-07-23 00.48.05

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.

Screenshot 2016-07-23 00.56.19

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.

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:


Read Full Post »

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):
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

Read Full Post »