# 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]


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.