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_helpermethod to form the data properly.
Also includes
For each of the estimators, plot:
Create a term sheet with all the metrics printed to a PDF.
Example usage:
import volest import datadata
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