By Manusha Rao
You’ll have observed that markets typically stay calm for weeks after which swing wildly for a couple of days. That’s volatility in motion. It measures how a lot costs transfer—and it’s an enormous deal in buying and selling and investing as a result of it displays threat. However right here’s the catch: estimating volatility is not easy.
A 2% drop usually sparks extra headlines than a 2% achieve. That’s uneven volatility—and it is what conventional fashions miss.
Enter the GJR-GARCH mannequin!
Stipulations
This weblog focuses on volatility forecasting utilizing the GJR-GARCH mannequin, with a sensible Python implementation primarily based on the NIFTY 50 index. It explains the idea of uneven volatility, the way it differs from the normal GARCH mannequin, and gives instruments for evaluating forecast high quality by visualizations and diagnostics.
To grasp and apply the GJR-GARCH mannequin successfully, it is essential to begin with the fundamentals of time sequence evaluation. Start with Introduction to Time Sequence to get acquainted with pattern, seasonality, and autocorrelation. If you happen to’re exploring how deep studying compares to conventional fashions, learn Time Sequence vs LSTM Fashions for a conceptual comparability.
Since GARCH and GJR-GARCH fashions depend on stationary time sequence, research Stationarity to discover ways to put together your information. Improve this information by studying The Hurst Exponent for insights into long-term reminiscence in time sequence and Imply Reversion in Time Sequence for understanding mean-reverting conduct—usually linked with volatility clusters.
You must also be acquainted with the ARMA household of fashions, that are foundational to ARIMA and GARCH. For this, confer with the ARMA Mannequin Information and its companion weblog ARMA Implementation in Python. Lastly, to know the terminology and idea behind GARCH, the Quantra glossary entries on GARCH and Volatility Forecasting utilizing GARCH are important sources.
On this weblog, we’ll discover the next:
Distinction between GARCH and GJR-GARCH fashions
The GARCH mannequin captures volatility clustering however assumes that constructive and adverse shocks have a symmetric impact on future volatility. In distinction, the GJR-GARCH mannequin accounts for asymmetry by giving extra weight to adverse shocks, which displays the leverage impact generally noticed in monetary markets. Why? As a result of concern drives quicker and stronger reactions than optimism in monetary markets.
GJR-GARCH introduces a further parameter that prompts when previous returns are adverse. This makes it extra appropriate for modelling real-world inventory information, the place unhealthy information usually causes increased volatility.
For instance, in the course of the COVID-19 market crash in March 2020, the NIFTY 50 noticed sharp declines and sudden spikes in volatility pushed by panic promoting proven beneath.

Supply: TradingView
A GARCH mannequin would understate this asymmetry, whereas GJR-GARCH captures the heightened volatility following adverse shocks extra precisely. Total, GJR-GARCH is a extra versatile and lifelike extension of the usual GARCH mannequin.
A short have a look at the GARCH mannequin
The GARCH (Generalized Autoregressive Conditional Heteroskedasticity) mannequin is a well-liked statistical software for forecasting monetary market volatility. Developed by Tim Bollerslev in 1986 as an extension of the ARCH mannequin, GARCH captures the tendency of volatility to cluster over time—which means durations of excessive volatility are typically adopted by durations of excessive volatility, and durations of calm are adopted by extra durations of calm.
In essence, the GARCH mannequin assumes that at this time’s volatility relies upon not solely on previous squared returns (as in ARCH) but in addition on previous volatility estimates. This makes it particularly helpful for modelling time sequence information with altering variance, akin to asset returns.
The final equation for a GARCH(p, q) mannequin, which fashions conditional variance, is:

