Historical Volatility

A framework for historical volatility estimation and analysis.
Updated 14 Jun 2020

Historical Volatility

This script calculates and analyses the following historical volatility estimators:

  • the traditional Close-to-Close estimator (and a variant of it that uses demeaned returns);
  • the Parkinson estimator (1980);
  • the Garman-Klass estimator (1980) and a variant proposed by Yang & Zhang (2000);
  • the Rogers-Satchell estimator (1991);
  • the Hodges-Tompkins estimator (2002);
  • the Yang-Zhang estimator (2000);
  • the Meilijson estimator (2009).


The minimum Matlab version required is R2014a. In addition, the following products and toolboxes must be installed in order to properly execute the script:

  • Statistics and Machine Learning Toolbox
  • System Identification Toolbox


  1. Edit the run.m script following your needs.
  2. Execute the run.m script.


Datasets can be fetched from Yahoo! Finance using the function fetch_data, or parsed from Excel sheets using the function parse_dataset. The example script provides a good overview of both approaches.

Every dataset passed as input argument to analyze_volatility, compare_estimators and estimate_volatility functions must be structured as a table of historical time series having the following columns:

  • Date (numeric observation dates)
  • Open (opening prices)
  • High (highest prices)
  • Low (lowest prices)
  • Close (closing prices)
  • Return (log returns)


Volatility Cones

Estimators Comparison

Estimators Correlation

Cite As

Tommaso Belluzzo (2024). Historical Volatility (https://github.com/TommasoBelluzzo/HistoricalVolatility/releases/tag/v1.5.0), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2014b
Compatible with R2014b to R2022b
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

See release notes for this release on GitHub: https://github.com/TommasoBelluzzo/HistoricalVolatility/releases/tag/v1.5.0


See release notes for this release on GitHub: https://github.com/TommasoBelluzzo/HistoricalVolatility/releases/tag/v1.4.0

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.