Fits an EGARCH(1, 1) model to the historical returns and returns the estimated Omega, Alpha, Gamma and Beta parameters for each asset.

A negative Gamma indicates the presence of a leverage effect (negative shocks raise volatility by more than positive ones of the same size).

The formula is as follows:

\[\text{ln}\; \sigma_{t} ^{2} = \text{Omega} + \text{Alpha} \cdot (| z_{t-1} | - \sqrt{2 / \pi}) + \text{Gamma} \cdot z_{t-1} + \text{Beta} \cdot \text{ln}\; \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) and z_t = r_t / sigma_t. The log-likelihood is maximized with Omega in [-15, 5], Alpha and Gamma in [-1, 1] and |Beta| < 1, starting the recursion from ln sigma_1^2 = Omega + Beta * ln(Backcast), with the Backcast of get_garch_parameters.

For more information about the method, see the following paper:

  • Nelson, D.B. (1991). “Conditional Heteroskedasticity in Asset

Returns: A New Approach.” Econometrica, 59(2), 347-370.

Also known as: EGARCH weights, EGARCH coefficients, leverage parameters.

EGARCH Parameters in Python

Install the Finance Toolkit with:

pip install financetoolkit -U

Then call get_egarch_parameters as shown below.

from financetoolkit import Toolkit

toolkit = Toolkit(
    ["AMZN", "TSLA"],
    api_key="FINANCIAL_MODELING_PREP_KEY",
    start_date="2021-01-01",
    end_date="2025-12-31",
)

toolkit.risk.get_egarch_parameters(period="daily", rounding=6)

Which returns:

  AMZN TSLA Benchmark
Omega -0.382664 -0.225452 -0.309737
Alpha 0.193573 0.081906 0.059855
Gamma -0.080739 -0.03535 -0.181222
Beta 0.949074 0.964858 0.96578

Parameters

get_egarch_parameters accepts the following parameters.

ParameterTypeDescriptionExample
periodstrThe data frequency for returns (daily, weekly, monthly, quarterly, or yearly). Defaults to “daily”."weekly"
optimization_tintTime steps of the returns series to use for the optimization. Defaults to the full length of the returns series.252
roundingint | NoneThe number of decimals to round the results to. Defaults to None.2
Share