Skip to content
All library documents

Simulating Jump-Diffusion Paths with Compound Poisson Jumps

Article Quant Q&A · Author: user11881

Summary

The document considers simulating a process formed by adding Brownian motion to a compound Poisson jump process. Its example generates Gaussian Brownian increments with standard deviation scaled by the square root of the time step, then adds potential normally distributed jumps whose sizes follow a standard normal distribution. The resulting increments are cumulatively summed to produce a sample path.

The response explains that drawing a Bernoulli jump indicator in every time interval approximates the Poisson jump process. It outlines an alternative method: first draw the total number of jumps over the full horizon from a Poisson distribution, then draw their times uniformly over that horizon, and finally sample jump sizes and add them at those times. The document provides conceptual guidance rather than a numerical comparison or validation of the sample paths. The per-step Bernoulli method can miss the possibility of multiple jumps in a single interval; the approximation is more suitable when intervals are small relative to the jump intensity. The discussion does not address calibration, dependence, or other jump-size distributions.

Key ideas

  • Brownian increments over a time step use a normal distribution with variance equal to the step length.
  • A Bernoulli draw per interval approximates whether a Poisson jump occurs in that interval.
  • An exact horizon-level construction samples the total Poisson jump count, jump times, and jump sizes separately.
  • The per-step approximation does not represent multiple jumps within one interval.

Tags

Full text
# Simulating Brownian motion with jumps


# Simulating Brownian motion with jumps












I am trying to improve my understanding of jump processes.

As a first step, I want to simulate sample paths for the process $$dX(t) = dw(t) + dJ(t)$$ where $dw(t)$ is a Brownian motion and $dJ(t)$ is a compound Poisson process with intensity $\lambda = 5$ and $\mathcal{D} = \mathcal{N}(0,1)$. Can anyone verify that the reasoning of my Mathematica code is sound?

```
T = 10;
n = 1000;
dt = T/n;
lambda = 5;
dw = RandomVariate[NormalDistribution[0, Sqrt[dt]], n];
dJ = Table[
   If[RandomVariate[BernoulliDistribution[lambda dt]] == 0, 0, 
RandomVariate[NormalDistribution[]]], {i, 1, n}];
dX = dw + dJ;
BrownianJumpPath = Accumulate[Prepend[dX, 0]];
ListLinePlot[BrownianJumpPath, Frame -> True]
```

## Answer by Richi Wa (score 1)

https://quant.stackexchange.com/a/17197

What you do is:

- You simulate a Brownian path - with the correct standard deviation.

- Then you simulate the Compound Poisson process. In each time step you sample a jump or no jump and the jump size if there was one. In each time step you draw from a Bernoulli distribution - which is to my knowledge just an approximation.

For the compound Poisson process I would follow the Algorithm 6.2 in the book by Tankov and Cont. The steps are:

- simulate $N$ with intensity $\lambda T$ ... the number of jumps during the interval from $[0,T]$.

- Simulate $N$ uniformly distributed uniforms (independent of $N$) uniformly distributed on $[0,T]$- the jump times.

- Then simulate the jump sizes at each jump time and add them up at the jump time.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.