σ2t: Represents the conditional variance of the time sequence at time ‘t’.
ω: A relentless time period representing the long-run or common variance.
Σ(αi * ε2t−i): The ARCH part, capturing the impact of previous squared errors on the present variance.
Σ(βj * σ2t−j): The GARCH part, capturing the impact of previous conditional variances on the present variance.
Observe: GARCH(1,1) is the only type of the GARCH mannequin:
σ2t = ω + α1 ε2t−1 + β1 σ2t−1
With solely three parameters (fixed, ARCH time period, and GARCH time period), it is simple to estimate and interpret—best for monetary information the place too many parameters may be unstable.
Introduction to the GJR-GARCH mannequin
The GJR-GARCH mannequin, proposed by Glosten, Jagannathan, and Runkle (1993), is an extension of the usual GARCH mannequin designed to seize the uneven results of stories on volatility.
The GJR-GARCH(1,1) method is given by:
σ2t = ω + α1 ε2t−1 + γ ε2t−1 It−1 + β1 σ2t−1
The place,
γ : Represents the extra impression of adverse shocks (leverage impact)
ε2t−1 It−1
: Represents the indicator perform that prompts when the earlier return shock is adverse
Interpretation:
When the earlier shock
εt−1
is constructive:σt2 = ω + α εt−12 + β σt−12
When the earlier shock
εt−1
is adverse:σt2 = ω + (α + γ) εt−12 + β σt−12
So, adverse shocks improve volatility extra by the quantity
γ
Now that we perceive the GJR-GARCH mannequin method and its instinct, let’s implement it in Python. We’ll use the arch package deal, which gives a easy but highly effective interface to specify and estimate GARCH-family fashions. Utilizing historic NIFTY 50 returns information, we’ll match a GJR-GARCH(1,1) mannequin, generate rolling volatility forecasts, and consider how properly the mannequin captures market conduct, particularly throughout turbulent durations.
Volatility Forecasting on NIFTY 50 Utilizing GJR-GARCH in Python
Step 1: Import the mandatory libraries
The tqdm library is used to point out a progress bar when your code is doing one thing that takes time — like operating a loop with a variety of steps.
It helps you see how a lot is finished and the way a lot is left, so that you don’t need to guess in case your code continues to be operating or caught.
Step 2: Obtain NIFTY50 information
Right here we’re utilizing NIFTY 50 information from 2020 to 2025.

Subsequent, calculate the each day log returns and specific in proportion phrases. Fashions like GARCH work higher when the enter numbers are usually not too tiny (like 0.0012), as very small values could make it more durable for the optimizer to converge throughout mannequin becoming.
Step 3: Specify the GJR-GARCH mannequin
To mannequin a GJR-GARCH mannequin in Python,the arch package deal is used. Use Scholar’s t-distribution for residuals, which captures fats tails usually noticed in monetary returns. Be at liberty to make use of the distribution that most closely fits your buying and selling wants or information distribution.
Right here,
p = 1
Variety of lags of previous squared returns (ARCH time period)
o = 1
Variety of lags for asymmetry time period – this allows the GJR-GARCH (or GARCH with leverage impact)
q = 1
Variety of lags of previous variances (GARCH time period)
Step 4: Match the mannequin
The output is as follows:

The ARCH time period (alpha[1]), which measures the impression of previous shocks, is critical on the 5% degree, although comparatively small (0.0123).The GARCH time period (beta[1]) is excessive at 0.9052, implying that volatility is very persistent over time.The leverage impact (gamma[1] = 0.1330) is critical, confirming the presence of asymmetry—adverse shocks improve volatility greater than constructive ones, a standard function in fairness market information.The estimated levels of freedom (nu = 7.6) for the Scholar’s t-distribution recommend the info displays fats tails, justifying the selection of this distribution to seize excessive returns extra precisely.
Step 5: Residual diagnostics
This block of code is for residual diagnostics after becoming your GJR-GARCH mannequin. It helps you visually assess how properly the mannequin has captured volatility dynamics.

