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).
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
- Edit the
run.mscript following your needs. - Execute the
run.mscript.
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)


