# How to simulate stock prices using variance gamma process?

I want to simulate stock prices with the variance gamma process. The model is given by:

$S_T=S_0 e^{ {[}(r-1)T + \omega + z{]}}$

where

$S_0=$ starting value

$T=$ Time

$\omega=\frac{T}{\nu}ln(1-\theta \nu - \sigma^2 \frac{\nu }{2})$

$r=$ interest rate

$z=$ normally distributed variable with mean $\theta g$ and standard deviation $\sigma \sqrt{g}$

I know, that I have to simulate first the g values by a random generator (using gamma function with parameters), then generate random numbers z using the g's. But my problem is, how does I specify the three parameters $\nu$ and $\theta$ and r? The T means years, so if I have e.g. 10 trading days, this would be 10 divided by 365. I had a another simulation with the geometric brownian motion before, there I used the sample mean, sample standard deviation, 22 trading days, and starting value 20. So I thought to make it comparable:

$T=22/365$

$S_0=20$

Nut what about $\theta$, $\nu$ and r? Is r just the sample mean?

• Hi, welcome to Quant.SE. Please don't hesitate to register in order to help the site grow and make it out of beta.
– SRKX
Nov 22, 2012 at 14:42

This paper seems to outline what you are looking for. You want to be careful about mean/variance/kurtosis to make sure you are working in the correct measure.

• Any chance you could summarize the contents of that paper here? Dec 26, 2012 at 17:12
• It's a basic survey/study of a variance gamma model vs black-scholes, using calibrations to both historical as well as implied data. Dec 27, 2012 at 4:12

Since the variance gamma process can actually be expressed as the difference of two gamma processes, the parameters are quite easy to estimate.

Taking the mean (rate) and variance (rate) of the positive values and negatives will give you the variables necessary to estimate the total variance gamma process parameters.

They are described in a more recent paper on the subject as:

$$\frac{\mu^2_p}{\nu_p}=\frac{\mu^2_n}{\nu_n}=\frac{1}{\nu},$$ $$\frac{\nu_p\nu_n}{\mu_p\mu_n}=\frac{\sigma^2\nu}{2},$$ $$\frac{\nu_p}{\mu_p}-\frac{\nu_n}{\mu_n}=\theta\nu$$

Shortcut & special cases

$\theta$ is the expected value of all samples.

If $\nu=0$ then $\sigma$ is the variance of all samples.

If $\theta=\sigma=1$ then the skewness of all samples is equal to $2\nu^2+3\nu$.

If you say stock prices are following GBM then you can say

$dS_t = \mu S_tdt + \sigma S_t dW_t$

solving which it brings where $\sigma$ is volatility and $r$ is risk free rate .

**EDITED

For a Variance Gamma process theta is the deterministic drift in subordinated Brownian motion and sigma standard deviation in subordinated Brownian motion. I choose mu in (0.1,0.3) and volatility estimate by GARCH or around 15% lower to 30% upper for a typical simulation

HTH

• @ Ashwani Roy no, this is not an appropriate answer to my question, I did a GBM simulation already, now I want to do it with VG Nov 22, 2012 at 9:54
• Sorry , totally misunderstood . Edited based on what i know about Levy's process models
– ash
Nov 22, 2012 at 10:32
• Why are these equations presented as images? You can enter $\LaTeX$ code and it will be converted into text appropriate for a browser. Nov 22, 2012 at 13:44
• @chrisaycock Sorry I am new to answering here. Will try this in future. Apologies if it caused any problems
– ash
Nov 22, 2012 at 13:55
• @AshwaniRoy I edited the answer and convereted the first equation to $\LaTeX$ for you so you can use it as an example to convert the other and future. Thanks for taking the time to answer! Nov 22, 2012 at 15:54

The parameters θ, ν and r need to be estimated from the sample with some technique, but unfortunately there is no easy way to do that for a VG process.

There is, for example, "maximum likelihood estimation" that gives you the parameters that are "most likely" to have generated your sample, assuming your sample comes from a VG process. But MLE involves computing the likelihood function of a VG process which is extremely complex by itself (check its pdf on the VG process wikipedia page).

Basically, you would only need to verfiy that S is a martingale under measure exp((r-1)T). Then you would get the answer.