GARCH Parameters
Fits a GARCH(1, 1) model to the historical returns and returns the estimated Omega, Alpha and Beta parameters for each asset.
GARCH (Generalized autoregressive conditional heteroskedasticity) is a stochastic model for time series, used to model volatility clustering.
The formula is as follows:
\[\sigma_{t} ^{2} = \text{Omega} + \text{Alpha} \cdot r_{t-1} ^{2} + \text{Beta} \cdot \sigma_{t-1} ^{2}\] \[\text{Log-Likelihood} = - \text{Σ} (\text{ln}\; \sigma_{t} ^{2} + r_{t} ^{2} / \sigma_{t} ^{2}) (\text{up to constants})\]Where r_t are the returns (not demeaned), with the constraints Omega, Alpha, Beta > 0 and Alpha + Beta < 1. The parameters are estimated by maximizing the Gaussian log-likelihood with L-BFGS-B, started from a domain-informed initial guess and from 32 points of a Sobol sequence, and the best fit is finished with Nelder-Mead. The search runs on the parameters scaled to their bounds, as Omega (of the order of a daily variance) and Alpha and Beta differ by orders of magnitude.
The variance recursion starts from a backcast, an exponentially weighted average (decay 0.94) of the first 75 squared returns, which stands in for both the squared return and the variance before the first observation, and every observation enters the likelihood. This is the start the arch package uses, so the estimates agree with it.
Unlike get_garch and get_garch_forecast, which return a (forecasted) conditional variance path, this method returns the fitted parameters themselves. This is useful when the parameters are needed directly, for example to seed a separate volatility simulation.
For daily equity returns, Alpha is typically between 0.05 and 0.15 and Alpha + Beta (the persistence) between 0.95 and 0.99, meaning a volatility shock fades over weeks rather than days. The long-run variance the model reverts to is Omega / (1 - Alpha - Beta). A fit far outside these ranges is a reason to check the data and the window before using the parameters.
For more information about the method, see the following book:
- Finance Compact Plus Band 1, by Yvonne Seler Zimmerman and Heinz Zimmerman; ISBN: 978-3-907291-31-1
Also known as: GARCH weights, GARCH coefficients, conditional variance parameters.
GARCH Parameters in Python or via the MCP
Install the Finance Toolkit with:
pip install financetoolkit -U
Then call get_garch_parameters as shown below.
from financetoolkit import Toolkit
toolkit = Toolkit(
["LOW", "SBUX", "TSLA"],
api_key="FINANCIAL_MODELING_PREP_KEY",
start_date="2025-01-01",
end_date="2025-12-31",
)
toolkit.risk.get_garch_parameters(rounding=6)
Or, after setting up the Finance Toolkit MCP, ask:
What are the GARCH(1,1) parameters (omega, alpha and beta) of Lowe's, Starbucks, Tesla and the S&P 500, fitted on their returns in 2025?
Which returns:
| LOW | SBUX | TSLA | Benchmark | |
|---|---|---|---|---|
| Omega | 2.1e-05 | 0.000102 | 1.6e-05 | 5e-06 |
| Alpha | 0.035763 | 0.057692 | 0.048602 | 0.154079 |
| Beta | 0.875036 | 0.715864 | 0.940197 | 0.811018 |
Parameters
get_garch_parameters accepts the following parameters.
| Parameter | Type | Description | Example |
|---|---|---|---|
period | str | The data frequency for returns (daily, weekly, monthly, quarterly, or yearly). Defaults to “daily”. | "weekly" |
optimization_t | int | Time steps of the returns series to use for the optimization. Defaults to the full length of the returns series. | 252 |
rounding | int | None | The number of decimals to round the results to. Defaults to None. | 2 |