Notebook

Run the cell below to create your tear sheet.

In [1]:
bt = get_backtest('5f015f6a8bc6454735fced54')
bt.create_full_tear_sheet()
100% Time:  0:00:11|##########################################################|
Start date2004-01-05
End date2020-06-01
Total months196
Backtest
Annual return 23.486%
Cumulative returns 3073.261%
Annual volatility 15.743%
Sharpe ratio 1.42
Calmar ratio 1.61
Stability 0.96
Max drawdown -14.612%
Omega ratio 1.30
Sortino ratio 2.18
Skew 0.81
Kurtosis 16.38
Tail ratio 1.01
Daily value at risk -1.895%
Gross leverage 1.00
Daily turnover 6.346%
Alpha 0.18
Beta 0.44
Worst drawdown periods Net drawdown in % Peak date Valley date Recovery date Duration
0 14.61 2020-01-23 2020-03-18 2020-04-07 54
1 13.97 2008-11-07 2008-11-12 2008-11-26 14
2 13.58 2018-06-12 2018-11-02 2019-07-26 294
3 12.74 2010-04-23 2010-05-28 2010-12-21 173
4 12.43 2009-01-02 2009-01-20 2009-04-13 72
/venvs/py35/lib/python3.5/site-packages/numpy/lib/function_base.py:3834: RuntimeWarning: Invalid value encountered in percentile
  RuntimeWarning)
Stress Events mean min max
Lehman -0.11% -1.78% 1.95%
US downgrade/European Debt Crisis 0.39% -2.25% 3.95%
Fukushima 0.18% -1.59% 1.27%
EZB IR Event -0.12% -1.20% 1.38%
Aug07 0.01% -2.79% 2.59%
Mar08 -0.19% -2.37% 2.75%
Sept08 -0.22% -1.78% 1.95%
2009Q1 -0.07% -5.07% 3.38%
2009Q2 0.41% -3.54% 3.90%
Flash Crash -0.59% -3.64% 3.34%
Apr14 0.14% -1.91% 1.57%
Oct14 0.06% -1.96% 1.28%
Fall2015 -0.04% -2.29% 3.03%
Low Volatility Bull Market 0.10% -3.77% 2.82%
GFC Crash 0.13% -8.98% 13.10%
Recovery 0.10% -3.64% 3.95%
New Normal 0.07% -4.11% 7.85%
Top 10 long positions of all time max
TLT-23921 100.58%
MVK-4671 7.95%
QCOR-20914 7.95%
WW-23269 7.84%
MGM-4831 7.58%
PD-5829 7.40%
SCCO-14284 7.32%
SUN-7211 7.28%
SIG-9774 7.27%
BIIB-3806 7.25%
Top 10 short positions of all time max
Top 10 positions of all time max
TLT-23921 100.58%
MVK-4671 7.95%
QCOR-20914 7.95%
WW-23269 7.84%
MGM-4831 7.58%
PD-5829 7.40%
SCCO-14284 7.32%
SUN-7211 7.28%
SIG-9774 7.27%
BIIB-3806 7.25%
/venvs/py35/lib/python3.5/site-packages/statsmodels/nonparametric/kdetools.py:20: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  y = X[:m/2+1] + np.r_[0,X[m/2+1:],0]*1j
/venvs/py35/src/pyfolio/pyfolio/perf_attrib.py:564: UserWarning: Could not determine risk exposures for some of this algorithm's positions. Returns from the missing assets will not be properly accounted for in performance attribution.

The following assets were missing factor loadings: ['MME-4653', 'OHP-5727'].. Ignoring for exposure calculation and performance attribution. Ratio of assets missing: 0.007. Average allocation of missing assets:

MME-4653    5978.242083
OHP-5727    6227.917676
dtype: float64.

  warnings.warn(missing_stocks_warning_msg)
/venvs/py35/src/pyfolio/pyfolio/perf_attrib.py:590: UserWarning: Could not find factor loadings for 251 dates: (first missing is 2004-01-05 00:00:00+00:00, last missing is 2004-12-31 00:00:00+00:00). Truncating date range for performance attribution. 
  warnings.warn(warning_msg)

Performance Relative to Common Risk Factors

Summary Statistics
Annualized Specific Return 8.95%
Annualized Common Return 12.95%
Annualized Total Return 23.09%
Specific Sharpe Ratio 0.94
Exposures Summary Average Risk Factor Exposure Annualized Return Cumulative Return
basic_materials 0.13 2.47% 45.65%
consumer_cyclical 0.09 1.71% 29.84%
financial_services -0.05 -0.32% -4.74%
real_estate 0.05 0.63% 10.15%
consumer_defensive 0.04 0.37% 5.80%
health_care 0.05 0.77% 12.51%
utilities 0.03 0.32% 5.04%
communication_services 0.01 -0.03% -0.47%
energy 0.05 1.55% 26.75%
industrials 0.08 1.38% 23.48%
technology 0.20 3.74% 75.86%
momentum 0.23 0.95% 15.74%
size 0.94 -0.64% -9.35%
value -0.39 0.14% 2.12%
short_term_reversal -0.21 -0.01% -0.22%
volatility 0.03 -0.27% -4.11%
In [ ]: