This project documents and organizes the concepts presented in an MQL5 article about a native library for univariate volatility modeling and forecasting. The article describes a modular framework inspired by Python's arch package.
  • MQL5 93.5%
  • MQL4 6.5%
Find a file
2026-06-05 14:40:26 +02:00
Arch modified code for easy compilation in shared projects folder 2026-06-05 14:40:26 +02:00
Regression first commit 2026-06-05 13:23:41 +02:00
ArGarchModel_Demo.mq5 first commit 2026-06-05 13:23:41 +02:00
HAR_as_ARX_Demo.mq5 first commit 2026-06-05 13:23:41 +02:00
np.mqh first commit 2026-06-05 13:23:41 +02:00
README.md first commit 2026-06-05 13:23:41 +02:00

Article-20589-Volatility-Modeling-And-Forecasting-In-MQL5

Overview

This project documents and organizes the concepts presented in an MQL5 article about a native library for univariate volatility modeling and forecasting. The article describes a modular framework inspired by Python's arch package, where a complete model is composed of:

  • a mean process,
  • a volatility process,
  • an error distribution.

The implementation centers on a mean-model base class (HARX) that manages initialization, parameter estimation, simulation, and forecasting for the full model.

Original Article

  • Article title: Volatility Modeling and Forecasting in MQL5
  • Article ID: 20589
  • Author: Francis Dube
  • Publication date: 2026.01.14
  • Category: Articles / MQL5 programming / optimization / quantitative finance
  • URL: https://www.mql5.com/en/articles/20589

Repository Purpose

This repository should be treated as a reference or reconstruction project based on the article text.

Its purpose is to capture:

  • the described library architecture,
  • the exposed data structures and APIs,
  • the fitting and forecasting workflow,
  • the ARCH-LM diagnostic procedure,
  • the included demonstration of HAR equivalence via ARX with exogenous averages.

Key Concepts

  • Modular volatility modeling in MQL5
  • Mean/volatility/distribution separation
  • ArchParameters as a unified configuration struct
  • ArchModelResult and ArchForecast as result containers
  • HAR, HARX, AR, and ARX mean processes
  • Constant variance, ARCH, and GARCH-family process selection
  • Joint parameter estimation through fit()
  • Forecast generation via analytic, simulation, or bootstrap methods
  • Residual diagnostics using Engle's ARCH-LM test
  • Equivalence of HAR and ARX under averaged exogenous regressors

Algorithm / Architecture Summary

The article describes a class hierarchy where HARX acts as the base interface for mean models and also orchestrates the full volatility model.

Model composition

A model is formed from three components:

  1. Mean process
  2. Volatility process
  3. Error distribution

The mean process is the central object and owns the estimation workflow.

Configuration

Model setup is performed through an ArchParameters struct, which includes:

  • sample observations,
  • optional exogenous regressors,
  • lag specification,
  • mean model selection,
  • volatility model selection,
  • distribution selection,
  • holdout and scaling options,
  • GARCH order parameters,
  • bootstrap settings,
  • distribution initialization parameters,
  • RNG seeds.

The initialize() method validates and normalizes these inputs, adjusts incompatible options where possible, builds lag matrices, and instantiates the selected volatility process and distribution.

Estimation

The article states that estimation uses ALGLIB's nonlinear constrained optimization via CMinNLC, minimizing a log-likelihood objective exposed by the model class.

The returned ArchModelResult includes:

  • estimated parameters,
  • in-sample conditional volatility,
  • residuals,
  • covariance matrix,
  • fit range,
  • log-likelihood,
  • R-squared and adjusted R-squared helpers,
  • t-values, p-values, and standard errors.

Forecasting

Forecasts are returned in an ArchForecast struct with:

  • mean
  • variance
  • residual_variance

The article describes support for:

  • analytic forecasts,
  • Monte Carlo simulation forecasts,
  • bootstrap forecasts.

For models with exogenous variables, future exogenous matrices must be supplied.

Validation

Model adequacy is checked using archlmtest(), which performs a regression-based ARCH-LM test on squared residuals, optionally using standardized residuals. The result is encapsulated in WaldTestStatistic, providing:

  • test statistic,
  • degrees of freedom,
  • null and alternative hypotheses,
  • p-value,
  • chi-square critical values.

Explicitly attached files in the article text

  • MQL5/scripts/HAR_as_ARX_Demo.mq5 — demonstration script comparing HAR and ARX formulations

Tags

mql5, volatility-modeling, arch, garch, har, arx, econometrics, time-series, forecasting, alglib

Difficulty

Advanced

Reference

  • MQL5 article: "Volatility Modeling and Forecasting in MQL5"
  • Demonstrated script: HAR_as_ARX_Demo.mq5
  • Related concepts referenced in the article:
  • Python arch package
  • ALGLIB CMinNLC
  • Engle's ARCH-LM test