sim module

btQuant.sim.ar1(phi, intercept, sigma, nSteps, nSims, x0=0.0)[source]

AR(1) process simulation.

Parameters:
  • phi – autoregressive coefficient

  • intercept – constant term

  • sigma – error variance

  • nSteps – number of time steps

  • nSims – number of simulations

  • x0 – initial value

Returns:

array (nSims x nSteps)

btQuant.sim.arch(alpha0, alpha1, nSteps, nSims)[source]

ARCH(1) process simulation.

Parameters:
  • alpha0 – constant term

  • alpha1 – ARCH coefficient

  • nSteps – number of time steps

  • nSims – number of simulations

Returns:

array (nSims x nSteps)

btQuant.sim.arma(arCoefs, maCoefs, sigma, nSteps, nSims, x0=0.0)[source]

ARMA process simulation.

Parameters:
  • arCoefs – AR coefficients (list)

  • maCoefs – MA coefficients (list)

  • sigma – error std deviation

  • nSteps – number of time steps

  • nSims – number of simulations

  • x0 – initial value

Returns:

array (nSims x nSteps)

btQuant.sim.cir(kappa, theta, sigma, nSteps, nSims, r0=0.05, dt=0.003968253968253968)[source]

Cox-Ingersoll-Ross (CIR) interest rate model simulation.

Parameters:
  • kappa – mean reversion rate

  • theta – long-term mean

  • sigma – volatility

  • nSteps – number of time steps

  • nSims – number of simulations

  • r0 – initial rate

  • dt – time step

Returns:

array (nSims x nSteps)

btQuant.sim.compoundPoisson(lambdaRate, jumpMu, jumpSigma, nSteps, nSims, s0=100, dt=0.003968253968253968)[source]

Compound Poisson process simulation (jumps with sizes).

Parameters:
  • lambdaRate – jump intensity

  • jumpMu – mean jump size

  • jumpSigma – jump size std dev

  • nSteps – number of time steps

  • nSims – number of simulations

  • s0 – initial value

  • dt – time step

Returns:

array (nSims x nSteps)

btQuant.sim.garch(omega, alpha1, beta1, nSteps, nSims)[source]

GARCH(1,1) process simulation.

Parameters:
  • omega – constant term

  • alpha1 – ARCH coefficient

  • beta1 – GARCH coefficient

  • nSteps – number of time steps

  • nSims – number of simulations

Returns:

array (nSims x nSteps)

btQuant.sim.gbm(mu, sigma, nSteps, nSims, s0=1.0, dt=0.003968253968253968)[source]

Geometric Brownian Motion simulation.

Parameters:
  • mu – drift

  • sigma – volatility

  • nSteps – number of time steps

  • nSims – number of simulations

  • s0 – initial value

  • dt – time step

Returns:

array (nSims x nSteps)

btQuant.sim.heston(mu, kappa, theta, sigma, rho, s0=100, v0=0.04, nSteps=252, nSims=1000, dt=0.003968253968253968)[source]

Heston stochastic volatility model simulation.

Parameters:
  • mu – drift of stock price

  • kappa – mean reversion rate of variance

  • theta – long-term variance

  • sigma – volatility of variance

  • rho – correlation between stock and variance

  • s0 – initial stock price

  • v0 – initial variance

  • nSteps – number of time steps

  • nSims – number of simulations

  • dt – time step

Returns:

dict with ‘prices’ and ‘variances’ arrays (nSims x nSteps)

btQuant.sim.levyOu(theta, mu, sigma, jumpLambda, jumpMu, jumpSigma, nSteps, nSims, x0=0.0, dt=0.003968253968253968)[source]

Lévy OU process (OU with jumps) simulation.

Parameters:
  • theta – mean reversion rate

  • mu – long-term mean

  • sigma – diffusion volatility

  • jumpLambda – jump intensity

  • jumpMu – jump mean

  • jumpSigma – jump volatility

  • nSteps – number of time steps

  • nSims – number of simulations

  • x0 – initial value

  • dt – time step

Returns:

array (nSims x nSteps)

btQuant.sim.markovSwitching(mu1, sigma1, mu2, sigma2, p11, p22, nSteps, nSims, x0=0.0)[source]

Markov regime switching model simulation.

Parameters:
  • mu1 – mean in regime 1

  • sigma1 – std dev in regime 1

  • mu2 – mean in regime 2

  • sigma2 – std dev in regime 2

  • p11 – probability of staying in regime 1

  • p22 – probability of staying in regime 2

  • nSteps – number of time steps

  • nSims – number of simulations

  • x0 – initial value

Returns:

array (nSims x nSteps)

btQuant.sim.ou(theta, mu, sigma, nSteps, nSims, x0=0.0, dt=0.003968253968253968)[source]

Ornstein-Uhlenbeck process simulation.

Parameters:
  • theta – mean reversion rate

  • mu – long-term mean

  • sigma – volatility

  • nSteps – number of time steps

  • nSims – number of simulations

  • x0 – initial value

  • dt – time step

Returns:

array (nSims x nSteps)

btQuant.sim.poisson(lambdaRate, nSteps, nSims)[source]

Poisson process simulation (jump counts).

Parameters:
  • lambdaRate – jump intensity (jumps per period)

  • nSteps – number of time steps

  • nSims – number of simulations

Returns:

array (nSims x nSteps)

btQuant.sim.simulate(model, params, nSteps, nSims)[source]

General simulation dispatcher.

Parameters:
  • model – model name (str)

  • params – dict of model parameters

  • nSteps – number of time steps

  • nSims – number of simulations

Returns:

array of simulated paths

btQuant.sim.vasicek(kappa, theta, sigma, nSteps, nSims, r0=0.05, dt=0.003968253968253968)[source]

Vasicek interest rate model simulation.

Parameters:
  • kappa – mean reversion rate

  • theta – long-term mean

  • sigma – volatility

  • nSteps – number of time steps

  • nSims – number of simulations

  • r0 – initial rate

  • dt – time step

Returns:

array (nSims x nSteps)