code: def jump_diffusion_process(params: "ModelParameters") -> "np.array":
      """Produces a sequence of Jump Sizes which represent a jump diffusion
      process.
  
      These jumps are combined with a geometric brownian motion (log returns)
      to produce the Merton model.
  
      Parameters
      ----------
      params : ModelParameters
          The parameters for the stochastic model.
  
      Returns
      -------
      `np.array`
          The jump sizes for each point in time (mostly zeroes if jumps are
          infrequent).
      """
      s_n = time = 0
      small_lamda = -(1.0 / params.lamda)
      jump_sizes = []
      for _ in range(params.all_time):
          jump_sizes.append(0.0)
      while s_n < params.all_time:
          s_n += small_lamda * np.log(np.random.uniform(0, 1))
          for j in range(params.all_time):
              if (
                  time * params.all_delta
                  <= s_n * params.all_delta
                  <= (j + 1) * params.all_delta
              ):
                  jump_sizes[j] += random.normalvariate(
                      params.jumps_mu, params.jumps_sigma
                  )
                  break
          time += 1
      return jump_sizes
  
file_path: tensortrade/tensortrade/stochastic/processes/heston.py
imports: import random
  import numpy
  import pandas
  import scipy
  from tensortrade.stochastic.processes.gbm import geometric_brownian_motion_log_returns
  from tensortrade.stochastic.utils import ModelParameters, generate, convert_to_prices
label_desc: Use image node_id 1 for calling a global function with example usage: jump_diffusion_process(params) and returns: jump_sizes