Common financial risk metrics.
pip install empyrical
Simple Statistics
importnumpyasnpfromempyricalimportmax_drawdown, alpha_betareturns=np.array([.01, .02, .03, -.4, -.06, -.02])
benchmark_returns=np.array([.02, .02, .03, -.35, -.05, -.01])
# calculate the max drawdownmax_drawdown(returns)
# calculate alpha and betaalpha, beta=alpha_beta(returns, benchmark_returns)Rolling Measures
importnumpyasnpfromempyricalimportroll_max_drawdownreturns=np.array([.01, .02, .03, -.4, -.06, -.02])
# calculate the rolling max drawdownroll_max_drawdown(returns, window=3)Pandas Support
importpandasaspdfromempyricalimportroll_up_capture, capturereturns=pd.Series([.01, .02, .03, -.4, -.06, -.02])
# calculate a capture ratiocapture(returns)
# calculate capture for up markets on a rolling 60 day basisroll_up_capture(returns, window=60)Please open an issue for support.
Please contribute using Github Flow. Create a branch, add commits, and open a pull request.
- install requirements
- "nose>=1.3.7",
- "parameterized>=0.6.1"
python -m unittest