The GJR-GARCH mannequin performs properly in capturing volatility dynamics throughout main market occasions, particularly durations of economic misery. Notable spikes in conditional volatility are noticed in the course of the 2008 world monetary disaster and the 2020 COVID-19 pandemic. The asymmetry part (gamma) performs a key function right here, amplifying volatility predictions in response to adverse returns—mirroring real-world investor conduct the place concern and unhealthy information drive sharper market reactions than optimism.
Step 6: Make rolling forecasts of volatility
A extra sensible method to forecast volatility is to make one-step-ahead predictions utilizing data accessible as much as time t, after which replace the mannequin in actual time as every new information level turns into accessible (i.e., as t progresses to t+1, t+2, and so forth.). In easy phrases, every day we incorporate the most recent noticed return to forecast the following day’s volatility.
Right here we take practice the mannequin on 500 days of previous returns, to forecast 1-day forward volatility, repeated each day.
Now you’d wish to evaluate GARCH’s 1-day forecast to some observable precise volatility.
The same old technique is to compute realized each day volatility as a rolling customary deviation.
Nonetheless, in case you’re forecasting for 1 day, the realized volatility it’s best to ideally evaluate it to is:
the precise return (i.e., squared return of the following day), or a smoothed proxy like a 5-day rolling customary deviation (if you wish to take away noise).
As illustrated within the plot beneath, durations of elevated market uncertainty, akin to mid-2024, exhibit vital spikes within the 1-day forward forecasted volatility, reflecting heightened threat notion. Conversely, calmer durations like early 2023 present diminished volatility expectations. This method permits merchants and threat managers to adaptively regulate publicity and hedging methods in response to anticipated market situations.
The GJR-GARCH mannequin proves particularly helpful for its capability to react sensitively to draw back shocks. It’s a sturdy software for short-term volatility forecasting in index-level information just like the NIFTY 50 or inventory information.

Now allow us to examine the correlation between the realized and forecasted volatility.
Output:
Correlation between Forecasted and Realized Volatility: 0.7443
The noticed correlation of 0.74 between the 5-day rolling realized volatility and the GJR-GARCH forecasted volatility signifies that the mannequin successfully captures the dynamics of market volatility.
Particularly, the GJR-GARCH mannequin, which accounts for uneven responses to constructive and adverse shocks (i.e., volatility reacts extra to adverse information), aligns properly with the precise realized volatility. A powerful correlation like this implies that the mannequin can forecast durations of excessive or low volatility in a directionally correct means.
Conclusion
Market volatility isn’t simply numbers—it displays human psychology. The GJR-GARCH mannequin goes a step past conventional volatility estimators by recognizing that concern has a stronger market impression than optimism. By modelling this behaviour explicitly, it gives a extra correct and behaviourally sound technique to forecast volatility in numerous property.
Subsequent Steps
When you’re comfy with the GARCH household, you’ll be able to transfer on to extra complicated volatility modeling methods. subsequent learn is Time-Various-Parameter VAR (TVP-VAR), which introduces fashions that deal with stochastic volatility and structural modifications over time.
It’s also possible to discover ARFIMA fashions for dealing with long-memory processes, that are frequent in monetary market volatility. Understanding these fashions will assist you create extra sturdy, adaptable forecasting programs.
To develop efficient buying and selling methods, transcend modeling. Mix your GJR-GARCH insights with sensible strategies from Technical Evaluation to detect tendencies and momentum, use Buying and selling Threat Administration to guard towards losses, discover Pairs Buying and selling for market-neutral methods, and perceive Market Microstructure to account for execution and liquidity dynamics.
Lastly, for a structured and complete journey into algorithmic buying and selling, contemplate enrolling within the Government Programme in Algorithmic Buying and selling (EPAT). EPAT covers superior subjects akin to stationarity, ACF/PACF, ARIMA, ARCH, GARCH, and extra, with sensible coaching in Python technique growth, statistical arbitrage, and alternate information. It’s the right subsequent step for these prepared to use their quantitative abilities in actual markets.
File within the obtain:
GJR GARCH Python Pocket book
Login to Obtain
Disclaimer: All investments and buying and selling within the inventory market contain threat. Any resolution to put trades within the monetary markets, together with buying and selling in inventory or choices or different monetary devices is a private resolution that ought to solely be made after thorough analysis, together with a private threat and monetary evaluation and the engagement {of professional} help to the extent you imagine essential. The buying and selling methods or associated data talked about on this article is for informational functions solely.