fit module

btQuant.fit.aic(logLikelihood, nParams)[source]

Akaike Information Criterion.

Parameters:
  • logLikelihood – log-likelihood value

  • nParams – number of parameters

Returns:

AIC value

btQuant.fit.bic(logLikelihood, nParams, nObs)[source]

Bayesian Information Criterion.

Parameters:
  • logLikelihood – log-likelihood value

  • nParams – number of parameters

  • nObs – number of observations

Returns:

BIC value

btQuant.fit.fitAr1(series)[source]

Fit AR(1) model.

Parameters:

series – time series array

Returns:

dict with phi (AR coefficient), intercept, sigma2 (error variance)

btQuant.fit.fitArma(series, p=1, q=1, maxIter=100)[source]

Fit ARMA(p,q) model using approximate method.

Parameters:
  • series – time series

  • p – AR order

  • q – MA order

  • maxIter – maximum iterations

Returns:

dict with arCoefs, maCoefs, sigma2

btQuant.fit.fitCir(rates, dt=0.003968253968253968)[source]

Fit Cox-Ingersoll-Ross model to interest rate data.

Parameters:
  • rates – interest rate series

  • dt – time step

Returns:

dict with kappa, theta, sigma

btQuant.fit.fitCopula(data1, data2, copulaType='gaussian')[source]

Fit copula to bivariate data.

Parameters:
  • data1 – first variable

  • data2 – second variable

  • copulaType – ‘gaussian’ (only type supported)

Returns:

dict with rho (correlation parameter)

btQuant.fit.fitDistributions(data, distributions=None)[source]

Fit multiple distributions and rank by AIC.

Parameters:
  • data – array of observations

  • distributions – list of distribution names (None = all common)

Returns:

list of (distName, params, aic) sorted by AIC

btQuant.fit.fitGarch(series, p=1, q=1, maxIter=50)[source]

Fit GARCH(p,q) model.

Parameters:
  • series – returns series

  • p – ARCH order

  • q – GARCH order

  • maxIter – maximum iterations

Returns:

dict with omega, alphas, betas, aic, bic

btQuant.fit.fitGbm(prices, dt=0.003968253968253968)[source]

Fit Geometric Brownian Motion to price data.

Parameters:
  • prices – array of prices

  • dt – time step (default 1/252 for daily)

Returns:

dict with mu (drift), sigma (volatility)

btQuant.fit.fitHeston(prices, dt=0.003968253968253968)[source]

Fit Heston stochastic volatility model.

Parameters:
  • prices – price series

  • dt – time step

Returns:

dict with mu, kappa, theta, sigmaV, rho, v0

btQuant.fit.fitJumpDiffusion(prices, dt=0.003968253968253968, threshold=3.0)[source]

Fit jump-diffusion model by separating jumps from diffusion.

Parameters:
  • prices – price series

  • dt – time step

  • threshold – jump detection threshold (std devs)

Returns:

dict with mu, sigma, jumpLambda, jumpMu, jumpSigma

btQuant.fit.fitLevyOu(spread, jumpDetectionThreshold=0.4, dt=0.003968253968253968)[source]

Fit Lévy OU (jump-diffusion OU) model to spread data.

Parameters:
  • spread – array of spread/price data

  • jumpDetectionThreshold – Bayesian jump detection threshold

  • dt – time step

Returns:

dict with theta, mu, sigma, halfLife, jumpLambda, jumpMu, jumpSigma

btQuant.fit.fitOu(spread, dt=0.003968253968253968)[source]

Fit Ornstein-Uhlenbeck process to spread data.

Parameters:
  • spread – array of spread/price data

  • dt – time step

Returns:

dict with theta (mean reversion), mu (long-term mean), sigma, halfLife

btQuant.fit.fitVasicek(rates, dt=0.003968253968253968)[source]

Fit Vasicek model to interest rate data.

Parameters:
  • rates – interest rate series

  • dt – time step

Returns:

dict with kappa, theta, sigma