GJR-GARCH Volatility Forecast
Calculates sigma_2 forecasts based on the GJR-GARCH model.
For more information about the method, see the following paper:
- Glosten, L.R., Jagannathan, R., and Runkle, D.E. (1993). “On the Relation between the Expected Value and the Volatility of the Nominal Excess Return on Stocks.” The Journal of Finance, 48(5), 1779-1801.
Also known as: volatility forecast, predicted volatility.
No programming experience? With the Finance Toolkit MCP server, AI assistants such as Claude and ChatGPT can calculate the GJR-GARCH Volatility Forecast for you. Just ask in plain English.
Calculate the GJR-GARCH Volatility Forecast in Python
The GJR-GARCH Volatility Forecast is available in the Risk module of the open-source Finance Toolkit. Install it with:
pip install financetoolkit -U
Then call get_gjr_garch_forecast as shown below.
from financetoolkit import Toolkit
toolkit = Toolkit(["AMZN", "TSLA"], api_key="FINANCIAL_MODELING_PREP_KEY")
toolkit.risk.get_gjr_garch_forecast(period="quarterly")
Which returns:
| AMZN | TSLA | Benchmark | |
|---|---|---|---|
| 2026Q4 | 0.0258 | 0.1716 | 0.0046 |
| 2027Q1 | 0.0258 | 0.1716 | 0.0046 |
| 2027Q2 | 0.0264 | 0.1687 | 0.0071 |
| 2027Q3 | 0.0268 | 0.1681 | 0.0086 |
| 2027Q4 | 0.0272 | 0.168 | 0.0094 |
| 2028Q1 | 0.0274 | 0.168 | 0.0099 |
| 2028Q2 | 0.0276 | 0.168 | 0.0102 |
| 2028Q3 | 0.0277 | 0.168 | 0.0103 |
| 2028Q4 | 0.0278 | 0.168 | 0.0104 |
| 2029Q1 | 0.0279 | 0.168 | 0.0105 |
Parameters
get_gjr_garch_forecast accepts the following parameters:
- period (str, optional): The data frequency for returns (daily, weekly, monthly, quarterly, or yearly). Defaults to “quarterly” if the Toolkit is initialised with quarterly=True, otherwise “yearly”.
- time_steps (int, optional): Time steps to calculate GJR-GARCH and to forecast sigma_2 values for.
- within_period (bool, optional): Whether to calculate GJR-GARCH within each specified period or all at once. Defaults to False.
- rounding (int | None, optional): The number of decimals to round the results to. Defaults to None.
- growth (bool, optional): Whether to calculate the growth of the GJR-GARCH values over time. Defaults to False.
- lag (int | list[int], optional): The lag to use for the growth calculation. Defaults to 1.
- standardize (bool, optional): Whether to standardize (Z-Score) the result. When combined with growth=True, standardizes the growth values instead of the raw values. Defaults to False.
Related Risk Metrics
The Risk module page introduces the module, and the sidebar lists all of its functions.