WOLFRAM|DEMONSTRATIONS PROJECT

The Variance Gamma Process

f[θ_,σ_,x_,y_]:=σxSqrt[y]+θy
Manipulate[BlockRandom[SeedRandom[r];Module[{n=1000,dt,l1,l2},dt=N[1/n];l1=RandomReal[NormalDistribution[0,1],{n}];l2=k*RandomReal[GammaDistribution[dt/k,1],{n}];ListPlot[Accumulate[MapThread[f[θ,σ,##]&,{l1,l2}]],DataRange{0,1},PlotRange{{0,1},{-b,b}},ImageSize{400,250},ImagePadding25]]],​​{{θ,0.5,"drift"},0,1,0.001},​​{{σ,0.1,"volatility"},0,1,0.001},​​{{k,0.5,"gamma variance"},0.001,1,0.001},​​{{b,1,"range of values"},0.1,4,0.001},{{r,0,""},Button["new path",r=RandomInteger[2^64-1]]&},SaveDefinitionsTrue,AutorunSequencing{1,2,3,4}]
​
drift
volatility
gamma variance
range of values
new path
General
:0.52.35879×
-308
10
is too small to represent as a normalized machine number; precision may be lost.
This Demonstration shows the path of a variance gamma process, a pure jump process of finite variation, but with infinitely many jumps. This process has been used in option pricing in place of Brownian motion, generally producing answers that agree better with empirical evidence. The process is constructed by means of "Brownian subordination", that is, by evaluating Brownian motion with drift at random times given by a gamma process. There are three basic controls: the volatility and drift of the Brownian motion and the variance of the gamma process. These parameters allow you to control the skewness and kurtosis of the return distribution in addition to mean and variance, as is the case with models based on Brownian motion.
The last control, "range of values", makes it possible to zoom into the process to see the jumps when they are too small to be visible in the default view or when parts of the trajectory lie outside the displayed area.