Need help with volatility-trading?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

jasonstrimpel
546 Stars 180 Forks GNU General Public License v3.0 69 Commits 3 Opened issues

Description

A complete set of volatility estimators based on Euan Sinclair's Volatility Trading

Services available

!
?

Need anything else?

Contributors list

# 83,874
Python
volatil...
options...
62 commits
# 381,788
Python
volatil...
options...
1 commit

volest

A complete set of volatility estimators based on Euan Sinclair's Volatility Trading.

http://www.amazon.com/gp/product/0470181990/tag=quantfinancea-20

The original version incorporated network data acquisition from Yahoo!Finance from

pandas_datareader
. Yahoo! changed their API and broke
pandas_datareader
.

The changes allow you to specify your own data so you're not tied into equity data from Yahoo! finance. If you're still using equity data, just download a CSV from finance.yahoo.com and use the

data.yahoo_data_helper
method to form the data properly.

Volatility estimators include:

  • Garman Klass
  • Hodges Tompkins
  • Parkinson
  • Rogers Satchell
  • Yang Zhang
  • Standard Deviation

Also includes

  • Skew
  • Kurtosis
  • Correlation

For each of the estimators, plot:

  • Probability cones
  • Rolling quantiles
  • Rolling extremes
  • Rolling descriptive statistics
  • Histogram
  • Comparison against arbirary comparable
  • Correlation against arbirary comparable
  • Regression against arbirary comparable

Create a term sheet with all the metrics printed to a PDF.

Page 1 - Volatility cones

Capture-1

Page 2 - Volatility rolling percentiles

Capture-2

Page 3 - Volatility rolling min and max

Capture-3

Page 4 - Volatility rolling mean, standard deviation and zscore

Capture-4

Page 5 - Volatility distribution

Capture-5

Page 6 - Volatility, benchmark volatility and ratio

Capture-6

Page 7 - Volatility rolling correlation with benchmark

Capture-7

Page 3 - Volatility OLS results

Capture-8

Example usage:

import volest
import data

data

symbol = 'JPM' bench = '^GSPC' data_file_path = '../JPM.csv' bench_file_path = '../BENCH.csv' estimator = 'GarmanKlass'

estimator windows

window = 30 windows = [30, 60, 90, 120] quantiles = [0.25, 0.75] bins = 100 normed = True

use the yahoo helper to correctly format data from finance.yahoo.com

jpm_price_data = data.yahoo_helper(symbol, data_file_path) spx_price_data = data.yahoo_helper(bench, bench_file_path)

initialize class

vol = volest.VolatilityEstimator( price_data=jpm_price_data, estimator=estimator, bench_data=spx_price_data )

call plt.show() on any of the below...

_, plt = vol.cones(windows=windows, quantiles=quantiles) _, plt = vol.rolling_quantiles(window=window, quantiles=quantiles) _, plt = vol.rolling_extremes(window=window) _, plt = vol.rolling_descriptives(window=window) _, plt = vol.histogram(window=window, bins=bins, normed=normed)

_, plt = vol.benchmark_compare(window=window) _, plt = vol.benchmark_correlation(window=window)

... or create a pdf term sheet with all metrics in term-sheets/

vol.term_sheet( window, windows, quantiles, bins, normed )

Hit me on twitter with comments, questions, issues @jasonstrimpel

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.