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)