He encontrado este gran post derivando la solución de la SDE de Merton Jump-Diffusion
$$S_t = S_0\exp\left(\left(\mu - \frac{\sigma^2}{2}\right)t + \sigma W_t\right)\prod_{j=0}^{N_t}V_j$$
La primera parte de la ecuación (dentro del exponente) me parece un Movimiento Browniano Geométrico (GBM), lo cual me parece bien. Sin embargo, no estoy seguro del producto de $V$ Parece que $N_t$ es un proceso poisson con intensidad $\lambda$ y los tamaños de los saltos $Y_j$ que se distribuyen normalmente iid $Y_j N(\mu, \delta^2)$ . Pero no sé cómo incluir estos parámetros en mi simulación.
Para el código GBM python, he seguido el página wiki
import numpy as np
import math
dt = 1/252 # time increments
mu = 0.01 # stock price daily drift (1%)
sigma = 0.14 # stock price daily volatility (14%)
T = 400 # number of periods (dyas) to simulate
So = 100 # initial stock price
drift = mu - 0.5*sigma**2
diffusion = sigma*np.random.normal(loc=0, scale=math.sqrt(dt), size=(T,)) # normal distribution
S = np.exp(drift + diffusion)
S = So*S.cumprod() # GBM
También encontré este puesto y esto cuaderno jupyter ; este último tiene código explícito sobre el modelo de salto de Merton, sin embargo no está muy bien comentado y por eso no entiendo lo que ocurre.
¿Cómo puedo interpretar el producto de $V$ en la ecuación anterior, y cómo puedo incluir estos saltos en nuestra simulación? (BONUS: preferiblemente usando numpy en lugar de bucles explícitos).