GARCH Volatility
Conditional volatility forecasting (GARCH / EGARCH / GJR-GARCH) for returns series
Overview
- Model ID:
garch-volatility - Framework:
arch - Best for: Forecasting the conditional variance/volatility of a financial returns series
- GPU required: No (CPU-only)
- Specialist: forecasting
GARCH-family models forecast volatility (not direction). One parameterized model covers GARCH, EGARCH, GJR-GARCH (leverage/asymmetry), ARCH and FIGARCH, with Normal/Student-t/skew-t/GED innovations. Use it to drive vol-normalized targets, risk-based position sizing, and dynamic stop-loss / take-profit levels.
When to Use
✅ Perfect for:
- Volatility forecasting / risk modeling on a returns series
- Vol-targeting and volatility-normalized signals
- Capturing volatility clustering and (with GJR/EGARCH) the leverage effect
❌ Not ideal for:
- Forecasting the level/direction of a price (use a point forecaster)
- Multivariate / cross-asset volatility (single series per model)
Quick Start
from colabhive import ColabHive
client = ColabHive(api_key="...", account_id="...")
dataset = client.datasets.upload(name="eurusd-returns", file="./returns.csv")
job = client.training.create(
model="garch-volatility",
dataset_id=dataset.id,
hyperparameters={
"target_column": "ret", # returns column
"vol_model": "GJR", # leverage effect
"dist": "t", # fat tails
"horizon": 10,
},
)
job.wait()
Dataset Format
A returns column (one row per period). A date column is optional (auto-detected for ordering):
ds,ret
2022-01-01,-0.0034
2022-01-02,0.0012
...
If you only have prices, set returns_from_prices: true and point target_column at the price column.
Requirements: ≥ 50 observations.
Hyperparameters
| Parameter | Default | Description |
|---|---|---|
vol_model | "GARCH" | GARCH / EGARCH / GJR / ARCH / FIGARCH |
mean_model | "Constant" | Constant / Zero / AR |
dist | "normal" | normal / t / skewt / ged |
p | 1 | ARCH (lagged variance) order |
o | 0 | Asymmetry order (GJR/EGARCH) |
q | 1 | GARCH (lagged conditional variance) order |
horizon | 10 | Forecast horizon (steps) |
returns_from_prices | false | Compute returns from a price column |
target_column | "" | Returns/price column (empty = auto-detect) |
date_column | "" | Timestamp column (empty = auto-detect) |
Inference
result = client.endpoints.infer(endpoint_id=ep, input_data={"horizon": 5})
Returns the volatility forecast (in original return units, de-scaled), plus a
payload with conditional variance:
{
"model_type": "garch",
"horizon": 5,
"forecasts": [0.01546, 0.01547, 0.01548, 0.01550, 0.01551],
"payload": {
"volatility": [0.01546, "..."],
"variance": [0.000239, "..."],
"vol_model": "GJR", "scale": 100.0
}
}
Related Models
- HAR-RV Volatility — cheap realized-volatility baseline
- Multivariate Forecasting (VAR/VECM)
- NGBoost Regression — distributional point forecasts