A framework for historical volatility estimation and analysis.
Historical Volatility
This script calculates and analyses the following historical volatility estimators:
- the traditional
Close-to-Closeestimator (and a variant of it that uses demeaned returns); - the
Parkinsonestimator (1980); - the
Garman-Klassestimator (1980) and a variant proposed by Yang & Zhang (2000); - the
Rogers-Satchellestimator (1991); - the
Hodges-Tompkinsestimator (2002); - the
Yang-Zhangestimator (2000); - the
Meilijsonestimator (2009).
Requirements
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
Usage
- Edit the
run.mscript following your needs. - Execute the
run.mscript.
Dataset
Datasets can be fetched from Yahoo! Finance using the function fetchdata, or parsed from Excel sheets using the function parsedataset. The example script provides a good overview of both approaches.
Every dataset passed as input argument to analyzevolatility, compareestimators 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)
Screenshots


